😹
❗️M1MacでのECRへのpushで ここに気をつけろ❗️
要点
- ECSデプロイ中、AWS CodeBuild でエラー。何が起きたか気づきにくい
standard_init_linux.go:211: exec user process caused "exec format error"
- amd64イメージのダイジェストを指定してdocker pullしましょう
内容
2020年から Docker Hub の Pull回数制限がかかり、
回避のためにローカルからpushする方などいるのではないでしょうか。
M1 Macでも いつもの通り、
$ docker pull XX:XX
と普通に pull してしまうかもしれませんが、
対象の docker image がマルチCPUアーキテクチャ対応だと、
自動選択で arm のイメージを持ってきてしまいます😱
ですので、amd64 のダイジェストを指定してpullしましょう。
php docker imageでの簡易例
-
Tagsタブ -> OS/ARCH のlinux/amd64 を選択
-
DIGEST: の右をコピー
-
以下のように pull する
$ docker pull php:fpm-alpine3.13@sha256:4b90222a821ef24358d305cbe51ff65f31edea6e323b06f40ee1f800401ebaf0
-
試しに run で確認して、arm や aarch という文字列がなければOK
$ docker run 932a0ce9593c uname -a Linux 2309aaa4729b 4.19.121-linuxkit #1 SMP Tue Dec 1 17:50:32 UTC 2020 x86_64 Linux
Discussion