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.

  1. A warning message is printed:
    WARN[0327] reference for unknown type: application/vnd.cnab.config.v1+json
  2. GitLab's Container Registry cannot display the tagged imaged. An error banner is displayed:
    Something went wrong while fetching the registry list.
  3. GitLab cannot delete registries containing app bundle images. An error banner is displayed:
    Something went wrong on our end.

Steps to reproduce

  1. 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.
  2. 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

Screen_Shot_2019-09-02_at_8.36.38_PM

Screen_Shot_2019-09-02_at_8.36.49_PM

Screen_Shot_2019-09-02_at_8.37.35_PM

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.

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.