34 lines
1.3 KiB
Docker
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"]
|