Skip to content
Docker Build Cloud ドキュメント継続的インテグレーション(CI)

CIでDocker Build Cloudを使用する

CIでDocker Build Cloudを使用することで、ビルドパイプラインのスピードを向上させ、待ち時間やコンテキストスイッチングを減らすことができます。通常通りCIワークフローを管理し、ビルドの実行をDocker Build Cloudに委任します。

CIでDocker Build Cloudを使用してビルドするには、次のステップを実行します:

  1. Dockerアカウントにサインインする。
  2. Buildxをセットアップし、ビルダーに接続する。
  3. ビルドを実行する。

CIでDocker Build Cloudを使用する場合、イメージをロードしてからプッシュするのではなく、ビルド結果を直接レジストリにプッシュすることを推奨します。これにより、ビルドが高速化し、不必要なファイル転送を回避できます。

ビルドして結果を破棄したい場合は、結果をビルドキャッシュにエクスポートするか、イメージにタグを付けずにビルドします。Docker Build Cloudを使用する際、タグ付きイメージをビルドすると、Buildxは自動的にビルド結果をロードします。詳細はビルド結果のロードをご覧ください。

[!NOTE]

Docker Build Cloudのビルドには2時間のタイムアウト制限があります。2時間以上実行されるビルドは自動的にキャンセルされます。

[!NOTE]

docker/build-push-actionおよびdocker/bake-actionのバージョン4.0.0以降では、デフォルトでProvenance Attestationsを使用してイメージをビルドします。Docker Build Cloudは、イメージをレジストリにプッシュしない場合、自動的にローカルのイメージストアにロードしようとします。

これにより、タグ付きイメージをビルドしてレジストリにプッシュしない場合、Docker Build CloudがAttestationsを含むイメージをロードしようとしても、GitHubランナーのローカルイメージストアがAttestationsをサポートしていないため、イメージのロードに失敗します。

docker/build-push-actionでDocker Build Cloudを使用してイメージをロードしたい場合は、GitHub Actionの入力(またはdocker-bake.hcl内でBakeを使用する場合)でprovenance: falseを設定してProvenance Attestationsを無効にする必要があります。

name: ci
 
on:
  push:
    branches:
      - "main"
 
jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Log in to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ vars.DOCKER_USER }}
          password: ${{ secrets.DOCKER_PAT }}
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
        with:
          version: "lab:latest"
          driver: cloud
          endpoint: "<ORG>/default"
          install: true
      - name: Build and push
        uses: docker/build-push-action@v6
        with:
          tags: "<IMAGE>"
          # プルリクエストの場合は結果をビルドキャッシュにエクスポートし、
          # それ以外の場合はレジストリにプッシュします。
          outputs: ${{ github.event_name == 'pull_request' && 'type=cacheonly' || 'type=registry' }}