简体   繁体   中英

Docker: Uses an image, skipping (docker-compose)

I am currently trying out this tutorial for node express with mongodb https://medium.com/@sunnykay/docker-development-workflow-node-express-mongo-4bb3b1f7eb1e

the first part works fine where to build the docker-compose.yml it works totally fine building it locally so I tried to tag it and push into my dockerhub to learn and try more.

this is originally what's in the yml file followed by the tutorial

version: "2"
services:
  web:
    build: .
    volumes:
      - ./:/app
    ports:
      - "3000:3000"

this works like a charm when I use docker-compose build and docker-compose up

so I tried to push it to my dockerhub and I also tag it as node-test

I then changed the yml file into

version: "2"
services:
  web:
    image: "et4891/node-test"
    volumes:
      - ./:/app
    ports:
      - "3000:3000"

then I removed all images I have previously to make sure this also works...but when I run docker-compose build I see this message error: web uses an image, skipping and nothing happens.

I tried googling the error but nothing much I can find.

Can someone please give me a hand?

Thanks in advance

I found out, I was being stupid.

I didn't need to run docker-compose build I can just directly run docker-compose up since then it'll pull the images down, the build is just to build locally

in my case below command worked:

docker-compose up --force-recreate

I hope this helps!

Clarification: This message ( <service> uses an image, skipping ) is NOT an error. It's informing the user that the service uses Image and it's therefore pre-built , So it's skipped by the build command.

In other words - You don't need build , you need to up the service.

Solution:

run sudo docker-compose up <your-service>

PS : In case you changed some configuration on your docker-compose use --force-recreate flag to apply the changes and creating it again.

sudo docker-compose up --force-recreate <your-service>

My problem was that I wanted to upgrade the image so I tried to use:

  • docker build --no-cache
  • docker-compose up --force-recreate
  • docker-compose up --build

None of which rebuild the image.

What is missing ( from this post ) is:

docker-compose stop
docker-compose rm -f # remove old images
docker-compose pull  # download new images
docker-compose up -d

Not sure if its a work-around or a fix but here is my experience. I faced the same issue later found that a dummy container was created with image name prepended in container name due to which I was facing the issue. Checked it with

docker ps -a 

I removed that container and re-build the image it worked.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM