diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml index 9f0b86e..2f4e33b 100644 --- a/.woodpecker/build.yml +++ b/.woodpecker/build.yml @@ -1,6 +1,6 @@ when: - event: tag - tag: v* + ref: refs/tags/v* clone: git: @@ -26,32 +26,18 @@ steps: IMAGE_TAG="${CI_COMMIT_TAG:-latest}" - # 确保网络存在 - docker network create likedream-net 2>/dev/null || true - - # ============================================================ - # 第一步:初始化 1Panel 站点配置(首次部署时才需要) - # ============================================================ - # nginx 配置文件在 git clone 后位于 deploy/nginx/ 目录 # 应用配置由宿主机 /opt/cpdaily-xiaozhushou/config.toml 运维维护 # (已移出版本库,避免密钥入库;容器以只读挂载方式读取) - if ! docker exec 1Panel-openresty-ESmn ls /www/sites/xiaozhushou/proxy/api.conf 2>/dev/null; then - echo "=== 首次部署:创建 1Panel 站点配置 ===" - docker exec 1Panel-openresty-ESmn mkdir -p /www/sites/xiaozhushou/proxy /www/sites/xiaozhushou/log - docker cp deploy/nginx/xiaozhushou.conf 1Panel-openresty-ESmn:/usr/local/openresty/nginx/conf/conf.d/xiaozhushou.conf - docker cp deploy/nginx/api.conf 1Panel-openresty-ESmn:/www/sites/xiaozhushou/proxy/api.conf - docker exec 1Panel-openresty-ESmn nginx -s reload - echo " 1Panel 站点配置完成 ✓" - fi - # ============================================================ - # 第二步:读取当前代理端口,确定蓝绿状态 + # 第一步:读取当前反代端口,确定蓝绿状态 + # 反代入口为 1Panel 站点 jinrixiaoyuan.top(frps 公网链路): + # /www/sites/jinrixiaoyuan.top/proxy/root.conf → proxy_pass http://127.0.0.1:8884|8885 # ============================================================ CURRENT_PORT=$(docker exec 1Panel-openresty-ESmn \ - grep -o 'proxy_pass http://10.10.10.128:[0-9]\+' \ - /www/sites/xiaozhushou/proxy/api.conf | grep -o '[0-9]\+$') - echo "=== 当前 1Panel 反代端口: $CURRENT_PORT ===" + grep -oE 'proxy_pass http://[0-9.]+:[0-9]+' \ + /www/sites/jinrixiaoyuan.top/proxy/root.conf | grep -o '[0-9]\+$') + echo "=== 当前反代端口: $CURRENT_PORT ===" if [ "$CURRENT_PORT" = "8884" ]; then PORT_ACTIVE=8884 @@ -60,9 +46,8 @@ steps: PORT_ACTIVE=8885 PORT_STANDBY=8884 else - echo "未知当前端口 $CURRENT_PORT,默认使用 8884/8885" - PORT_ACTIVE=8884 - PORT_STANDBY=8885 + echo "ERROR: 未知反代端口 $CURRENT_PORT,中止部署(期望 8884/8885)" + exit 1 fi echo " 活跃: $PORT_ACTIVE | 备用: $PORT_STANDBY" @@ -70,7 +55,7 @@ steps: docker rm -f cpdaily-xiaozhushou-new 2>/dev/null || true # ============================================================ - # 第三步:在备用端口启动新容器 + # 第二步:在备用端口启动新容器 # ============================================================ echo "=== 蓝绿部署: 启动新容器 on :$PORT_STANDBY (image: $IMAGE_TAG) ===" @@ -83,7 +68,7 @@ steps: cpdaily-xiaozhushou:$IMAGE_TAG # ============================================================ - # 第四步:健康检查 + # 第三步:健康检查 # ============================================================ HEALTHY=false for i in $(seq 1 15); do @@ -104,24 +89,24 @@ steps: echo " 新容器已就绪 ✓" # ============================================================ - # 第五步:切换 1Panel 代理到备用端口 + # 第四步:切换 1Panel 反代到备用端口 # ============================================================ echo "=== 切换 1Panel 反代 :$PORT_ACTIVE → :$PORT_STANDBY ===" docker exec 1Panel-openresty-ESmn \ sed -i "s|:$PORT_ACTIVE|:$PORT_STANDBY|g" \ - /www/sites/xiaozhushou/proxy/api.conf + /www/sites/jinrixiaoyuan.top/proxy/root.conf docker exec 1Panel-openresty-ESmn nginx -s reload echo " Nginx 热加载完成(零中断)✓" # ============================================================ - # 第六步:停止旧容器 + # 第五步:停止旧容器 # ============================================================ echo "=== 清理旧容器 ===" docker stop cpdaily-xiaozhushou 2>/dev/null || true docker rm cpdaily-xiaozhushou 2>/dev/null || true # ============================================================ - # 第七步:在活跃端口启动正式容器 + # 第六步:在活跃端口启动正式容器 # ============================================================ echo "=== 启动正式容器 on :$PORT_ACTIVE ===" docker run -d --name cpdaily-xiaozhushou \ @@ -133,17 +118,17 @@ steps: cpdaily-xiaozhushou:$IMAGE_TAG # ============================================================ - # 第八步:切回 1Panel 代理到活跃端口 + # 第七步:切回 1Panel 反代到活跃端口 # ============================================================ echo "=== 切回 1Panel 反代 :$PORT_STANDBY → :$PORT_ACTIVE ===" docker exec 1Panel-openresty-ESmn \ sed -i "s|:$PORT_STANDBY|:$PORT_ACTIVE|g" \ - /www/sites/xiaozhushou/proxy/api.conf + /www/sites/jinrixiaoyuan.top/proxy/root.conf docker exec 1Panel-openresty-ESmn nginx -s reload echo " Nginx 热加载完成(零中断)✓" # ============================================================ - # 第九步:清理 + # 第八步:清理 # ============================================================ echo "=== 清理 ===" docker rm -f cpdaily-xiaozhushou-new 2>/dev/null || true