| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- #!/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' 来启动服务"
|