第6部:AIとDevOps Step 20 / 36

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.txtRUN pip installCOPY . .

まとめ

  • マルチステージ - ビルド成果物のみを実行イメージへ
  • slim/alpine - 軽量ベースイメージを使用
  • レイヤー順序 - 変更頻度の低いものを先に
CI/CDパイプライン構築 次へ:インフラ設定の自動化