diff --git a/docker/backend/Dockerfile b/docker/backend/Dockerfile index 8ccba70..2e211c9 100644 --- a/docker/backend/Dockerfile +++ b/docker/backend/Dockerfile @@ -1,8 +1,10 @@ # Rust official image -FROM rust:1.67-slim +FROM rust:1 AS chef -# Copy from machine to docker -WORKDIR /usr/src/warfrost +RUN cargo install cargo-chef --locked +WORKDIR app + +FROM chef as planner COPY --from=warfrost . . # Set Environment Variables @@ -10,7 +12,17 @@ ENV PORT=8080 ENV HOST=0.0.0.0 # Build program for release -RUN cargo build --release +RUN cargo chef prepare --recipe-path recipe.json + +FROM chef AS builder +COPY --from=planner /app/recipe.json recipe.json + +RUN cargo chef cook --release --recipe-path recipe.json + +COPY --from=warfrost . . +RUN cargo build --release --bin warfrost -# Run the binary -CMD ["./target/release/warfrost"] +FROM debian:bookworm-slim AS runtime +WORKDIR app +COPY --from=builder /app/target/release/warfrost /usr/local/bin +ENTRYPOINT ["/usr/local/bin/warfrost"]