From ddf030a178022ad42f7c40f4566cf95a2df69145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Fri, 9 Jan 2026 18:36:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9F=BA=E7=A1=80=E8=AE=BE?= =?UTF-8?q?=E6=96=BD=E6=9C=8D=E5=8A=A1=E5=90=AF=E5=8A=A8=E7=AD=89=E5=BE=85?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MySQL 等待 30 秒初始化 - Redis 等待 10 秒 - Nacos 等待 20 秒(确保 MySQL 就绪) - 解决 Nacos 无法连接 MySQL 的问题 --- .devops/config.yaml | 3 +++ .devops/deployer.py | 24 +++++++++++++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/.devops/config.yaml b/.devops/config.yaml index 558b866..599fe29 100644 --- a/.devops/config.yaml +++ b/.devops/config.yaml @@ -217,11 +217,14 @@ infrastructure: - cp sql/ry_20250523.sql docker/mysql/db/ - cp sql/ry_config_20250902.sql docker/mysql/db/ deployed_flag: .devops/.deployed_mysql + wait_time: 30 # MySQL 需要更长时间初始化 - name: ruoyi-redis docker_service: ruoyi-redis deployed_flag: .devops/.deployed_redis + wait_time: 10 # Redis 启动较快 - name: ruoyi-nacos docker_service: ruoyi-nacos deployed_flag: .devops/.deployed_nacos + wait_time: 20 # Nacos 需要等待 MySQL 就绪 diff --git a/.devops/deployer.py b/.devops/deployer.py index bc2ecfe..8d3d930 100644 --- a/.devops/deployer.py +++ b/.devops/deployer.py @@ -322,38 +322,44 @@ class Deployer: return True repo_path = self.runtime_path / 'a-cloud-all' - + for infra in self.config['infrastructure']: name = infra['name'] deployed_flag = repo_path / infra['deployed_flag'] - + # 检查是否已部署 if deployed_flag.exists(): self.logger.info(f"基础设施 {name} 已部署,跳过") continue - + self.logger.info(f"部署基础设施: {name}") - + # 执行预部署命令 if 'pre_deploy_commands' in infra: for cmd in infra['pre_deploy_commands']: if not self.run_command(cmd, cwd=repo_path): self.logger.error(f"预部署命令失败: {cmd}") return False - + # 部署服务 docker_service = infra['docker_service'] docker_dir = repo_path / 'docker' - + cmd = f"docker-compose build --no-cache {docker_service} && docker-compose up -d {docker_service}" if not self.run_command(cmd, cwd=docker_dir, timeout=1800): self.logger.error(f"部署失败: {name}") return False - + + # 等待服务启动(特别是 MySQL 和 Redis) + wait_time = infra.get('wait_time', 10) + self.logger.info(f"等待 {name} 启动完成 ({wait_time} 秒)...") + import time + time.sleep(wait_time) + # 创建部署标记 deployed_flag.parent.mkdir(parents=True, exist_ok=True) deployed_flag.touch() - + self.logger.info(f"基础设施部署完成: {name}") - + return True