Closed2
M1 Mac環境でECS Fargateで動くx86_64イメージを作成するまでの作業まとめ
M1 Mac環境で何も考えずにdocker buildをすると、armのイメージが作成される。
それをECS環境にデプロイすると下記のようなエラーをはいてタスクが強制終了される。
[FATAL tini (8)] exec /bin/sh failed: Exec format error
これを回避するためには、ECSで設定しているcpuArchitecture に沿ったplatfotmでビルドしたイメージを使わないといけない。今現在ECSのarchitectureは未定義になっている(つまりx86_64)
現状platform指定でビルドするには、docker buildxを使ってマルチプラットフォームビルドを行う必要あり。
Docker Desctop for Macの最新版ならすでに入ってる。Linuxに関してもEngineと一緒に入るので特に準備が必要なわけではなさそう。
使う前にImage Builderを作成する必要があるようだ。下記コマンドでImage Builderの設定が可能。
docker buildx create --name {name} --platform linux/arm64 --use
platfromはカンマ区切りで複数渡すことができる。設定可能な値については、おそらくこれ
このスクラップは2023/02/08にクローズされました