You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.3 KiB

#!/bin/bash
# ============================================
# A股智投分析平台 - Docker 快速启动脚本
# ============================================
set -e
echo "=============================================="
echo "A股智投分析平台 - Docker 一键启动"
echo "=============================================="
# 检查 Docker 是否安装
if ! command -v docker &> /dev/null; then
echo "❌ Docker 未安装,请先安装 Docker"
exit 1
fi
if ! command -v docker-compose &> /dev/null; then
echo "❌ Docker Compose 未安装,请先安装 Docker Compose"
exit 1
fi
echo "✓ Docker 环境检查通过"
# 创建必要目录
mkdir -p logs
echo ""
echo "=============================================="
echo "启动服务..."
echo "=============================================="
# 使用 .env.docker 覆盖默认配置
cp .env.docker .env.production
# 构建并启动服务
docker-compose -f docker-compose.yml up --build -d
echo ""
echo "=============================================="
echo "等待服务启动..."
echo "=============================================="
# 等待 MySQL 启动
for i in {1..30}; do
if docker-compose exec -T mysql mysqladmin ping -h localhost -u root -p1qazse42W3 --silent 2>/dev/null; then
echo "✓ MySQL 已启动"
break
fi
echo -n "."
sleep 2
done
# 等待应用启动
for i in {1..30}; do
if curl -s http://localhost:3000/api/v1/health | grep -q "healthy"; then
echo ""
echo "✓ 后端服务已启动"
break
fi
echo -n "."
sleep 2
done
echo ""
echo "=============================================="
echo "✅ 所有服务启动成功!"
echo "=============================================="
echo ""
echo "服务访问地址:"
echo " • API 接口: http://localhost:3000/api/v1"
echo " • 健康检查: http://localhost:3000/api/v1/health"
echo " • MySQL: localhost:3306"
echo " • Redis: localhost:6379"
echo ""
echo "默认账号:"
echo " • MySQL: root / 1qazse42W3"
echo ""
echo "常用命令:"
echo " • 查看日志: docker-compose logs -f app"
echo " • 停止服务: docker-compose down"
echo " • 完全重置: docker-compose down -v"
echo ""
echo "=============================================="