2023-10-17 10:27:41 +11:00
# syntax=docker/dockerfile:1.5-labs
FROM rust:1.67.0 as chef
RUN wget -q -O- https://github.com/LukeMathWalker/cargo-chef/releases/download/v0.1.62/cargo-chef-x86_64-unknown-linux-gnu.tar.gz | tar -zx -C /usr/local/bin
RUN cargo install --locked --root /usr/local libp2p-lookup --version 0.6.4
WORKDIR /app
2023-08-21 20:49:42 +02:00
2023-10-17 10:27:41 +11:00
FROM chef AS planner
COPY . .
RUN cargo chef prepare --recipe-path recipe.json
2023-09-11 18:51:54 +02:00
2023-10-17 10:27:41 +11:00
FROM chef AS builder
COPY --from= planner /app/recipe.json recipe.json
# Build dependencies - this is the caching Docker layer!
RUN cargo chef cook --release --package libp2p-server --recipe-path recipe.json
# Build application
COPY . .
RUN cargo build --release --package libp2p-server
2023-08-21 20:49:42 +02:00
FROM gcr.io/distroless/cc
2023-09-11 18:51:54 +02:00
COPY --from= builder /usr/local/bin/libp2p-server /usr/local/bin/libp2p-lookup /usr/local/bin/
2023-08-21 20:49:42 +02:00
CMD [ "libp2p-server" ]