-
Notifications
You must be signed in to change notification settings - Fork 284
Description
Tell us about your request
Set OCI standard annotations on images describing information about the image's base image.
https://github.com/opencontainers/image-spec/blob/main/annotations.md
org.opencontainers.image.base.digestDigest of the image this image is based on (string)
- This SHOULD be the immediate image sharing zero-indexed layers with the image, such as from a Dockerfile FROM statement.
- This SHOULD NOT reference any other images used to generate the contents of the image (e.g., multi-stage Dockerfile builds).
org.opencontainers.image.base.nameImage reference of the image this image is based on (string)
- This SHOULD be image references in the format defined by distribution/distribution.
- This SHOULD be a fully qualified reference name, without any assumed default registry. (e.g., registry.example.com/my-org/my-image:tag instead of my-org/my-image:tag).
- This SHOULD be the immediate image sharing zero-indexed layers with the image, such as from a Dockerfile FROM statement.
- This SHOULD NOT reference any other images used to generate the contents of the image (e.g., multi-stage Dockerfile builds).
- If the image.base.name annotation is specified, the image.base.digest annotation SHOULD be the digest of the manifest referenced by the image.ref.name annotation.
(lots more discussion and motivation in opencontainers/image-spec#822)
Which service(s) is this request for?
docker build
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
Setting these annotations makes it easier for other tools to determine information about the base image, such as whether it contains vulnerabilities, whether there are updates to fix those vulnerabilities, etc. More details at https://articles.imjasonh.com/oci-base-image-annotations
Are you currently working around the issue?
There is currently no reliable mechanism to determine whether an image's base image has updates.
Additional context
This does not cover annotating information about other images that may have been involved in producing the image in question, such as during a multi-stage build (FROM golang AS builder) -- only the final image that contributed base image layers.
This should be considered safe to annotate in the general case, but it's possible someone would want to disable this behavior. I'm not familiar with the preferred mechanism to enable/disable behavior like this in Docker, e.g., environment variable vs flag to docker build.