Docker:使用图像,跳过(Docker-compose)

chhkpiq4  于 2022-12-22  发布在  Docker
关注(0)|答案(4)|浏览(554)

我目前正在使用mongodbhttps://medium.com/@sunnykay/docker-development-workflow-node-express-mongo-4bb3b1f7eb1e试用node express教程
第一部分工作得很好,在哪里构建docker-compose.yml,它工作得完全很好,在本地构建它,所以我试图标记它,并推入我的dockerhub来学习和尝试更多。
这是教程后面的yml文件中的原始内容

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

当我使用docker-compose builddocker-compose up时,这就像一个魅力
所以我试着把它推到我的dockerhub上,我还把它标记为node-test
然后,我将yml文件更改为

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

然后,我删除了所有的图像,我以前,以确保这也工作...但当我运行docker-compose build,我看到这个消息error: web uses an image, skipping,什么也没有发生。
我试着在谷歌上搜索这个错误,但没有找到什么。
有人能给予我一下吗?

eiee3dmh

eiee3dmh1#

我发现了,我太蠢了。
我不需要运行docker-compose build,我可以直接运行docker-compose up,因为它会拉下映像,build只是在本地构建

mv1qrgav

mv1qrgav2#

在我例子中,以下命令起作用:

docker-compose up --force-recreate

希望这能有所帮助!

rnmwe5a2

rnmwe5a23#

    • 澄清:此消息(<service> uses an image, skipping)不是错误。它通知用户服务使用 * Image ,因此它是预构建的*,因此构建命令跳过它。

换句话说,你不需要构建,你需要up服务。

    • 解决方案:**

运行sudo docker-compose up <your-service>

  • PS *:如果您更改了Docker-compose上的某些配置,请使用--force-recreate标志应用更改并再次创建。
sudo docker-compose up --force-recreate <your-service>
mwecs4sa

mwecs4sa4#

我的问题是我想升级image,所以我尝试用途:

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

它们都无法重建图像。
this post中缺少的是:

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

相关问题