Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
2.1 kB · 53 lines
at next-dev
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354# Development only. Not for production use.# Unlike knot2/Containerfile (distroless), this image keeps a shell: localinfra# only learns alice's DID at bootstrap, so the entrypoint has to read it.
FROM docker.io/library/rust:1.96-slim-trixie AS builderRUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates build-essential cmake perl pkg-config clang mold \ && rm -rf /var/lib/apt/lists/*ENV RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=mold"WORKDIR /srcCOPY Cargo.toml Cargo.lock rust-toolchain.toml ./COPY crates ./cratesCOPY bobbin/crates ./bobbin/cratesCOPY shuttle ./shuttleCOPY gitmirror ./gitmirrorCOPY lexicons ./lexiconsCOPY knot2/crates ./knot2/cratesCOPY knot2/third_party ./knot2/third_partyRUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/src/target \ cargo build --release --package knot-server && \ cp target/release/knot-server /usr/local/bin/knot-serverRUN strip /usr/local/bin/knot-server
FROM debian:trixie-slimRUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl \ && rm -rf /var/lib/apt/lists/*COPY --from=builder /usr/local/bin/knot-server /usr/local/bin/knot-server
COPY <<'EOF' /usr/local/bin/knot-entrypoint.sh#!/bin/shset -eu# trust caddy's `tls internal` root system-wide, so `knot-server admin` verifies it.if [ -f /etc/ssl/certs/tngl.crt ]; then cp /etc/ssl/certs/tngl.crt /usr/local/share/ca-certificates/tngl.crt update-ca-certificates >/dev/nullfi[ -z "${KNOT_ADMINS:-}" ] && [ -r /shared/owner-did ] && \ export KNOT_ADMINS="$(cat /shared/owner-did)": "${KNOT_ADMINS:?set via env or /shared/owner-did}"
# the knot creates its host key and sealed store (parent dirs and all) on# demand, but scan_path has to already exist before it will startmkdir -p "${KNOT_SCAN_PATH:-/home/git/repositories}"[ -n "${KNOT_LFS_STORE_PATH:-}" ] && mkdir -p "${KNOT_LFS_STORE_PATH}"
exec /usr/local/bin/knot-serverEOFRUN chmod +x /usr/local/bin/knot-entrypoint.sh
EXPOSE 5555 2222ENTRYPOINT ["/usr/local/bin/knot-entrypoint.sh"]