# syntax=docker/dockerfile:1 # check=skip=SecretsUsedInArgOrEnv # Cache directory used by the circuits. Not meant to be overridden. ARG LB_CACHE=/root/.cache/logos/blockchain FROM rust:1.96.0-slim-bookworm AS cfgsync-builder WORKDIR /logos-blockchain-testing COPY --from=logos_blockchain_testing . /logos-blockchain-testing RUN apt-get update && apt-get install -yq \ git gcc g++ clang libssl-dev pkg-config ca-certificates curl \ && rm -rf /var/lib/apt/lists/* RUN cargo build --locked --release \ -p cfgsync-runtime \ --bin cfgsync-client FROM rust:1.96.0-slim-bookworm AS builder ARG LB_CACHE WORKDIR /workspace COPY . . COPY --from=logos_blockchain_testing . /logos-blockchain-testing RUN apt-get update && apt-get install -yq \ git gcc g++ clang libssl-dev pkg-config ca-certificates curl unzip \ && rm -rf /var/lib/apt/lists/* RUN cargo build --locked --release \ -p logos-blockchain-node \ --features testing \ --bin logos-blockchain-node FROM debian:bookworm-slim AS base RUN apt-get update && apt-get install -yq \ libstdc++6 libssl3 ca-certificates curl \ && rm -rf /var/lib/apt/lists/* ARG LB_CACHE # Copies the entire cache dir. # We only need the circuits, but this is currently much simpler than just copying the circuits subdir. # This might be addressed later, after the circuits directories structure is standardised. COPY --from=builder $LB_CACHE $LB_CACHE COPY --from=builder /workspace/target/release/logos-blockchain-node /usr/bin/logos-blockchain-node COPY --from=cfgsync-builder /logos-blockchain-testing/target/release/cfgsync-client /usr/bin/cfgsync-client ENTRYPOINT ["/usr/bin/logos-blockchain-node"]