diff --git a/.gitea/workflows/deploy-backend.yml b/.gitea/workflows/deploy-backend.yml index 290e258..c423984 100644 --- a/.gitea/workflows/deploy-backend.yml +++ b/.gitea/workflows/deploy-backend.yml @@ -188,6 +188,26 @@ jobs: # 切换到后端项目目录 cd /data/docker/photography/backend + # 修复 Docker 权限问题 + echo "🔧 检查并修复 Docker 权限..." + sudo systemctl status docker || sudo systemctl start docker + sudo usermod -aG docker ${{ secrets.TYY_USER }} || true + + # 确保 Docker 服务正常运行 + echo "🐳 检查 Docker 服务状态..." + sudo systemctl is-active --quiet docker || { + echo "❌ Docker 服务未运行,尝试启动..." + sudo systemctl start docker + sleep 5 + } + + # 验证 Docker 权限 + echo "🔍 验证 Docker 权限..." + docker --version || { + echo "❌ Docker 命令不可用" + exit 1 + } + # 备份当前运行的容器 (如果存在) if docker ps -q -f name=photography-api; then echo "📦 备份当前后端容器..." @@ -196,11 +216,18 @@ jobs: # 停止现有服务 echo "🛑 停止现有服务..." - docker compose down api || true + docker compose down api || { + echo "⚠️ 停止服务时遇到问题,继续执行..." + docker stop photography-api || true + docker rm photography-api || true + } # 拉取最新镜像 echo "📥 拉取最新镜像..." - docker compose pull api + docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} || { + echo "❌ 镜像拉取失败,检查网络连接..." + exit 1 + } # 数据库迁移需要手动执行 echo "⚠️ 数据库迁移需要手动执行,请在部署后运行:" @@ -287,7 +314,7 @@ jobs: echo "📦 找到备份镜像: $BACKUP_IMAGE" # 停止当前服务 - docker compose down backend + docker compose down api # 标记备份镜像为最新 docker tag $BACKUP_IMAGE photography_backend:rollback @@ -296,7 +323,7 @@ jobs: sed -i 's|build: .*|image: photography_backend:rollback|g' docker-compose.yml # 启动回滚版本 - docker compose up -d backend + docker compose up -d api echo "✅ 回滚完成" else diff --git a/backend/docker-compose.prod.yml b/backend/docker-compose.prod.yml index 025817f..4376bc5 100644 --- a/backend/docker-compose.prod.yml +++ b/backend/docker-compose.prod.yml @@ -1,7 +1,8 @@ # Photography Portfolio Backend - Production Docker Compose # 生产环境配置 - 使用现有 PostgreSQL 和 Redis 服务 -version: '3.8' +# version 字段已废弃,不再需要使用 +# version: '3.8' services: # 后端API服务 (仅API服务,无数据库) diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index b0f8b42..c70f044 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -1,7 +1,8 @@ # Photography Portfolio Backend - Docker Compose # 本地开发和测试环境配置 -version: '3.8' +# version 字段已废弃,不再需要使用 +# version: '3.8' services: # PostgreSQL 数据库