〇〇dose not match any of the missing containers のエラーが出た時の対処法【CI/CDハンズオン】【AWS】

・dose not match any of the missing containers in the task definision file providedのエラーが出た。
・CI/CDハンズオンのbuildが上手くいかない

ci/cdハンズオンを用いて環境構築中、CodePipelineのデプロイステージで下記のようなエラーが発生してしまいました。

container named:〇〇 dose not match any of the missing containers in the task definision file provided.

今回の記事では上記エラーの原因と対処法を備忘も兼ねてブログにしておきます。

原因:buidspec.ymlとタスク定義のプレースホルダー文字が一致していない。

英語そのまんまなのですが、taskdef.jsonで定義されたコンテナイメージとcodepipeline上のデプロイステージで設定したプレースホルダーの設定が一致していないと生じるエラーのようです。

現状のtaskdef.jsonのイメージとcodepipeline上のプレースホルダーの確認をしてみましょう。

taskdef.jsonを見てみると、IMAGE1_NAMEと設定されています。

次にcodepipeleine上のタスク定義上のプレースホルダー文字を確認してみましょう。

AWSのCodePipelineのダッシュボードよりパイプラインを選択し「編集」をクリック

下記赤枠内のえんぴつみたいなマークをクリック

IMAGE_NAMEと表示されていますね。こちらをtaskdef.jsonに合わせて「IMAGE1_NAME」に変更します

※最後「完了」→「保存」と忘れないようにしてください

確認

修正が確認したら、codepipelineを再実行してみます。

完了しました。スムーズに行くかと思いきや思ったより色々苦労しましたが、大変良い勉強になりました。

この記事が誰かの参考になれば幸いです。