マルチステージビルドを使用して、Rustアプリケーション用のDockerコンテナを最適化します。
Rustアプリケーションは、小さく高速なスタティックバイナリを生成できます。最適化されたDockerイメージの作成方法をご覧ください。
マルチステージビルド
マルチステージビルドを使用して、コンパイルとランタイムを分離します。その結果、最小限の本番用イメージが得られます。
Dockerfileの例
# Build stage FROM rust:1.75 as builder WORKDIR /app COPY . . RUN cargo build --release # Runtime stage FROM debian:bookworm-slim COPY --from=builder /app/target/release/myapp /usr/local/bin/ CMD ["myapp"]最適化のヒント
- 最小限のベースイメージを使用する (debian-slim, alpine)
- --releaseでコンパイルして最適化する
- 本番環境ではデバッグシンボルを削除する
- .dockerignoreを使用して不要なファイルを除外する
結論
最適化されたイメージにより、デプロイが高速化し、攻撃対象領域が縮小されます。