問題
Terraformでいうとこんなタスク定義
単純に curl しているだけなのだが何故か失敗し続ける
"healthCheck": {
"command": [
"CMD-SHELL",
"curl -f http://127.0.0.1:80/ || exit 1"
],
}
解決
docker container に curl がインストールされていないのが原因だった
Dockerfile で インストールするようにしたら成功するようになった
コンテナのヘルスチェックはコンテナ本体から実行されるようだ
あとから分かってみれば自明の理なのだがしばらく気づかなかった
まずはlocalでdocker containerに接続して、ヘルスチェックそのままのコマンドを実行して試すと良いようだ
curl -f http://127.0.0.1:80/ || exit 1
参考
解決方法
Amazon ECS のコンテナヘルスチェックの失敗をトラブルシューティングするには、以下のヒントを試してください。Amazon ECS にプロビジョニングする前に、コンテナをローカルでテストして、コンテナヘルスチェックに合格することを確認します。
コンテナに渡すコマンドが正しく、Amazon ECS タスクに正しい構文を使用していることを確認します。
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。