使用docker hub时如何强制docker-compose下载新镜像?

Sva*_*kas 5 docker dockerhub docker-compose

我有一个 docker-compose.yml 文件,它从 docker hub 获取图像 svka4019/notes2:latest。但是,如果我更改镜像构建并推送它,当我运行 docker-compose 时,它​​只会使用它之前已经下载的镜像。这是 docker-compose.yml:

springboot-docker-compose-app-container: 
    image: svka4019/notes2:latest
    ports:
      - "80:5001"
    depends_on:
    - friendservice
    networks:
    - mynet
    container_name: base_notes
  friendservice:
    build: ./Pirmas
    command: python app.py
    ports:
    - 5000:5000
    container_name: friend
    networks:
    - mynet
    
networks:
    mynet:
Run Code Online (Sandbox Code Playgroud)

以及我用于构建和运行的命令:docker-compose up --build -d. 为了更新 docker-hub 中的图像,我使用:

docker build -t svka4019/notes2
docker push svka4019/notes2
Run Code Online (Sandbox Code Playgroud)

如果我使用无缓存的方法,它只会重建friendService 容器并跳过基本容器。

Ton*_*rde 5

正如@DazWilkin 在评论中指出的那样,应谨慎使用最新标签。如果最新的 BC 中断,它不仅会在您的应用程序中引入错误,而且如果您已经拥有“最新”的图像,它也不表示必须在您的计算机上执行新的更新。

在你的情况下,如果你想继续使用最新的,你必须做的就是简单地调用:

docker-compose pull
Run Code Online (Sandbox Code Playgroud)

如果您要构建自己的映像,则必须执行以下操作:

docker-compose build --pull
Run Code Online (Sandbox Code Playgroud)

后者会告诉 docker-compose 在构建自定义镜像之前先拉取基础镜像。