結論
FROM
行に --platform=linux/amd64
を加える。
FROM --platform=linux/amd64 ubuntu:latest
# [以下省略]
経緯
M1 MacでDockerを使ってUbuntu環境上にMiniconda3をインストールしようとした。
Dockerfileおよびインストール用のシェルスクリプトは以下。
しかしビルド後 docker run
してもipythonがunknownになった。
コンテナの中に入って確認してみると、/root/miniconda3/にはconda.exeしかなく、binディレクトリほかは生成されていなかった。
再度コンテナを生成する際にログを確認してみると、当然その後のpandasやipythonのインストールにも失敗していたことがわかった。
解決
こちらのstackoverflowの記事にたどり着いた。
Miniconda3のインストーラがx86-64とIntelのマイクロプロセッサ向けなので、Dockerコンテナの中のUbuntuがM1 Macと知らずにそのまま展開しようとするのが原因だった。
M1 MacであることをDockerコンテナに教えてあげるには、Dockerfileの FROM
と ubuntu
の間に --platform=linux/amd64
を入れてあげるとよかった。
FROM --platform=linux/amd64 ubuntu:latest