#!/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 "=============================================="