mcpField
D
docker-cicd

docker-cicd

github.com/full-stack-skillsクラウド・DevOps3106 回インストール4 週間前に更新
リポジトリ

docker-cicd について

Docker イメージのビルド、テスト、デプロイを自動化するチーム向けのガイドです。GitHub Actions、Jenkins、キャッシュ、マルチプラットフォームビルドと CI の安全対策を扱います。

主な機能

  1. 01GitHub Actions の Docker ワークフロー設定
  2. 02Jenkins の Docker パイプライン作成
  3. 03キャッシュによる CI ビルドの高速化
  4. 04CI でのマルチプラットフォームビルド
  5. 05認証情報とビルドシークレットの安全な管理

活用シーン

  1. 01コード公開時のイメージ構築とプッシュ
  2. 02CI でのイメージレイヤーキャッシュ設定
  3. 03パイプラインで複数プラットフォーム向けに構築
  4. 04CI のレジストリ認証情報とビルドシークレット管理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/full-stack-skills/docker-skills --skill docker-cicd

インストール後、Claude Code で/docker-cicdを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
examples/
01-github-actions.md
02-jenkins-pipeline.md
03-multi-arch-build.md
references/
01-buildx-multi-platform.md
02-build-cloud.md

詳細

Docker CI/CD — 継続的インテグレーションと継続的デプロイ

Docker を自動ビルド、テスト、デプロイのパイプラインに統合するためのガイダンスです。

使用するタイミング

ユーザーが次の内容に言及した場合は、必ずこのスキルを使用してください:

  • 「docker CI」、「docker CD」、「CI/CD pipeline」
  • 「GitHub Actions docker」、「Jenkins docker」
  • 「buildx」、「multi-platform build」、「マルチプラットフォームビルド」
  • 「Docker Build Cloud」
  • 「イメージビルドパイプライン」

GitHub Actions

ビルドとプッシュのパイプライン
name: Build and Push
on:
  push:
    tags: ['v*']

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Build and push
        uses: docker/build-push-action@v6
        with:
          push: true
          tags: user/app:${{ github.ref_name }},user/app:latest
          cache-from: type=gha
          cache-to: type=gha,mode=max
マルチプラットフォームビルド
- name: Build and push multi-platform
  uses: docker/build-push-action@v6
  with:
    platforms: linux/amd64,linux/arm64
    push: true
    tags: user/app:latest

Jenkins パイプライン

pipeline {
    agent any
    environment {
        DOCKER_IMAGE = 'myapp'
        DOCKER_TAG = "${env.BUILD_NUMBER}"
    }
    stages {
        stage('Build') {
            steps {
                sh "docker build -t ${DOCKER_IMAGE}:${DOCKER_TAG} ."
            }
        }
        stage('Test') {
            steps {
                sh "docker run --rm ${DOCKER_IMAGE}:${DOCKER_TAG} npm test"
            }
        }
        stage('Push') {
            steps {
                withDockerRegistry([credentialsId: 'docker-hub']) {
                    sh "docker push ${DOCKER_IMAGE}:${DOCKER_TAG}"
                }
            }
        }
    }
}

CI でのレイヤーキャッシュ

# Pull previous image for layer cache
docker pull $IMAGE:latest || true
docker build \
  --cache-from $IMAGE:latest \
  --build-arg BUILDKIT_INLINE_CACHE=1 \
  -t $IMAGE:$TAG .

ワークフロー — 推奨 CI/CD フロー

ステップ 1:CI 環境を設定:docker/login-action + docker/setup-buildx-action
ステップ 2:イメージをビルド:docker/build-push-action + レジストリキャッシュによる高速化
ステップ 3:セキュリティスキャン:docker/scout-action で CVE をスキャンし、ポリシーゲートを適用
ステップ 4:リポジトリにプッシュ:複数のタグ(semver + sha + latest)を付けて ghcr.io/Docker Hub にプッシュ
ステップ 5:デプロイ:ArgoCD/Flux でリポジトリの変更を監視し、自動デプロイ

よくある落とし穴

  • CI キャッシュのミス:--cache-from を指定しないと、CI ビルドのたびに最初からビルドされます。→ 対処方法:ビルドの前に docker pull myapp:latest || true を実行します。GitHub Actions では --cache-from type=gha を使用します。
  • CI ログ内のビルドシークレット:シークレットを echo したり、出力したりしないでください。buildx の --secret または CI のシークレットマスキングを使用します。→ 対処方法:docker buildx build --secret id=npmrc,src=$HOME/.npmrc を実行し、CI ログでシークレットがマスキングされていることを確認します。
  • CI のディスク容量:マルチステージビルドは CI のディスク容量を消費することがあります。→ 対処方法:ビルドの間に docker system prune -af を実行し、docker system df で監視します。
  • マルチプラットフォームエミュレーションの遅さ:AMD 上での ARM 向け QEMU エミュレーションは低速です(約 10 倍)。→ 対処方法:ネイティブ ARM ランナー(GitHub Actions ARM64 ランナーなど)または Docker Build Cloud を使用して、マルチプラットフォームビルドを行います。

境界 — 対応範囲(適用できる場面とできない場面)

分類場面説明
✅ 対応可能GitHub Actions と Docker の統合docker/build-push-action + QEMU + マルチアーキテクチャ
✅ 対応可能Jenkins Pipeline と DockerDocker agent + build/push/scan
✅ 対応可能マルチプラットフォーム CI ビルドbuildx + QEMU + マルチアーキテクチャ manifest
⚠️ 条件付きDocker Build Cloud による高速化有料サブスクリプションが必要です
⚠️ 条件付きGitHub/Jenkins 以外の CI汎用パターンを参考に適用してください
❌ 対象外Dockerfile の作成docker-dockerfile を使用してください
❌ 対象外K8s CD(ArgoCD/Flux)K8s デプロイスキル
❌ 対象外CI プラットフォームの構築(Jenkins のインストール)DevOps インフラストラクチャ

使用しない場合

❌ 使用しない✅ 代わりに使用
Dockerfile の作成docker-build
セキュリティスキャンdocker-security / docker-scout
本番環境へのデプロイdocker-production
レジストリ管理docker-hub

セキュリティと安定性

  • CI 設定にレジストリ認証情報をハードコードしないでください。CI のシークレットマネージャー(GitHub Secrets、Jenkins Credentials)を使用してください。
  • 長期間有効な認証情報の代わりに、クラウドレジストリの認証には OIDC(OpenID Connect)を使用してください。
  • 本番レジストリにプッシュする前に、Docker Scout でイメージをスキャンしてください。
  • 監査証跡を残すため、イメージに SHA ダイジェストをタグ付けしてください:image:sha-${GITHUB_SHA::7}。
  • レジストリトークンは定期的にローテーションしてください。CI で個人用アクセストークンを使用しないでください。

📚 公式ドキュメントの参考資料

ドキュメントURL
Docker Build CIhttps://docs.docker.com/build/ci/
Docker Build Cloudhttps://docs.docker.com/build-cloud/
GitHub Actions と Dockerhttps://docs.docker.com/build/ci/github-actions/
Docker Scout CIhttps://docs.docker.com/scout/policy/ci/
Buildx CI 統合https://docs.docker.com/build/ci/github-actions/build-push-action/

🧭 Docker スキルの進め方

📍 現在の位置:docker-cicd — CI/CD 自動化

← 前へ:docker-build | → 次へ:docker-production

FAQ

Q1:このスキルをすぐに使い始めるには? A:上記のクイックスタートの章を参考に、手順に沿って操作してください。

Q2:バージョンの互換性に関する問題が発生した場合は? A:依存関係のバージョンを確認し、lock ファイルで固定してください。よくある落とし穴の章も参考にしてください。

Q3:本番環境で使用するには? A:ベストプラクティスの章を参考に、設定が正しいことを確認し、監視とログ記録を行ってください。

Q4:パフォーマンスを最適化するには? A:パフォーマンス最適化に関するドキュメントを参考に、キャッシュやインデックスなどを活用してください。

Q5:貢献や問題の報告をするには? A:GitHub リポジトリで Issue または Pull Request を作成してください。

Q6:中国語に対応していますか? A:中国語のドキュメントとコメントに対応しています。国内向け対応の章をご覧ください。

コメント