ECR に image push したら複数登録されてなんかおかしいと思ったら provenance: false
を指定しておこう、という話。
状況
以下のように、 GithubActions から docker build -> ECR へ push した image が複数登録されて「?」みたいな状態になっていた。 ミドルウェアなど更新中なので脆弱性がめっちゃあるのは見なかったことに……。
2022 年頃はこのような動作じゃなかったので、どこの問題だ〜? となっていた。
結局原因は Docker の build 側で SALS という仕組みが取り入れられた事と、 コンテナリポジトリ側がそれらに対応できてないことでぶっ壊れている感じだった。 なおこの状態でも latest タグを fargate の参照元にしてるけどちゃんと動いてはいた。 (世代管理が壊れるのでそこだけオフにしていた)
以下のように provenance
を指定するととりあえず解決する。
- uses: docker/build-push-action@v4 with: file: docker/Dockerfile push: true tags: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }} cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max token: $${ secrets.PAT }} provenance: false #これ
あらましなどは以下がわかりやすかった、たすかる〜。