prvng_platform/crates/ops-keeper/Dockerfile

34 lines
1.3 KiB
Docker

# syntax=docker/dockerfile:1.7
# Build context: provisioning/ (pass --local context=. from provisioning/ root)
# Dockerfile path (buildctl): platform/crates/ops-keeper/Dockerfile
# Runs natively on ARM64 ephemeral runner (CAX/CCX) — no cross-compilation.
# aws_lc_rs (jsonwebtoken dep) requires cmake + perl for the C build.
FROM rust:bookworm AS builder
RUN apt-get update && apt-get install -y --no-install-recommends \
pkg-config libssl-dev ca-certificates cmake perl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
COPY platform/crates/ops-keeper/Cargo.workspace.toml Cargo.toml
COPY platform/crates/ops-keeper/ crates/ops-keeper/
RUN --mount=type=cache,target=/root/.cargo/registry,sharing=locked \
--mount=type=cache,target=/root/.cargo/git,sharing=locked \
--mount=type=cache,target=/workspace/target,sharing=locked \
cargo build --release --package ops-keeper && \
cp target/release/keeper-daemon /keeper-daemon && \
cp target/release/keeper-cli /keeper-cli
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /keeper-daemon /keeper-daemon
COPY --from=builder /keeper-cli /keeper-cli
ENTRYPOINT ["/keeper-daemon"]