Closed4
M2 Mac で AMD用Dockerイメージを build するときの注意
なにかしら既存のDockerfileがあるとして、それを M1 / M2 の Mac で Dockerイメージをビルドしようとしたとき、x86_64 not compatible
みたいな雰囲気のエラーが出てビルドに失敗することがある。
Dockerfile 中で x86_64 に依存したパッケージのインストールなどを行っている場合、armアーキテクチャのM1 / M2 の Mac ではビルドに失敗してしまう、ということである。
解決策
マルチアーキテクチャに対応したイメージを作り直すのが抜本的な対策っぽいが、それはめんどうなので、面倒じゃないやつをいくつかメモ。
--platform
を指定する
①Dockerfileに これは微妙。
このDockerfileがGit等で管理されている場合、他の人に影響が出る。
FROM ubuntu:20.04
②環境変数を使う
buildを行う前に環境変数に値を設定しておく。
忘れそう。
export DOCKER_DEFAULT_PLATFORM=linux/amd64
③build時のオプションに指定する
②とあんまり変わらないが、基本これで良さそう。
docker build --platform linux/amd64 -t hoge_image .
このスクラップは2023/05/18にクローズされました