diff --git a/Dockerfile b/Dockerfile index 605283b..5a37443 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,29 @@ -FROM rust:1.63 AS builder +FROM rust:1.63 AS base + +RUN cargo install cargo-chef + +######################################################################## + +FROM base AS planner + +WORKDIR /app/ +COPY . . +RUN cargo chef prepare --recipe-path recipe.json + +######################################################################## + +FROM base AS builder + +COPY --from=planner /app/recipe.json ./recipe.json +RUN cargo chef cook --release --recipe-path recipe.json + COPY . . RUN cargo build --release --bin smo-rs -FROM debian:buster-slim +######################################################################## + +FROM debian:buster-slim AS runtime + COPY --from=builder ./target/release/smo-rs ./target/release/smo-rs + ENTRYPOINT ["/target/release/smo-rs"] diff --git a/proxy.Dockerfile b/proxy.Dockerfile index 03885e7..fa534c3 100644 --- a/proxy.Dockerfile +++ b/proxy.Dockerfile @@ -1,7 +1,29 @@ -FROM rust:1.63 AS builder +FROM rust:1.63 AS base + +RUN cargo install cargo-chef + +######################################################################## + +FROM base AS planner + +WORKDIR /app/ +COPY . . +RUN cargo chef prepare --recipe-path recipe.json + +######################################################################## + +FROM base AS builder + +COPY --from=planner /app/recipe.json ./recipe.json +RUN cargo chef cook --release --recipe-path recipe.json + COPY . . RUN cargo build --package proxy --release -FROM debian:buster-slim +######################################################################## + +FROM debian:buster-slim AS runtime + COPY --from=builder ./target/release/proxy ./target/release/proxy + ENTRYPOINT ["/target/release/proxy"]