| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | FROM rust:1.56.1# Let's switch our working directory to `app` (equivalent to `cd app`)# The `app` folder will be created for us by Docker in case it does not# exist already.WORKDIR /appCOPY . .WORKDIR /app/backendENV SQLX_OFFLINE trueENV APP_ENVIRONMENT productionRUN RUSTFLAGS="-C opt-level=2" cargo build --release# When `docker run` is executed, launch the binary!ENTRYPOINT ["./target/release/backend"]### We use the latest Rust stable release as base image#FROM lukemathwalker/cargo-chef:latest-rust-1.53.0 as planner#WORKDIR /app#COPY . .##WORKDIR /app/backend#RUN cargo chef prepare  --recipe-path recipe.json##FROM lukemathwalker/cargo-chef:latest-rust-1.53.0 as cacher#WORKDIR /app/backend#COPY --from=planner /app/backend/recipe.json recipe.json## Build our project dependencies, not our application!#RUN cargo chef cook --release --recipe-path recipe.json##FROM rust:1.53.0 AS builder#WORKDIR /app/backend## Copy over the cached dependencies#COPY --from=cacher /app/backend/target target#COPY --from=cacher /usr/local/cargo /usr/local/cargo#COPY . .##ENV SQLX_OFFLINE true#RUN cargo build --release --bin backend###FROM debian:buster-slim AS runtime#WORKDIR /app/backend#RUN apt-get update -y \#    && apt-get install -y --no-install-recommends openssl \#    # Clean up#    && apt-get autoremove -y \#    && apt-get clean -y \#    && rm -rf /var/lib/apt/lists/*#COPY --from=builder /app/backend/target/release/backend backend##COPY configuration configuration#ENV APP_ENVIRONMENT production#ENTRYPOINT ["./backend"]
 |