dockerfileをbuildしたときの挙動について。

docker imageの脆弱性について、わからないことがあるのでご教授いただけますと幸いです。
dockerへの知識量が低く、何度か質問・回答を繰り返すかもしれませんがご容赦ください。

前提

  • 2つのRepositoryがあるとします。
    • 一つは、githubで一般公開されている(自分のものではない)Repository。
    • もう一つはgithubで非公開の自分のRepository
  • alpine-3.18.0では脆弱性が検知されます。(https://nvd.nist.gov/vuln/detail/CVE-2022-48174)

事象

①git hubで一般公開されているDockerfileがあり、そのファイル内では以下のbase imageを利用しています。
このイメージをbuildし、docker scanすると、利用されているalpineのイメージはv3.18の中で最新のパッチバージョン(3.18.4)でした。

Dockerfile

1FROM golang:1.20-alpine3.18

docker scanの結果は以下のようになります。

Package manager: apk Platform: linux/amd64 Base image: alpine:3.18.4

②一方で自分のRepositoryにこれをbase imageとする、以下のようなDockerfileを作ったとします。

Dockerfile

1FROM thisImage:Vx.x.x

このdockerfileをbuildし、生成されたimageにdocker scanを行うと以下のようになります。

Package manager: apk Platform: linux/amd64 Base image: alpine:3.18.0

困っていること

  1. なぜ①ではv3.18.4が適用されるのに、それをbase imageとした②ではv3.18.0が利用されるのかわかりますか?

2.②のdockerfileを修正し、alpine:3.18.4を適用する方法はありますか?

コメントを投稿

0 コメント