🙆
docker/build-push-actionでECRのスキャンが失敗するときの対応
GitHub ActionsからECRにDockerイメージをpushするとき、docker/build-push-action
が便利である。
しかし上記actionを利用してECRにイメージをpushするとECRのイメージスキャンが失敗することがある。
本記事ではその原因と解決方法を紹介する。
こたえ
provenance: false
オプションを追加する。
jobs:
push:
steps:
- uses: docker/build-push-action@v5
with:
+ provenance: false
原因
OSやCPUアーキテクチャなどの違いに対応したマルチプラットフォームイメージなどをpushした場合に、1つのタグにイメージを複数プラットフォームのイメージメタデータを保持するためにimage manifestと呼ばれる仕組みが利用される。
一部のコンテナレジストリではそれに対応していない、もしくは正しく処理できていない場合があるようで、ECRは後者にあたる。
以下に該当issueを添付する。(2021年12月からあるようだ)
Discussion