🙆

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月からあるようだ)

https://github.com/aws/containers-roadmap/issues/1596

mokmok Tech Blog

Discussion