CI/CD
6 コマンド
GitHub Actions でビルドする GitHub Actions
GitHub Actions はリポジトリのイベントに応じてワークフローを実行する CI/CD サービス。`docker/build-push-action` を組み合わせれば、数十行の YAML でビルドとプッシュまで自動化できる。
ビルドキャッシュを再利用する buildx cache
BuildKit のキャッシュを CI で再利用すると、ビルド時間を大幅に短縮できる。GitHub Actions の `gha` キャッシュやレジストリ型キャッシュを使い分ける。
GitLab CI でビルドする GitLab CI
GitLab CI はリポジトリ内蔵の CI/CD 機能で、`.gitlab-ci.yml` で定義する。Kaniko や BuildKit の Runner と組み合わせれば DinD なしで安全にコンテナをビルドできる。
複数アーキに対応する multi-arch
1 つのイメージタグに amd64 と arm64 の両方を含めると、Apple Silicon や Graviton でも同じ pull で動く。Buildx のマニフェストリストで実現する。
レジストリへ push する registry push
ビルドしたイメージはレジストリに push して初めて本番で使える。GHCR・ECR・GAR・Docker Hub など目的地ごとに認証・命名・保管ポリシーが異なる。
CI でスキャンする scan in CI
Trivy・Grype・Snyk などのスキャナを CI に組み込み、既知脆弱性のあるイメージをレジストリに上げない/本番に出さない、というゲートを作る。
