diff --git a/pkg/api/handlers/compat/images.go b/pkg/api/handlers/compat/images.go index 45b6c042c3..3734959cf9 100644 --- a/pkg/api/handlers/compat/images.go +++ b/pkg/api/handlers/compat/images.go @@ -468,6 +468,15 @@ func GetImages(w http.ResponseWriter, r *http.Request) { // docker adds sha256: in front of the ID for _, s := range summaries { s.ID = "sha256:" + s.ID + // Ensure RepoTags and RepoDigests are empty arrays instead of null for Docker compatibility + // as per https://docs.docker.com/reference/api/engine/version-history/#v143-api-changes + // Relates to https://issues.redhat.com/browse/RUN-2699 + if s.RepoTags == nil { + s.RepoTags = []string{} + } + if s.RepoDigests == nil { + s.RepoDigests = []string{} + } } } utils.WriteResponse(w, http.StatusOK, summaries) diff --git a/test/apiv2/10-images.at b/test/apiv2/10-images.at index 93492d1f14..ff9fee17d2 100644 --- a/test/apiv2/10-images.at +++ b/test/apiv2/10-images.at @@ -440,4 +440,19 @@ t GET "libpod/events?stream=false&since=$START" 200 \ .Actor.Attributes.name="localhost:5000/idonotexist" \ .Actor.Attributes.error~".*connection refused" +# test empty RepoTags and RepoDigests is an empty array +IIDFILE=$(mktemp) +podman image build --iidfile $IIDFILE -<