FROM public.ecr.aws/docker/library/rust:1.85.0 AS builder RUN apt-get update && apt-get install -y \ openssl libclang-dev pkg-config protobuf-compiler \ && rm -rf /var/lib/apt/lists/* WORKDIR /app/client COPY Cargo.toml Cargo.lock ./ COPY .cargo ./.cargo COPY dragonfly-client/Cargo.toml ./dragonfly-client/Cargo.toml COPY dragonfly-client/src ./dragonfly-client/src COPY dragonfly-client-core/Cargo.toml ./dragonfly-client-core/Cargo.toml COPY dragonfly-client-core/src ./dragonfly-client-core/src COPY dragonfly-client-config/Cargo.toml ./dragonfly-client-config/Cargo.toml COPY dragonfly-client-config/src ./dragonfly-client-config/src COPY dragonfly-client-config/build.rs ./dragonfly-client-config/build.rs COPY dragonfly-client-storage/Cargo.toml ./dragonfly-client-storage/Cargo.toml COPY dragonfly-client-storage/src ./dragonfly-client-storage/src COPY dragonfly-client-storage/benches ./dragonfly-client-storage/benches COPY dragonfly-client-backend/Cargo.toml ./dragonfly-client-backend/Cargo.toml COPY dragonfly-client-backend/src ./dragonfly-client-backend/src COPY dragonfly-client-backend/examples/plugin/Cargo.toml ./dragonfly-client-backend/examples/plugin/Cargo.toml COPY dragonfly-client-backend/examples/plugin/src ./dragonfly-client-backend/examples/plugin/src COPY dragonfly-client-metric/Cargo.toml ./dragonfly-client-metric/Cargo.toml COPY dragonfly-client-metric/src ./dragonfly-client-metric/src COPY dragonfly-client-util/Cargo.toml ./dragonfly-client-util/Cargo.toml COPY dragonfly-client-util/src ./dragonfly-client-util/src COPY dragonfly-client-init/Cargo.toml ./dragonfly-client-init/Cargo.toml COPY dragonfly-client-init/src ./dragonfly-client-init/src ARG TARGETPLATFORM RUN case "${TARGETPLATFORM}" in \ "linux/arm64") export JEMALLOC_SYS_WITH_LG_PAGE=16;; \ esac && \ cargo build --release --verbose --bin dfinit FROM public.ecr.aws/debian/debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends wget \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/client/target/release/dfinit /usr/local/bin/dfinit ENTRYPOINT ["/usr/local/bin/dfinit"]