You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用相同TAG时Docker Push无法覆盖镜像最新变更的问题

解决Docker相同TAG无法更新镜像的问题

你的构建环节已经做对了——用--no-cache确保每次都是全新构建,推送也会覆盖Docker Hub上的同TAG镜像,但问题出在部署环节的自托管 runner 本地缓存了旧镜像,导致docker-compose up -d直接用本地旧镜像,不会主动拉取你刚推送的新版本。

直接改部署步骤就能解决,给你两种靠谱的方案:

方案一:先拉取最新镜像再启动

在部署流程里,停止容器后先执行拉取命令,确保拿到最新镜像再启动:

deploy:
  needs: build
  name: Deploy
  runs-on: self-hosted
  steps:
    - name: ...
      # 保留你原有的其他步骤
    - name: Stop existing containers
      run: docker-compose down
    - name: Pull latest images from Docker Hub
      run: docker-compose pull
    - name: Run container with Docker Compose
      run: docker-compose up -d

方案二:启动时强制拉取最新镜像

把拉取和启动合并成一步,用--pull always参数让docker-compose自动拉取最新镜像:

deploy:
  needs: build
  name: Deploy
  runs-on: self-hosted
  steps:
    - name: ...
      # 保留你原有的其他步骤
    - name: Stop existing containers
      run: docker-compose down
    - name: Run container with Docker Compose (pull latest first)
      run: docker-compose up -d --pull always

额外说明

  • 不用清理Docker Hub的旧镜像,只要部署端主动拉取,就能拿到你刚构建的最新版本。
  • 确保你的docker-compose.yml里引用的是完整的镜像名(比如${DOCKER_USERNAME}/****:client-latest),不要写死镜像ID。

内容的提问来源于stack exchange,提问作者MiguelG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 09:46:01