compose: `docker-compose bundle` failed with ERROR: Some images are missing digests.

I would like to convert a simple compose k8s guestbook below to bundle format.

version: "2"

services:
  redis-master:
    image: gcr.io/google_containers/redis:e2e 
    ports:
      - "6379"
  redis-slave:
    image: gcr.io/google_samples/gb-redisslave:v1
    ports:
      - "6379"
    environment:
      - GET_HOSTS_FROM=dns
  frontend:
    image: gcr.io/google-samples/gb-frontend:v4
    ports:
      - "80:80"
    environment:
      - GET_HOSTS_FROM=dns

I tried docker-compose up -d first without issue. By running that command, docker would pulled the images.

$ docker images
REPOSITORY                               TAG                 IMAGE ID            CREATED             SIZE
gcr.io/google-samples/gb-frontend        v4                  e2b3e8542af7        4 months ago        512.2 MB
gcr.io/google_samples/gb-redisslave      v1                  5f026ddffa27        13 months ago       109.5 MB
gcr.io/google_containers/redis           e2e                 e5e67996c442        17 months ago       419 MB

However then using docker-compose bundle getting error like this:

$ docker-compose bundle --out guestbook.dsb
ERROR: Some images are missing digests.

The following images need to be pulled:

    gcr.io/google-samples/gb-frontend:v4
    gcr.io/google_containers/redis:e2e
    gcr.io/google_samples/gb-redisslave:v1

Use `docker-compose pull gcr.io/google-samples/gb-frontend:v4 gcr.io/google_containers/redis:e2e gcr.io/google_samples/gb-redisslave:v1` to pull them.

Any suggest ?

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 3
  • Comments: 15

Most upvoted comments

Same problem here with local images šŸ˜¦

docker-compose -f development.deploy.yml bundle -o pepe.dab
ERROR: Some images are missing digests.

The following images can be pushed:

    app/admin-development:development
    app/api-development:development
    app/customer-development:development
    app/proxy-development:development
    app/setup-development:development

Note: I pulled with docker-compose pull but doesnā€™t work.

Ah, yes, I love when issues arenā€™t fixed but closed anyway.

The image digest is only available if you push the image to a repository. The local build has a container hash (the image ID) but by some technical reason this is not the same digest the bundle needs.

This bug should have been closed long ago since it is not a bug and people misunderstand with good reasons the subtle difference between image digest (available from a repository) and image id. Me included.

The unhelpful Use `docker-compose push example-service:v1` to push them. line should be removed due to two main reasons: 1) it is wrong and as illustrated by the comments 2) people need to be aware of how they spawned docker-compose (with -f or environment variables) to push the images to the correct repository.

Reference: https://github.com/moby/moby/issues/32016

Ping @shin-

Frustrating šŸ˜ƒ Is this a bug not fixed sins 2016 or are we doing something wrong here?

version: "3"
services:
  nginx:
    image: docker....:5000/nginx-grpc
    ports:
    - "8443:8443"
    environment:
    - HELLO=0

% docker-compose bundle
ERROR: Some images are missing digests.
The following images need to be pulled:
    nginx
Use `docker-compose pull nginx` to pull them.

% docker-compose pull nginx
Pulling nginx (docker....:5000/nginx-grpc:latest)...
ERROR: manifest for docker....:5000/nginx-grpc:latest not found

% docker images
REPOSITORY                                                           TAG                 IMAGE ID            CREATED             SIZE
docker....:5000/nginx-grpc                                 latest              f18baa5eb1f9        33 hours ago        237MB

When I donā€™t create a bundle it works

% docker stack deploy --compose-file docker-compose.yml nginx-grpc-stack
Creating network nginx-grpc-stack_default
Creating service nginx-grpc-stack_nginx
%

Try docker-compose pull <Image names>

I also encountered this problem. Is there any way I can bundle the ā€œdockersā€ created locally(never pushed to dockerhub)?.

same here

[ec2-user@ip-10-0-1-186 docker-files]$ docker-compose pull kibana
ERROR:
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml

[ec2-user@ip-10-0-1-186 docker-files]$ docker pull kibana
Using default tag: latest
latest: Pulling from library/kibana
aa18ad1a0d33: Pull complete
fa2d2a20bb84: Pull complete
667931c73e5d: Pull complete
7e8919cd44f8: Pull complete
e5d237d4fd33: Pull complete
c28d9cc6e097: Pull complete
47cc615b83bf: Pull complete
9abde8e46c89: Pull complete
9d6f193cf5a9: Pull complete
Digest: sha256:a121bbf35425bb7d3448feae3211cdbfdfa128f0f7301bdb5dc82a0a91edb885
Status: Downloaded newer image for kibana:latest
[ec2-user@ip-10-0-1-186 docker-files]$ docker-compose -f KibanaComposefile bundle -o kibana.dab
ERROR: Some images are missing digests.

The following images need to be pulled:

    kibana

Use `docker-compose pull kibana` to pull them.

I get the same problem with an image Iā€™ve built locally:

hholst@fb-hholst3 ~/s/a3c-dist> ./provision.docker -t adam1 data/NatureBreakout-v0.yml 
+ docker build -q --build-arg IMAGE=breakout:adam1 --build-arg WORKERS=16 --build-arg LOGDIR=log/breakout-adam1 --build-arg ENV_INPUT=data/NatureBreakout-v0.yml --build-arg ENV_OUTPUT=breakout-adam1.yml -t breakout:adam1 .
sha256:812cccddeefa7b5a464f31ad5e74e89f27b48e284030caa062b46a3725cea55e
+ env IMAGE=breakout:adam1 WORKERS=16 LOGDIR=log/breakout-adam1 ENVIRONMENT=breakout-adam1.yml ENV_INPUT=data/NatureBreakout-v0.yml ENV_OUTPUT=breakout-adam1.yml docker-compose bundle
ERROR: Some images are missing digests.

The following images need to be pulled:

    breakout:adam1

Use `docker-compose pull breakout:adam1` to pull them.
hholst@fb-hholst3 ~/s/a3c-dist> 

Even images pulled, the issue still happened again and again. I guess there is problem with image digest.