🦔
M1Macでdocker buildしたらERRORになった
やろうとしたこと
Dockerfileの更新があったのでcodeBuildで使用しているイメージの更新するぞ〜
ローカルでイメージビルドして、ECRにプッシュする
手順書あるから余裕✌️
起きたこと
- ローカルPC(M1Mac)にて、手順書にあるコマンドでビルドしようとしたらエラーになった
- コマンド:
docker build --platform linux/x86_64 -t hogetag .
- エラーメッセージ:
ERROR: failed to solve: process "/bin/sh -c dnf -y update~~ うんたらかんたら ~~" did not complete successfully: exit code: 1
- コマンド:
何がだめだったか
platform指定が間違っていた!
どうしたか
- 下記コマンドで解決✌️
docker build --no-cache --platform linux/arm64 -t hogetag .
そもそもdockerコマンド分かっていない
- buildコマンドのplatformオプションってなんなん( ◠‿◠ )
- 公式ドキュメントより:
-
--platform
:サーバがマルチプラットフォーム対応であれば、プラットフォームを指定
-
- 対応するOSおよびCPUアーキテクチャの組み合わせを指定できるらしい
- 公式ドキュメントより:
- linux/x86_64ってなんなん( ◠‿◠ )
- CPUの種類
- x86(Intel)、ARM(ARM)などがあるらしい
- M1MacはARM、通常のMac(?)はx86(Intel)らしい
- 私のPCはM1Macなのでlinux/arm64指定でないとダメだったのね
感想
ほーん🐈
補足
- CPUアーキテクチャを確認するコマンド
uname -m
- ビルド時にキャッシュ無視するオプション
--no-cache
- M1Macで
uname -m
叩いたらx86_64
と表示された...- Rosettaを使用して起動しているとx86_64と表示されるらしい?
- この辺はまだ理解していないので追々...
- Rosettaを使用して起動しているとx86_64と表示されるらしい?
Discussion