環境を作るときに困ったので、素人ながらに調べて実行したことを記録。
めちゃくちゃ参考にした記事
対象のイメージ
先日Docker HubにPushしたこちらのイメージをマルチCPUアーキテクチャに対応してみます。
最終的に実行するコマンド
最終的にマルチCPUアーキテクチャに対応したイメージをビルドするコマンド
docker buildx build --platform linux/amd64,linux/arm64 -t symdit/postgresql15-bigm:latest . --push
しかし、デフォルトの状態ではこのようなエラーが発生します。
daichi@MacBook-Pro postgres15_bigm % docker buildx build --platform linux/amd64,linux/arm64 -t symdit/postgresql15-bigm:latest . --push
[+] Building 0.0s (0/0)
ERROR: multiple platforms feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use")
有効にする設定
上記のエラーを解消するには、事前に変更しなければならない設定があります。
docker driverの変更
ビルダーインスタンスを作成
docker buildx create --name mybuilder
作成したビルダーインスタンスを使用するように変更
docker buildx use mybuilder
変更されたことを確認
docker buildx ls
mybuilder
に*
がついてればOK
daichi@MacBook-Pro postgres15_bigm % docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
mybuilder * docker-container
mybuilder0 unix:///var/run/docker.sock inactive
default docker
default default running 20.10.20 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
desktop-linux docker
desktop-linux desktop-linux running 20.10.20 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
もし削除したいときは
docker buildx rm mybuilder
作ったビルダーインスタンスを起動する
docker buildx inspect --bootstrap
起動したことを確認
daichi@MacBook-Pro postgres15_bigm % docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS
mybuilder * docker-container
mybuilder0 unix:///var/run/docker.sock running v0.10.5 linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
default docker
default default running 20.10.20 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
desktop-linux docker
desktop-linux desktop-linux running 20.10.20 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
ではここで再度ビルドしてみましょう
(1回目はなぜか失敗しました)
docker buildx build --platform linux/amd64,linux/arm64 -t symdit/postgresql15-bigm:latest . --push