docker buildx build
を以前のdocker build
のようにして互換性あるように使いたい場合、
$ docker buildx build --output=type=docker -t ユーザー名/イメージ名:タグ名
# 省略形
$ docker buildx build --load -t ユーザー名/イメージ名:タグ名
でいけるようです。
つまずいたので、投稿しておきます。
[公式]単一プラットフォームの構築結果を docker images に読み込む(--load)
構築結果の出力方法を指定(-o, --output)
-o, --output=[PATH,-,type=TYPE[,KEY=VALUE]
build 結果の出力処理を設定します。 docker build で全ての構築が終わると、コンテナのイメージを作成し、それを docker images に出力します。 buildx ではこの手順が設定できるようになっており、処理結果を直接クライアントや、oci イメージ・tar ボールやレジストリ等に出力できます。
Buildx の docker ドライバが現時点でサポートしているのは、 local 、 tar ボール・エクスポータtarball exporter と イメージ・エクスポータimage exporter のみです。 docker-container ドライバは全てのエクスポータをサポートします。
docker
docker エクスポート型は、特定のプラットフォームに対する Docker イメージ仕様 のイメージとしてクライアント上に書き出します。このエクスポータによって作成される tar ボールは、 OCI 互換性もあります。
現時点では、マルチプラットフォーム・イメージは docker エクスポート型はでは出力できません。マルチプラットフォーム対応イメージの最も一般的な利用方法は、レジストリに直接送信する場合です( registry をご覧ください。)。
単一プラットフォームの構築結果を docker images に読み込む(--load)
--output=type=docker の省略形です。単一プラットフォーム向けの構築結果を docker images に読み込みます。
CI/CDにはdocker buildx build --push
を併用してdocker build
~docker push
をワンコマンドでできるようです。
$ docker buildx build --output=type=image,push=true -t ユーザー名/イメージ名:タグ名
# 省略形
$ docker buildx build --output=type=registory -t ユーザー名/イメージ名:タグ名
# さらに省略形
$ docker buildx build --push -t ユーザー名/イメージ名:タグ名
registry
registry エクスポータは type=image,push=true の省略形です。
構築結果をレジストリに送信(--push)
--output=type=registry の省略形です。構築結果をレジストリに自動送信します。