25 lines
779 B
Docker
25 lines
779 B
Docker
FROM lukemathwalker/cargo-chef:latest-rust-1.90.0 AS chef
|
|
WORKDIR /app
|
|
RUN apt update && apt install -y nodejs npm clang mold && rm -rf /var/lib/apt/lists/*
|
|
|
|
FROM chef AS planner
|
|
COPY . .
|
|
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 . .
|
|
ENV SQLX_OFFLINE=true
|
|
ENV RUSTFLAGS="-C strip=symbols"
|
|
RUN cargo build --release --bin zero2prod
|
|
RUN npm install && npm run build-css
|
|
|
|
FROM gcr.io/distroless/cc-debian12 AS runtime
|
|
WORKDIR /app
|
|
COPY --from=builder /app/target/release/zero2prod zero2prod
|
|
COPY --from=builder /app/assets assets
|
|
COPY --from=builder /app/configuration configuration
|
|
ENV APP_ENVIRONMENT=production
|
|
ENTRYPOINT [ "./zero2prod" ]
|