Last modified 3 days ago
Dockerイメージのマルチプラットフォームビルド
近年Graviton、Macを初めとしてARMマシンが増えてきました。x86プラットフォームと共通して利用できるコンテナイメージを作成するには、マルチプラットフォームビルドが必要になります。 ここでは、x86,armのマルチプラットフォームビルドのやり方を記載します。
パッケージの準備
$ sudo apt-get install docker-buildx-plugin $ sudo apt-get install qemu-user-static
マルチプラットフォームビルダーの準備
$ docker buildx create --name mpbuilder --use $ docker run --privileged --rm tonistiigi/binfmt --install all $ docker buildx ls NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS mpbuilder* docker-container \_ mpbuilder0 \_ unix:///var/run/docker.sock running v0.25.1 linux/amd64, linux/arm64, linux/arm (+2), linux/ppc64le, (5 more) default docker \_ default \_ default running v0.25.1 linux/amd64, linux/arm64, linux/arm (+2), linux/ppc64le, (5 more)
ビルド実行とイメージのpush
マルチプラットフォームビルドを利用した場合、イメージをビルドしただけではローカルのdockerで利用できません。レジストリにpushしてから利用するようにしてください。
docker buildx build --platform linux/amd64,linux/arm64 -t ghcr.io/okamototk/tableau-mcp:latest --push .