# tidalDB DR image — PACKAGING ONLY (no in-container compile). # # Committed promotion of tmp/tidalctl-img/Dockerfile, EXTENDED to bundle # `tidal-server` alongside `tidalctl` + `mc` (spec Q4): the DR drill's query-proof # step boots a standalone tidal-server on the restored data dir, so one image runs # export -> restore -> boot -> read. Both binaries are HOST cross-compiles # (x86_64-unknown-linux-gnu, glibc 2.41) produced by scripts/build-release.sh, so # the runtime base MUST be trixie (libmvec.so.1 lives there). FROM debian:trixie-slim ARG DEBIAN_FRONTEND=noninteractive # libstdc++6/libgcc-s1 for the aws-sdk/usearch C++ runtime; ca-certificates for TLS; # curl to fetch mc AND to drive the booted server's /health + /feed in the drill; # coreutils (diff) for the byte-equivalence check. RUN apt-get update && \ apt-get install -y --no-install-recommends \ libstdc++6 libgcc-s1 ca-certificates curl diffutils && \ curl -fsSL https://dl.min.io/client/mc/release/linux-amd64/mc -o /usr/local/bin/mc && \ chmod +x /usr/local/bin/mc && \ rm -rf /var/lib/apt/lists/* # Non-root, uid 10001 (matches the tidaldb StatefulSet convention). RUN useradd --system -u 10001 --home /srv tidal COPY --chown=tidal:tidal tidalctl /usr/local/bin/tidalctl COPY --chown=tidal:tidal tidal-server /usr/local/bin/tidal-server USER tidal WORKDIR /srv # Bare-binary ENTRYPOINT so `docker run img status ...`/subcommand overrides work; # the drill Job overrides command/args with the export/restore/verify/boot script. ENTRYPOINT ["tidalctl"] CMD ["--help"]