generate_services.sh 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/bash
  2. # 生成多个nexus-network服务的脚本
  3. # 使用方法: ./generate_services.sh
  4. echo "======================================"
  5. echo "Nexus Network 多服务生成器"
  6. echo "======================================"
  7. echo
  8. # 获取用户输入的NODE_ID列表
  9. echo "请输入NODE_ID列表(用空格分隔):"
  10. echo "示例: node1 node2 node3"
  11. read -p "NODE_ID列表: " NODE_IDS
  12. # 检查输入是否为空
  13. if [ -z "$NODE_IDS" ]; then
  14. echo "错误: NODE_ID列表不能为空"
  15. exit 1
  16. fi
  17. # 询问MAX_THREADS设置
  18. read -p "请输入MAX_THREADS值(默认为4): " MAX_THREADS
  19. MAX_THREADS=${MAX_THREADS:-4}
  20. # 询问是否要覆盖现有的docker-compose.yml
  21. if [ -f "docker-compose.yml" ]; then
  22. echo "检测到现有的docker-compose.yml文件"
  23. read -p "是否要覆盖现有文件? (y/n): " OVERWRITE
  24. if [ "$OVERWRITE" != "y" ] && [ "$OVERWRITE" != "Y" ]; then
  25. echo "操作已取消"
  26. exit 0
  27. fi
  28. fi
  29. # 生成docker-compose.yml文件
  30. echo "正在生成docker-compose.yml文件..."
  31. echo
  32. # 创建文件头
  33. cat > docker-compose.yml << 'EOF'
  34. services:
  35. EOF
  36. # 为每个NODE_ID生成一个服务
  37. for NODE_ID in $NODE_IDS; do
  38. echo " 添加服务: nexus-network-$NODE_ID"
  39. cat >> docker-compose.yml << EOF
  40. nexus-network-$NODE_ID:
  41. image: ghcr.io/lushdog/nexus-network:latest
  42. network_mode: host
  43. build:
  44. context: .
  45. dockerfile: Dockerfile
  46. environment:
  47. - NODE_ID=$NODE_ID
  48. - MAX_THREADS=$MAX_THREADS
  49. restart: unless-stopped
  50. logging:
  51. driver: "json-file"
  52. options:
  53. max-size: "10m"
  54. max-file: "3"
  55. EOF
  56. done
  57. echo "======================================"
  58. echo "生成完成!"
  59. echo "======================================"
  60. echo
  61. echo "生成的服务数量: $(echo $NODE_IDS | wc -w)"
  62. echo "使用的NODE_ID: $NODE_IDS"
  63. echo "MAX_THREADS: $MAX_THREADS"
  64. echo
  65. echo "要启动所有服务,请运行:"
  66. echo " docker-compose up -d"
  67. echo
  68. echo "要查看服务状态,请运行:"
  69. echo " docker-compose ps"
  70. echo
  71. echo "要停止所有服务,请运行:"
  72. echo " docker-compose down"
  73. echo