|
|
@@ -0,0 +1,98 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+# 检查是否提供了服务数量参数
|
|
|
+if [ $# -eq 0 ]; then
|
|
|
+ echo "请输入要创建的服务数量:"
|
|
|
+ read -r SERVICE_COUNT
|
|
|
+else
|
|
|
+ SERVICE_COUNT=$1
|
|
|
+fi
|
|
|
+
|
|
|
+# 验证输入是否为数字
|
|
|
+if ! [[ "$SERVICE_COUNT" =~ ^[0-9]+$ ]]; then
|
|
|
+ echo "错误:请输入有效的数字"
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+if [ "$SERVICE_COUNT" -le 0 ]; then
|
|
|
+ echo "错误:服务数量必须大于0"
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+echo "正在生成 $SERVICE_COUNT 个服务..."
|
|
|
+
|
|
|
+# 备份原始文件
|
|
|
+cp docker-compose.yml docker-compose.yml.backup
|
|
|
+
|
|
|
+# 创建新的docker-compose.yml文件
|
|
|
+cat > docker-compose.yml << 'EOF'
|
|
|
+services:
|
|
|
+EOF
|
|
|
+
|
|
|
+# 生成每个服务
|
|
|
+for ((i=1; i<=SERVICE_COUNT; i++)); do
|
|
|
+ PORT=$((3005 + i))
|
|
|
+
|
|
|
+ if [ $i -eq 1 ]; then
|
|
|
+ SERVICE_NAME="nockchain"
|
|
|
+ VOLUME_DIR="nockchain"
|
|
|
+ WALLET_DIR="nockchain-wallet"
|
|
|
+ else
|
|
|
+ SERVICE_NAME="nockchain$i"
|
|
|
+ VOLUME_DIR="nockchain$i"
|
|
|
+ WALLET_DIR="nockchain-wallet$i"
|
|
|
+ fi
|
|
|
+
|
|
|
+ cat >> docker-compose.yml << EOF
|
|
|
+
|
|
|
+ $SERVICE_NAME:
|
|
|
+ image: ghcr.io/lushdog/nockchain:latest
|
|
|
+ network_mode: host
|
|
|
+ privileged: true
|
|
|
+ restart: unless-stopped
|
|
|
+ volumes:
|
|
|
+ - ./$VOLUME_DIR:/app/data
|
|
|
+ - ./$WALLET_DIR:/root/.nockapp/wallet
|
|
|
+ environment:
|
|
|
+ - MINING_PUBKEY=\${MINING_PUBKEY:?please make sure to set your MINING_PUBKEY environment variable in the .env file}
|
|
|
+ command:
|
|
|
+ - "--npc-socket"
|
|
|
+ - "nockchain.sock"
|
|
|
+ - "--mining-pubkey"
|
|
|
+ - "\${MINING_PUBKEY}"
|
|
|
+ - "--bind"
|
|
|
+ - "/ip4/0.0.0.0/udp/$PORT/quic-v1"
|
|
|
+ - "--mine"
|
|
|
+ logging:
|
|
|
+ driver: "json-file"
|
|
|
+ options:
|
|
|
+ max-size: "10m"
|
|
|
+ max-file: "3"
|
|
|
+EOF
|
|
|
+done
|
|
|
+
|
|
|
+echo ""
|
|
|
+echo "✅ 已成功生成 $SERVICE_COUNT 个服务"
|
|
|
+echo "📁 创建的服务和对应的文件夹:"
|
|
|
+for ((i=1; i<=SERVICE_COUNT; i++)); do
|
|
|
+ PORT=$((3005 + i))
|
|
|
+
|
|
|
+ if [ $i -eq 1 ]; then
|
|
|
+ SERVICE_NAME="nockchain"
|
|
|
+ VOLUME_DIR="nockchain"
|
|
|
+ WALLET_DIR="nockchain-wallet"
|
|
|
+ else
|
|
|
+ SERVICE_NAME="nockchain$i"
|
|
|
+ VOLUME_DIR="nockchain$i"
|
|
|
+ WALLET_DIR="nockchain-wallet$i"
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo " - 服务名: $SERVICE_NAME"
|
|
|
+ echo " 数据文件夹: $VOLUME_DIR"
|
|
|
+ echo " 钱包文件夹: $WALLET_DIR"
|
|
|
+ echo " 端口: $PORT"
|
|
|
+ echo ""
|
|
|
+done
|
|
|
+
|
|
|
+echo "🔄 原始文件已备份为 docker-compose.yml.backup"
|
|
|
+echo "🔗 请运行 'docker-compose up -d' 来启动服务"
|