FROM rust:bookworm AS builder WORKDIR /app # 缓存依赖层 COPY Cargo.toml Cargo.lock ./ RUN mkdir src && echo 'fn main() {}' > src/main.rs RUN cargo build --release && rm -rf src target/release/blog-backend # 编译真实代码 COPY src ./src COPY migrations ./migrations RUN touch src/main.rs && cargo build --release FROM debian:bookworm-slim RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates libssl3 \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=builder /app/target/release/blog-backend /usr/local/bin/blog-backend COPY --from=builder /app/migrations ./migrations ENV BIND_ADDR=0.0.0.0:3000 EXPOSE 3000 USER nobody CMD ["blog-backend"]