maxmind hace 6 meses
padre
commit
652e22cec6
Se han modificado 2 ficheros con 123 adiciones y 0 borrados
  1. 25 0
      docker-compose.yml.backup
  2. 98 0
      generate_services.sh

+ 25 - 0
docker-compose.yml.backup

@@ -0,0 +1,25 @@
+services:
+
+  nockchain:
+    image: ghcr.io/lushdog/nockchain:latest
+    network_mode: host
+    privileged: true
+    restart: unless-stopped
+    volumes:
+      - ./nockchain:/app/data
+      - ./nockchain-wallet:/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/3006/quic-v1"
+      - "--mine"
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "3"

+ 98 - 0
generate_services.sh

@@ -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' 来启动服务"