From 53558dcd6a8edf0ea63be70413418a2f43f11e9d Mon Sep 17 00:00:00 2001 From: lzh Date: Fri, 12 Dec 2025 16:23:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20cicd-=E8=B0=83=E6=95=B410?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/ci-deploy.yml | 35 ++++++++++------------------------ 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/.gitea/workflows/ci-deploy.yml b/.gitea/workflows/ci-deploy.yml index 75e1241..47fb2fe 100644 --- a/.gitea/workflows/ci-deploy.yml +++ b/.gitea/workflows/ci-deploy.yml @@ -41,39 +41,24 @@ jobs: git clone --depth 1 "$GIT_URL" . git log -1 --format='%h - %s' - # 2. 登录镜像仓库 (如果有配置) - - name: Login to Docker Registry - if: ${{ secrets.REGISTRY_URL != '' }} - env: - REGISTRY_URL: ${{ secrets.REGISTRY_URL }} - REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} - REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} - run: | - echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY_URL" -u "$REGISTRY_USERNAME" --password-stdin - - # 3. 构建并推送镜像 - # 利用 Multi-stage Dockerfile,无需在宿主机安装 Maven - - name: Build and Push + # 2. 构建镜像 (单机模式,无需 Push) + - name: Build Docker Image id: build env: - REGISTRY_URL: ${{ secrets.REGISTRY_URL }} - # 默认为 jt808-server,如果 secret 未配置 - IMAGE_NAME: ${{ secrets.IMAGE_NAME || 'jt808-server' }} + IMAGE_NAME: 'jt808-server' run: | - SHORT_SHA=$(git rev-parse --short HEAD) - # 组装完整镜像名: registry.example.com/project/jt808-server:a1b2c3d - FULL_IMAGE_NAME="${REGISTRY_URL}/${IMAGE_NAME}:${SHORT_SHA}" + SHORT_SHA=$(git log -1 --format='%h') + FULL_IMAGE_NAME="${IMAGE_NAME}:${SHORT_SHA}" echo "Building $FULL_IMAGE_NAME..." docker build -t "$FULL_IMAGE_NAME" . - echo "Pushing $FULL_IMAGE_NAME..." - docker push "$FULL_IMAGE_NAME" + # 标记为 latest 方便后续引用 + docker tag "$FULL_IMAGE_NAME" "${IMAGE_NAME}:latest" - # 输出变量供后续步骤使用 - echo "image=$FULL_IMAGE_NAME" >> $GITHUB_OUTPUT + echo "image=${IMAGE_NAME}:latest" >> $GITHUB_OUTPUT - # 4. 部署 (同机部署模式) + # 3. 部署 (同机部署模式) # 直接在 Runner 所在机器重启容器 - name: Deploy env: @@ -83,7 +68,7 @@ jobs: echo "Deploying $IMAGE..." - # 停止并删除旧容器 (忽略不存在的错误) + # 停止并删除旧容器 docker stop $CONTAINER_NAME || true docker rm $CONTAINER_NAME || true