buildx build --platform=linux/arm64,linux/amd64
最新の更新後に docker コマンドを使用するとエラーが発生することがあります。
ERROR: multiple platforms feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use")
答え1
docker buildx create
ビルダーを作成するには、コマンドで明示的なプラットフォームを使用する必要があります。
docker buildx create --use --platform=linux/arm64,linux/amd64 --name multi-platform-builder
docker buildx inspect --bootstrap
docker buildx build --platform=linux/arm64,linux/amd64 --push --tag project-name:latest -f ./project-name/Dockerfile .
docker buildx create --use --platform=linux/arm64,linux/amd64 --name multi-platform-builder
- このコマンドは新しいビルダーインスタンスを作成します。この場合、linux/arm64 プラットフォームと linux/amd64 プラットフォームの両方をサポートします。 --name フラグはビルダー "multi-platform-builder" の名前を設定します。
docker buildx inspect --bootstrap
このコマンドは、前のステップで生成されたビルダーを確認し、必要な設定または構成を実行します。 --bootstrap フラグは、ビルダーがまだ初期化されていない場合に初期化する必要があることを示します。
docker buildx build --platform=linux/arm64,linux/amd64 --push --tag project-name:latest -f ./project-name/Dockerfile .
このコマンドは、以前に作成されたビルダーを使用してDockerイメージをビルドします。
- この
--platform
フラグは、最初のコマンドと同様に、イメージを構築する必要があるプラットフォームを指定します。 - この
--push
フラグは、ビルドされたイメージをコンテナーレジストリにプッシュする必要があることを示します。 - --tagフラグは画像のタグを設定します(この場合は「project-name:latest」)。
- この
-f
フラグは、イメージを構築するために使用されるDockerfileのパスを指定します(この場合は「./project-name/Dockerfile」)。 - 最後の「.」は、イメージに追加するファイルを含むディレクトリであるビルドコンテキストを表します。