| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/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
|