#!/bin/bash # 生成多个nexus-network服务的脚本 # 使用方法: ./generate_services.sh echo "======================================" echo "Nexus Network 多服务生成器" echo "======================================" echo # 获取用户输入的NODE_ID列表 echo "请输入NODE_ID列表(用空格分隔):" echo "示例: node1 node2 node3" read -p "NODE_ID列表: " NODE_IDS # 检查输入是否为空 if [ -z "$NODE_IDS" ]; then echo "错误: NODE_ID列表不能为空" exit 1 fi # 询问MAX_THREADS设置 read -p "请输入MAX_THREADS值(默认为4): " MAX_THREADS MAX_THREADS=${MAX_THREADS:-4} # 询问是否要覆盖现有的docker-compose.yml if [ -f "docker-compose.yml" ]; then echo "检测到现有的docker-compose.yml文件" read -p "是否要覆盖现有文件? (y/n): " OVERWRITE if [ "$OVERWRITE" != "y" ] && [ "$OVERWRITE" != "Y" ]; then echo "操作已取消" exit 0 fi fi # 生成docker-compose.yml文件 echo "正在生成docker-compose.yml文件..." echo # 创建文件头 cat > docker-compose.yml << 'EOF' services: EOF # 为每个NODE_ID生成一个服务 for NODE_ID in $NODE_IDS; do echo " 添加服务: nexus-network-$NODE_ID" cat >> docker-compose.yml << EOF nexus-network-$NODE_ID: image: ghcr.io/lushdog/nexus-network:latest network_mode: host build: context: . dockerfile: Dockerfile environment: - NODE_ID=$NODE_ID - MAX_THREADS=$MAX_THREADS restart: unless-stopped logging: driver: "json-file" options: max-size: "10m" max-file: "3" EOF done echo "======================================" echo "生成完成!" echo "======================================" echo echo "生成的服务数量: $(echo $NODE_IDS | wc -w)" echo "使用的NODE_ID: $NODE_IDS" echo "MAX_THREADS: $MAX_THREADS" echo echo "要启动所有服务,请运行:" echo " docker-compose up -d" echo echo "要查看服务状态,请运行:" echo " docker-compose ps" echo echo "要停止所有服务,请运行:" echo " docker-compose down" echo