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 build
を docker buildx build
に更新することをお勧めします。ビルダーの選択に関する混乱を避けるためです。代わりに、docker buildx install
を実行して、docker build
コマンドを docker buildx build
のように動作させることも可能です。
Docker Compose で使用する
docker compose build
コマンドを使用して Docker Build Cloud でビルドするには、まずクラウドビルダーを選択したビルダーとして設定し、その後ビルドを実行します。
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レジストリなど)は、インターネット経由でアクセス可能である必要があります。
実験的な機能を試してみたいですか?
クラウドビルダーが内部リソースにアクセスできる実験的な機能を現在テスト中です。 この機能を試してみたい場合は、サポートフォーム を使用してお問い合わせください。