42 lines
1.3 KiB
Python
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()
|