#!/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' 查看所有实例状态"