簡體   English   中英

Docker:使用圖像,跳過(docker-compose)

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

我目前正在使用mongodb https://medium.com/@sunnykay/docker-development-workflow-node-express-mongo-4bb3b1f7eb1enode 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並且沒有任何反應。

我嘗試谷歌搜索錯誤,但我找不到太多。

有人可以幫我嗎?

提前致謝

我發現了,我傻了。

我不需要運行docker-compose build我可以直接運行docker-compose up從那時起它會將圖像拉下來, build只是在本地構建

在我的情況下,以下命令有效:

docker-compose up --force-recreate

我希望這有幫助!

說明:此消息( <service> uses an image, skipping )不是錯誤。 它通知用戶該服務使用Image ,因此它是pre-built ,因此它被 build 命令跳過。

換句話說 - 您不需要 build ,您需要up服務。

解決方案:

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

PS :如果您更改了 docker-compose 上的某些配置,請使用--force-recreate標志來應用更改並再次創建它。

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

我的問題是我想升級image所以我嘗試使用:

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

其中沒有一個重建圖像。

缺少的(來自這篇文章)是:

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

不確定它是解決方法還是修復方法,但這是我的經驗。 我遇到了同樣的問題,后來發現創建了一個虛擬容器,其中圖像名稱前置在容器名稱中,因為我面臨着這個問題。 檢查一下

docker ps -a 

我刪除了那個容器並重新構建它運行的圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM