FROM rust:slim AS chef
RUN cargo install cargo-chef 
WORKDIR /app

FROM chef AS planner
COPY . .
RUN cargo chef prepare

FROM chef AS builder
COPY --from=planner /app/recipe.json recipe.json
RUN cargo chef cook --release
COPY . .
RUN cargo b -r

FROM debian:stable-slim
ENV RUST_BACKTRACE=1
WORKDIR /app
COPY --from=builder /app/target/release/pass_manager .
CMD [ "./pass_manager" ]