stock_fundamentals/deploy-multiple.sh

52 lines
1.2 KiB
Bash
Raw Normal View History

2025-05-14 08:54:56 +08:00
#!/bin/bash
# 检查参数
if [ "$#" -lt 1 ]; then
echo "使用方法: $0 <实例数量>"
exit 1
fi
# 实例数量
NUM_INSTANCES=$1
BASE_PORT=5088 # 从5088开始
# 构建基础镜像
echo "构建基础镜像..."
docker-compose build
# 停止并删除旧容器
echo "清理旧容器..."
for ((i=1; i<=$NUM_INSTANCES; i++))
do
INSTANCE_NAME="stock-app-$i"
docker stop $INSTANCE_NAME 2>/dev/null
docker rm $INSTANCE_NAME 2>/dev/null
done
# 部署新实例
echo "开始部署 $NUM_INSTANCES 个实例..."
for ((i=1; i<=$NUM_INSTANCES; i++))
do
INSTANCE_NAME="stock-app-$i"
PORT=$((BASE_PORT + i - 1)) # 从5088开始递增
DATA_DIR="./instances/instance-$i"
# 创建实例目录
mkdir -p "$DATA_DIR/logs"
mkdir -p "$DATA_DIR/reports"
echo "部署实例 $i: $INSTANCE_NAME 在端口 $PORT"
docker run -d \
--name $INSTANCE_NAME \
-p $PORT:5000 \
-v "$DATA_DIR/logs:/app/logs" \
-v "$DATA_DIR/reports:/app/reports" \
-e "FLASK_ENV=production" \
-e "FLASK_APP=src/app.py" \
-e "INSTANCE_ID=$i" \
--restart unless-stopped \
gpfx-app:latest
done
echo "全部实例已部署完成!"
echo "运行 'docker ps' 查看所有实例状态"