commit 5be32d3dc2947c165c59f665b1857fd63e5fcf07 parent eec0b053dd7b0242039795a6a731ea16a1b0eba1 Author: MTRNord <MTRNord@users.noreply.github.com> Date: Fri, 27 Mar 2026 20:57:54 +0100 build proper rocksdb Signed-off-by: MTRNord <MTRNord@users.noreply.github.com> Diffstat:
| M | apps/talos_cluster/continuwuity/Dockerfile | | | 33 | ++++++++++++++++++++++++++++++++- |
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/apps/talos_cluster/continuwuity/Dockerfile b/apps/talos_cluster/continuwuity/Dockerfile @@ -2,9 +2,36 @@ # so that Velero pre/post backup hooks can freeze the process via SIGSTOP/SIGCONT. FROM forgejo.ellis.link/continuwuation/continuwuity:main AS upstream +# Build ldb and sst_dump from the exact RocksDB version continuwuity uses (10.10.1) +# so MANIFEST format is guaranteed compatible for recovery operations. +FROM debian:12-slim AS rocksdb-tools-builder +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + build-essential cmake git ca-certificates \ + libsnappy-dev liblz4-dev libzstd-dev zlib1g-dev libbz2-dev libgflags-dev \ + && rm -rf /var/lib/apt/lists/* +RUN git clone --depth 1 --branch v10.10.1 https://github.com/facebook/rocksdb.git /rocksdb +WORKDIR /rocksdb +RUN cmake -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DWITH_TOOLS=ON \ + -DWITH_TESTS=OFF \ + -DWITH_BENCHMARKS=OFF \ + -DWITH_SNAPPY=ON \ + -DWITH_LZ4=ON \ + -DWITH_ZSTD=ON \ + -DWITH_BZ2=ON \ + -DWITH_GFLAGS=ON \ + -DROCKSDB_BUILD_SHARED=OFF \ + -DUSE_RTTI=ON \ + && cmake --build build --target ldb sst_dump -j$(nproc) + FROM debian:12-slim +# Runtime deps for ldb/sst_dump RUN apt-get update \ - && apt-get install -y --no-install-recommends procps rocksdb-tools \ + && apt-get install -y --no-install-recommends \ + procps \ + libsnappy1v5 liblz4-1 libzstd1 zlib1g libbz2-1.0 libgflags2.2 \ && rm -rf /var/lib/apt/lists/* # Copy binary and shared libraries from the upstream scratch image @@ -12,6 +39,10 @@ COPY --from=upstream /sbin/conduwuit /sbin/conduwuit COPY --from=upstream /usr/lib/ /usr/lib/ COPY --from=upstream /etc/ssl/ /etc/ssl/ +# Copy RocksDB tools built at matching version +COPY --from=rocksdb-tools-builder /rocksdb/build/tools/ldb /usr/local/bin/ldb +COPY --from=rocksdb-tools-builder /rocksdb/build/tools/sst_dump /usr/local/bin/sst_dump + ENV LD_LIBRARY_PATH=/usr/lib ENTRYPOINT ["/sbin/conduwuit"]