修复 CI/CD 部署逻辑:强制更新 docker-compose.prod.yml
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m0s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m0s
根本问题: - 第一次部署时复制的 docker-compose.prod.yml 没有环境变量 - 后续部署跳过复制,导致服务器一直使用旧版本配置 - 容器启动时因缺少 DB_HOST 环境变量立即退出 - 健康检查失败 → 容器 unhealthy 服务器日志证实: - 容器反复重启 - 每次都显示 '错误: DB_HOST 环境变量未设置' - entrypoint-api.sh 第10行检查失败后 exit 1 修复内容: - docker-compose.prod.yml 每次部署强制更新 - configs 目录保留现有配置(避免覆盖运行时调整) - 确保最新的环境变量配置生效
This commit is contained in:
@@ -72,13 +72,16 @@ jobs:
|
||||
echo "📁 当前目录内容:"
|
||||
ls -la
|
||||
|
||||
# 如果配置文件不存在,从当前目录复制
|
||||
if [ ! -f ${{ env.DEPLOY_DIR }}/docker-compose.prod.yml ]; then
|
||||
echo "📋 初始化部署目录..."
|
||||
cp -v docker-compose.prod.yml ${{ env.DEPLOY_DIR }}/
|
||||
# 强制更新 docker-compose.prod.yml(确保使用最新配置)
|
||||
echo "📋 更新部署配置文件..."
|
||||
cp -v docker-compose.prod.yml ${{ env.DEPLOY_DIR }}/
|
||||
|
||||
# configs 目录只在不存在时初始化(避免覆盖运行时配置)
|
||||
if [ ! -d ${{ env.DEPLOY_DIR }}/configs ] || [ -z "$(ls -A ${{ env.DEPLOY_DIR }}/configs 2>/dev/null)" ]; then
|
||||
echo "📋 初始化配置目录..."
|
||||
cp -rv configs/* ${{ env.DEPLOY_DIR }}/configs/
|
||||
else
|
||||
echo "✅ 配置文件已存在,跳过复制"
|
||||
echo "✅ 配置目录已存在,保留现有配置"
|
||||
fi
|
||||
|
||||
cd ${{ env.DEPLOY_DIR }}
|
||||
|
||||
Reference in New Issue
Block a user