From 5de7ea9dbc699645f59eaf0b91776e8e202c2580 Mon Sep 17 00:00:00 2001 From: yyhuni Date: Thu, 18 Dec 2025 22:55:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E5=88=A9=E7=94=A8do?= =?UTF-8?q?cker=20hub=E5=8A=A0=E9=80=9F=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-build.yml | 8 ++++++-- docker/docker-compose.dev.yml | 2 +- docs/version-management.md | 13 +++++++------ install.sh | 21 ++++++++++----------- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 328d05cc..dbb01daf 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -100,8 +100,12 @@ jobs: tags: | ${{ env.IMAGE_PREFIX }}/${{ matrix.image }}:${{ steps.version.outputs.VERSION }} ${{ steps.version.outputs.IS_RELEASE == 'true' && format('{0}/{1}:latest', env.IMAGE_PREFIX, matrix.image) || '' }} - cache-from: type=gha - cache-to: type=gha,mode=max + cache-from: | + type=gha + type=registry,ref=${{ env.IMAGE_PREFIX }}/${{ matrix.image }}:buildcache + cache-to: | + type=gha,mode=max + type=registry,ref=${{ env.IMAGE_PREFIX }}/${{ matrix.image }}:buildcache,mode=max # 所有镜像构建成功后,更新 VERSION 文件 update-version: diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 30334461..bc51622e 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -106,7 +106,7 @@ services: build: context: .. dockerfile: docker/worker/Dockerfile - image: docker-worker:latest + image: docker-worker:${IMAGE_TAG:-latest}-dev restart: "no" volumes: - /opt/xingrin/results:/app/backend/results diff --git a/docs/version-management.md b/docs/version-management.md index b95d3495..d075c0bb 100644 --- a/docs/version-management.md +++ b/docs/version-management.md @@ -152,13 +152,13 @@ sequenceDiagram ### 本地开发测试 ```bash -# docker/.env 中添加 -TASK_EXECUTOR_IMAGE=docker-agent:latest # 指向本地构建镜像 +# docker/.env 中添加(开发模式会自动设置) +TASK_EXECUTOR_IMAGE=docker-worker:v1.1.0-dev # 指向本地构建镜像 ``` ### 开发模式启动 ```bash -# 使用本地构建镜像 +# 使用本地构建镜像(自动构建并标记为 ${VERSION}-dev) ./install.sh --dev ./start.sh --dev ``` @@ -238,7 +238,8 @@ curl -s https://hub.docker.com/v2/repositories/yyhuni/xingrin-worker/tags/ 4. ✅ 使用 `docker system prune` 清理旧镜像 ### 开发调试 -1. ✅ 本地测试使用 `--dev` 模式 +1. ✅ 本地测试使用 `--dev` 模式(自动构建 `docker-worker:${VERSION}-dev`) 2. ✅ 远程测试先推送测试版本到 Hub -3. ✅ 生产环境避免使用 `latest` 标签 -4. ✅ 版本回滚通过修改 `IMAGE_TAG` 实现 \ No newline at end of file +3. ✅ 生产环境避免使用 `latest` 标签,始终使用明确版本号 +4. ✅ 开发环境使用 `-dev` 后缀区分开发版本 +5. ✅ 版本回滚通过修改 `IMAGE_TAG` 实现 \ No newline at end of file diff --git a/install.sh b/install.sh index b1e4e773..c5d6adaf 100755 --- a/install.sh +++ b/install.sh @@ -404,24 +404,23 @@ WORKER_IMAGE="${DOCKER_USER}/xingrin-worker:${APP_VERSION}" if [ "$DEV_MODE" = true ]; then info "开发模式:构建本地 Worker 镜像..." if docker compose -f "$DOCKER_DIR/docker-compose.dev.yml" build worker; then - # 设置 TASK_EXECUTOR_IMAGE 环境变量指向本地构建的镜像 - update_env_var "$DOCKER_DIR/.env" "TASK_EXECUTOR_IMAGE" "docker-worker:latest" - success "本地 Worker 镜像构建完成,并设置为默认使用镜像" + # 设置 TASK_EXECUTOR_IMAGE 环境变量指向本地构建的镜像(使用版本号-dev标识) + update_env_var "$DOCKER_DIR/.env" "TASK_EXECUTOR_IMAGE" "docker-worker:${APP_VERSION}-dev" + success "本地 Worker 镜像构建完成: docker-worker:${APP_VERSION}-dev" else - warn "本地 Worker 镜像构建失败,将使用远程镜像" - info "正在拉取: $WORKER_IMAGE" - if docker pull "$WORKER_IMAGE"; then - success "Worker 镜像拉取完成" - else - warn "Worker 镜像拉取失败,扫描时会自动重试拉取" - fi + error "开发模式下本地 Worker 镜像构建失败!" + error "请检查构建错误并修复后重试" + exit 1 fi else info "正在拉取: $WORKER_IMAGE" if docker pull "$WORKER_IMAGE"; then success "Worker 镜像拉取完成" else - warn "Worker 镜像拉取失败,扫描时会自动重试拉取" + error "Worker 镜像拉取失败,无法继续安装" + error "请检查网络连接或 Docker Hub 访问权限" + error "镜像地址: $WORKER_IMAGE" + exit 1 fi fi