13
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dockerの「マルチCPUアーキテクチャ」に対応したイメージをビルドする

Posted at

環境を作るときに困ったので、素人ながらに調べて実行したことを記録。

めちゃくちゃ参考にした記事

対象のイメージ

先日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

こんな感じで両アーキテクチャのイメージがプッシュされていたら成功!
スクリーンショット 2022-10-28 13.42.10.png

13
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?