Container Registry cannot handle Docker App packages, produces errors
Summary
Docker App produces Cloud Native Application Bundles, which are stored in Docker registries. Docker App is distributed as an experimental CLI plugin in some distributions of Docker 19.03, such as Docker for Mac.
Docker App is able to push application bundles to a project's Container Registry in GitLab. But, doing so has several side effects.
- A warning message is printed:
WARN[0327] reference for unknown type: application/vnd.cnab.config.v1+json - GitLab's Container Registry cannot display the tagged imaged. An error banner is displayed:
Something went wrong while fetching the registry list. - GitLab cannot delete registries containing app bundle images. An error banner is displayed:
Something went wrong on our end.
Steps to reproduce
- Create a GitLab project with an available Container Registry. I created a project at https://gitlab.com/kinghuang/docker-app-test, though I originally did this on a self-hosted GitLab EE instance.
- Create a Docker App and push it to the registry. Example app and commands below.
hello.dockerapp
version: 0.1.0
name: hello
description: GitLab demo.
maintainers:
- name: King Chung Huang
email: king.huang@enverus.com
---
version: "3.7"
services:
nginx:
image: nginx:latest
---
$ docker app push --tag registry.gitlab.com/kinghuang/docker-app-test:latest
registry.gitlab.com/kinghuang/docker-app-test:latest-invoc
nginx:latest
sha256:53ddb41e...: Skip (already present)
WARN[0024] reference for unknown type: application/vnd.cnab.config.v1+json
Successfully pushed bundle to registry.gitlab.com/kinghuang/docker-app-test:latest. Digest is sha256:3d451b90f1a43bba618f90992cc7f8b0425cb82010ef61bbc9c3b289e60a4a38.
Example Project
https://gitlab.com/kinghuang/docker-app-test
What is the current bug behavior?
GitLab's Container Registry cannot display the app image, nor delete the image/tag.
What is the expected correct behavior?
The app image should be displayed like any other image. It should be possible to delete a specific tag or an image and all its tags.
Relevant logs and/or screenshots
Output of checks
This bug happens on GitLab.com. Also happens on self-hosted GitLab EE 12.2.3.
Results of GitLab environment info
N/A
Results of GitLab application Check
N/A
Possible fixes
I originally reported this at docker/app#605. These other issues may be related.
- Can't push to GCR (docker/app#562)
- Can't push to ECR (docker/app#563)
This note on the ECR issue might be relevant to GitLab's Container Registry.
Hello @AkihiroSuda. We ran an investigation into this issue. It seems that Amazon ECR does not support to push an image without a tag (only referenced by its digest) but this feature is used by Docker App when pushing the service images of an app. We are currently working on a way to mitigate this issue.