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

如何让Docker容器同步GitHub最新代码并重新构建镜像?

解决Docker Compose从Git仓库构建不更新镜像的问题

方法1:强制全量重新构建

Docker默认会缓存Git仓库的快照和构建层,导致更新后仍复用旧内容。直接用以下命令强制拉取最新代码并从头构建:

docker-compose down
docker-compose build --no-cache
docker-compose up -d

也可以合并为单条命令:

docker-compose down && docker-compose build --no-cache && docker-compose up -d

--no-cache参数会让Docker彻底忽略所有缓存,重新拉取GitHub上的最新代码并完成全量构建。

方法2:兼顾缓存与更新的高效构建

如果不想每次都全量构建,可以先手动拉取最新代码到服务器本地,再基于本地目录构建(利用Docker分层缓存只更新变化的部分):

  1. 服务器上创建临时目录并拉取最新代码:
mkdir -p /tmp/api-build && cd /tmp/api-build
git clone git@github.com:BasselTurky/bluekiwiapp-repo.git --branch main --depth 1
  1. 修改docker-compose.yml的构建上下文指向本地目录:
version: "3"

services:
 node-api-a:
    build:
      context: /tmp/api-build/api-image
      dockerfile: Dockerfile
      args:
        - SSH_PRIVATE_KEY={MYKEY}
    image: node_api_image
    container_name: nodeApiA-con
    network_mode: host
  1. 执行构建与启动:
docker-compose down && docker-compose build && docker-compose up -d

方法3:用镜像仓库自动构建(生产环境推荐)

将GitHub仓库与Docker Hub等镜像仓库关联,每次推送代码时自动构建并推送最新镜像。服务器端直接拉取镜像而非本地构建:
修改docker-compose.yml为:

version: "3"

services:
 node-api-a:
    image: 你的DockerHub用户名/node_api_image:latest
    container_name: nodeApiA-con
    network_mode: host

启动时拉取最新镜像并重启:

docker-compose down && docker-compose pull && docker-compose up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:12:38