yuzhen_base/deploy.py

42 lines
1.3 KiB
Python

import yaml
import time
import subprocess
# 配置:延时秒数
DELAY_SECONDS = 10
def start_containers():
try:
# 1. 读取 compose 文件获取服务列表
with open('docker-compose.yml', 'r') as f:
compose_data = yaml.safe_load(f)
services = list(compose_data.get('services', {}).keys())
if not services:
print("错误: 未在 docker-compose.yml 中找到任何服务。")
return
print(f"检测到 {len(services)} 个服务,将按顺序启动并延时 {DELAY_SECONDS}s...")
# 2. 逐个启动服务
for service in services:
print(f"正在启动容器: {service} ...")
# 使用 docker-compose up -d [服务名] 启动特定容器
subprocess.run(["docker-compose", "up", "-d", service], check=True)
# 最后一个容器启动后不需要等待
if service != services[-1]:
time.sleep(DELAY_SECONDS)
print(f"等待 {DELAY_SECONDS}s...")
print("\n所有容器已按序启动完成!")
except FileNotFoundError:
print("错误: 当前目录下找不到 docker-compose.yml")
except Exception as e:
print(f"运行出错: {e}")
if __name__ == "__main__":
start_containers()