重构部署流程:使用私有镜像仓库和标准化配置
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 1m42s

核心改进:
1. 使用私有仓库基础镜像(极速拉取)
   - registry.boss160.cn/base/golang:1.25.6-alpine
   - registry.boss160.cn/base/alpine:3.19

2. 移除 Docker Compose 安装步骤(已在服务器永久安装)
   - 减少 51 行复杂逻辑
   - 构建时间减少 10-60 秒

3. 移除文件复制步骤(configs 已在服务器部署目录)
   - 减少 20+ 行代码
   - 简化维护流程

4. 极简化部署逻辑
   - 只保留:拉取镜像 → 重启服务 → 显示状态
   - 从 ~30 行减少到 7 行

效果:
- 净减少 68 行代码
- 工作流清晰易懂
- 构建速度提升(基础镜像从内网拉取)
- 维护成本大幅降低
This commit is contained in:
2026-01-20 10:13:50 +08:00
parent 90ecfce8c5
commit 1e979cf017
3 changed files with 11 additions and 79 deletions

View File

@@ -18,55 +18,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 安装 Docker Compose 插件
run: |
# 检查是否已安装
if docker compose version &> /dev/null; then
echo "✅ Docker Compose 已安装"
docker compose version
else
echo "📦 安装 Docker Compose 插件..."
# 创建插件目录
mkdir -p ~/.docker/cli-plugins/
# 定义多个国内镜像源(按顺序尝试)
MIRRORS=(
"https://ghproxy.net/https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64"
"https://gh-proxy.com/https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64"
"https://ghps.cc/https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64"
"https://github.moeyy.xyz/https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64"
"https://mirror.ghproxy.com/https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64"
)
DOWNLOADED=false
for MIRROR in "${MIRRORS[@]}"; do
echo "🔄 尝试: $(echo $MIRROR | cut -d'/' -f3)"
if curl -fSL --connect-timeout 15 --max-time 60 "$MIRROR" -o ~/.docker/cli-plugins/docker-compose 2>/dev/null; then
echo "✅ 下载成功"
DOWNLOADED=true
break
else
echo "❌ 失败,尝试下一个..."
fi
done
# 如果所有国内镜像都失败,尝试官方源
if [ "$DOWNLOADED" = false ]; then
echo "⚠️ 所有国内镜像失败,尝试官方源(可能较慢)..."
curl -fSL --connect-timeout 30 --max-time 300 https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
fi
chmod +x ~/.docker/cli-plugins/docker-compose
# 验证安装
if docker compose version; then
echo "✅ Docker Compose 安装成功"
else
echo "❌ Docker Compose 安装失败"
exit 1
fi
fi
- name: 检出代码
run: |
git clone https://git.boss160.cn/csxj2026/junhong_cmp_fiber.git .
@@ -109,38 +60,19 @@ jobs:
- name: 部署到本地(仅 main 分支)
if: github.ref == 'refs/heads/main'
run: |
# 确保部署目录存在
mkdir -p ${{ env.DEPLOY_DIR }}
# 复制必要的文件和目录到部署目录
cp docker-compose.prod.yml ${{ env.DEPLOY_DIR }}/
cp -r configs ${{ env.DEPLOY_DIR }}/
mkdir -p ${{ env.DEPLOY_DIR }}/logs
cd ${{ env.DEPLOY_DIR }}
echo "📋 当前部署目录: $(pwd)"
echo "🔍 验证 Docker Compose..."
docker compose version
echo "📥 拉取最新镜像..."
docker compose -f docker-compose.prod.yml pull
docker compose pull
echo "🚀 执行滚动更新..."
docker compose -f docker-compose.prod.yml up -d --no-deps
echo "🚀 重启服务..."
docker compose up -d
echo "⏳ 等待服务健康检查..."
echo "⏳ 等待服务启动..."
sleep 10
echo "🧹 清理旧镜像(保留最近 3 个版本)..."
docker images ${{ env.API_IMAGE }} --format "{{.ID}}" | tail -n +4 | xargs -r docker rmi -f || true
docker images ${{ env.WORKER_IMAGE }} --format "{{.ID}}" | tail -n +4 | xargs -r docker rmi -f || true
echo "🧹 清理悬空镜像..."
docker image prune -f
echo "✅ 部署完成!"
docker compose -f docker-compose.prod.yml ps
docker compose ps
- name: 构建结果通知
if: always()