Dockerfileの最適化
AIにDockerfileの最適化を依頼し、ビルド時間短縮とイメージサイズ削減を実現します。
マルチステージビルド
AIへの指示
以下のDockerfileをマルチステージビルドで最適化してください。 イメージサイズを最小化し、ビルドキャッシュを活用してください。 ```dockerfile FROM python:3.11 WORKDIR /app COPY . . RUN pip install -r requirements.txt CMD ["uvicorn", "main:app", "--host", "0.0.0.0"] ```
最適化後
# ビルドステージ FROM python:3.11-slim as builder WORKDIR /app COPY requirements.txt . RUN pip install --user -r requirements.txt # 実行ステージ FROM python:3.11-slim WORKDIR /app COPY --from=builder /root/.local /root/.local COPY . . ENV PATH=/root/.local/bin:$PATH CMD ["uvicorn", "main:app", "--host", "0.0.0.0"]
効果: イメージサイズ 1.2GB → 250MB
レイヤーキャッシュの活用
順序の最適化
NG: キャッシュが効かない
COPY . . → RUN pip install
OK: キャッシュが効く
COPY requirements.txt → RUN pip install → COPY . .
まとめ
- ✓マルチステージ - ビルド成果物のみを実行イメージへ
- ✓slim/alpine - 軽量ベースイメージを使用
- ✓レイヤー順序 - 変更頻度の低いものを先に