lushdog 5 місяців тому
батько
коміт
18bce31d98
1 змінених файлів з 85 додано та 0 видалено
  1. 85 0
      generate_services.sh

+ 85 - 0
generate_services.sh

@@ -0,0 +1,85 @@
+#!/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