Skip to content

Docker Build Cloud を使ったビルド

Docker Build Cloud を使用してビルドするには、ビルドコマンドを実行し、--builder フラグでビルダーの名前を指定します。

$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> --tag <IMAGE> .

デフォルトで使用する

--builder フラグを毎回指定する必要がないように、Docker Build Cloud をデフォルトビルダーとして設定することができます。

次のコマンドを実行します:

$ docker buildx use cloud-<ORG>-<BUILDER_NAME> --global

docker buildx use コマンドでデフォルトビルダーを変更しても、docker buildx build コマンドにのみ適用されます。docker build コマンドは、--builder フラグを明示的に指定しない限り、引き続き default ビルダーを使用します。

もしビルドスクリプト(make など)を使用している場合は、docker builddocker buildx build に更新することをお勧めします。ビルダーの選択に関する混乱を避けるためです。代わりに、docker buildx install を実行して、docker build コマンドを docker buildx build のように動作させることも可能です。

Docker Compose で使用する

docker compose build コマンドを使用して Docker Build Cloud でビルドするには、まずクラウドビルダーを選択したビルダーとして設定し、その後ビルドを実行します。

[!NOTE] Docker Compose の対応バージョンを使用していることを確認してください。詳細は前提条件を参照してください。

$ docker buildx use cloud-<ORG>-<BUILDER_NAME>
$ docker compose build

docker buildx use を使用する以外にも、docker compose build --builder フラグや BUILDX_BUILDER 環境変数 を使用してクラウドビルダーを選択することができます。

ビルド結果の読み込み

--tag を使用してビルドすると、ビルドが完了すると同時にビルド結果がローカルイメージストアに自動的に読み込まれます。タグなしでビルドして結果を読み込みたい場合は、--load フラグを渡す必要があります。

マルチプラットフォームイメージの場合、ビルド結果の読み込みはサポートされていません。マルチプラットフォームイメージをビルドする場合は、docker buildx build --push フラグを使用して出力をレジストリにプッシュします。

$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> \
  --platform linux/amd64,linux/arm64 \
  --tag <IMAGE> \
  --push .

タグを使用してビルドしたいが、結果をローカルイメージストアに読み込みたくない場合は、ビルド結果をビルドキャッシュにのみエクスポートできます:

$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> \
  --platform linux/amd64,linux/arm64 \
  --tag <IMAGE> \
  --output type=cacheonly .

マルチプラットフォームビルド

マルチプラットフォームビルドを実行するには、--platform フラグを使用してビルドするすべてのプラットフォームを指定する必要があります。

$ docker buildx build --builder cloud-<ORG>-<BUILDER_NAME> \
  --platform linux/amd64,linux/arm64 \
  --tag <IMAGE> \
  --push .

プラットフォームを指定しない場合、クラウドビルダーはローカル環境に一致するアーキテクチャで自動的にビルドを行います。

マルチプラットフォームビルドについて詳しくは、マルチプラットフォームビルド を参照してください。

Docker Desktop での Build Cloud

Docker Desktop の ビルドビュー は、Docker Build Cloud とネイティブに連携します。このビューでは、自分のビルドだけでなく、同じビルダーを使用しているチームメンバーによって開始されたビルドの情報も表示できます。

共有ビルダーを使用するチームは、以下の情報にアクセスできます:

  • 実行中および完了したビルド
  • ビルドの設定、統計、依存関係、結果
  • ビルドソース(Dockerfile)
  • ビルドログとエラー

これにより、ビルドログやベンチマークをチーム内でやり取りすることなく、トラブルシューティングやビルド速度の向上に共同で取り組むことができます。

Docker Build Cloud でシークレットを使用する

Docker Build Cloud でビルドシークレット(認証情報やトークンなど)を使用するには、--secret および --ssh CLI フラグを docker buildx コマンドで使用します。トラフィックは暗号化され、シークレットはビルドキャッシュに保存されることはありません。

[注意]

ビルド引数を使用して認証情報、認証トークン、その他のシークレットを渡している場合は、シークレットマウント を使用するようにビルドをリファクタリングする必要があります。ビルド引数はキャッシュに保存され、その値は証明で公開されます。シークレットマウントはビルド外に漏れず、証明には含まれません。

詳細については、以下を参照してください:

ビルドキャッシュの管理

Docker Build Cloud のキャッシュは手動で管理する必要はありません。システムが自動的にガベージコレクションを通じて管理します。

ストレージの制限に達した場合、古いキャッシュは自動的に削除されます。現在のキャッシュ状態は docker buildx du コマンド で確認できます。

ビルダーのキャッシュを手動でクリアするには、docker buildx prune コマンド を使用します。これは、他のビルダーのキャッシュをプルーニングする場合と同様に機能します。

[注意]

クラウドビルダーのキャッシュをプルーニングすると、同じビルダーを使用している他のチームメンバーのキャッシュも削除されます。

Docker Build Cloud をデフォルトビルダーから解除する

クラウドビルダーをデフォルトビルダーとして設定している場合、それを解除して docker デフォルトビルダーに戻すには、以下のコマンドを実行します:

$ docker context use default

これにより、ビルダーはシステムから削除されません。ビルドを自動的に実行するために選択されるビルダーが変更されるだけです。

内部ネットワークのレジストリ

Docker Build Cloud は、VPNの背後にある内部ネットワーク上のプライベートレジストリやレジストリミラーでは使用できません。クラウドビルダーがやり取りするすべてのエンドポイント(OCIレジストリなど)は、インターネット経由でアクセス可能である必要があります。

実験的な機能を試してみたいですか?

クラウドビルダーが内部リソースにアクセスできる実験的な機能を現在テスト中です。 この機能を試してみたい場合は、サポートフォーム を使用してお問い合わせください。