Files
zyna-db/Dockerfile
2026-01-20 09:34:33 -05:00

57 lines
1.4 KiB
Docker

FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
# Install base dependencies
RUN apt-get update && apt-get install -y \
curl \
wget \
git \
build-essential \
cmake \
ninja-build \
pkg-config \
libsnappy-dev \
liblz4-dev \
libzstd-dev \
libbz2-dev \
zlib1g-dev \
libgflags-dev \
xz-utils \
&& rm -rf /var/lib/apt/lists/*
# Install Zig 0.13.0 (latest stable)
ARG ZIG_VERSION=0.13.0
RUN curl -L "https://ziglang.org/download/${ZIG_VERSION}/zig-linux-x86_64-${ZIG_VERSION}.tar.xz" | tar -xJ -C /opt \
&& ln -s /opt/zig-linux-x86_64-${ZIG_VERSION}/zig /usr/local/bin/zig
# Build RocksDB from source with shared library
ARG ROCKSDB_VERSION=9.6.1
WORKDIR /tmp
RUN git clone --depth 1 --branch v${ROCKSDB_VERSION} https://github.com/facebook/rocksdb.git \
&& cd rocksdb \
&& mkdir build && cd build \
&& cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_SNAPPY=ON \
-DWITH_LZ4=ON \
-DWITH_ZSTD=ON \
-DWITH_BZ2=ON \
-DWITH_ZLIB=ON \
-DWITH_GFLAGS=OFF \
-DROCKSDB_BUILD_SHARED=ON \
-DWITH_TESTS=OFF \
-DWITH_BENCHMARK_TOOLS=OFF \
-DWITH_TOOLS=OFF \
-G Ninja \
&& ninja -j$(nproc) \
&& ninja install \
&& ldconfig \
&& cd / && rm -rf /tmp/rocksdb
# Set up working directory
WORKDIR /workspace
# Default command
CMD ["/bin/bash"]