# --- Build stage --- FROM rust:1.87-alpine AS builder RUN apk add --no-cache musl-dev pkgconfig openssl-dev WORKDIR /app COPY Cargo.toml Cargo.lock* ./ # Pre-fetch deps with a dummy build for layer caching RUN mkdir src && echo "fn main(){}" > src/main.rs && \ cargo build --release && \ rm -rf src COPY src ./src COPY static ./static RUN touch src/main.rs && cargo build --release # --- Runtime stage --- FROM alpine:3.21 RUN apk add --no-cache ca-certificates ffmpeg WORKDIR /app COPY --from=builder /app/target/release/eventsnap-backend ./ EXPOSE 3000 CMD ["./eventsnap-backend"]