目的
CPUアーキテクチャの違いを解決し、タスクが強制停止されないようにする
前提
- ECRにdocker イメージプッシュ済み
- タスク定義作成済み
タスクが強制停止になってしまう?!
タスク定義を作成後、クラスターでタスクを起動設定しました
ただ、タスクがいつまでも実行中になりません
タスクのログを確認すると以下のようにエラーが出ています
exec format error
少し時間がタスクが停止してしまいました
原因は?
CPUアーキテクチャの違いが原因のようです
タスク定義の作成に利用したECRにプッシュされたdockerイメージは以下の構成になっています
- OS
- linux
- CPUアーキテクチャ
- arm64
❯ docker image inspect aaaabbbbcccc
## 結果が長いので必要なところだけ↓
"Architecture": "arm64",
"Os": "linux",
タスク定義を作成する際、OS/アーキテクチャの設定をデフォルト(Linux/X86_64)としていたため、食い違いが発生し、今回のエラーが起きたようです
タスク定義の設定の際、Linux/ARM64に修正しておきましょう
再び、クラスター上でタスクを実行すると正常に動作しました
コンテナのログにて起動していることが確認できました
参考