# Build Stage FROM rust:alpine as builder WORKDIR /app RUN apk add --no-cache musl-dev # Create dummy project to cache dependencies RUN mkdir src && echo "fn main() {}" > src/main.rs COPY Cargo.toml . RUN cargo build --release # Copy actual source code COPY src ./src # Touch main.rs to force rebuild RUN touch src/main.rs RUN cargo build --release # Runtime Stage FROM alpine:latest WORKDIR /app RUN apk add --no-cache libgcc COPY --from=builder /app/target/release/dashboard-backend . EXPOSE 8000 CMD ["./dashboard-backend"]