#!/bin/bash # ColaFlow 开发环境启动脚本 (Bash) set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' CYAN='\033[0;36m' NC='\033[0m' # No Color # 输出函数 success() { echo -e "${GREEN}$1${NC}"; } info() { echo -e "${CYAN}$1${NC}"; } warning() { echo -e "${YELLOW}$1${NC}"; } error() { echo -e "${RED}$1${NC}"; } # 横幅 info " ╔═══════════════════════════════════════════╗ ║ ColaFlow Development Environment ║ ║ Docker-based Development Stack ║ ╚═══════════════════════════════════════════╝ " # 检查 Docker info "🔍 Checking Docker..." if ! command -v docker &> /dev/null; then error "❌ Docker not found! Please install Docker." exit 1 fi if ! docker info &> /dev/null; then error "❌ Docker is not running! Please start Docker." exit 1 fi success "✅ Docker is ready" # 参数处理 CLEAN=false LOGS=false STOP=false while [[ $# -gt 0 ]]; do case $1 in --clean|-c) CLEAN=true shift ;; --logs|-l) LOGS=true shift ;; --stop|-s) STOP=true shift ;; *) echo "Unknown option: $1" echo "Usage: $0 [--clean] [--logs] [--stop]" exit 1 ;; esac done # 停止服务 if [ "$STOP" = true ]; then info "🛑 Stopping all services..." docker-compose down success "✅ All services stopped" exit 0 fi # 查看日志 if [ "$LOGS" = true ]; then info "📋 Showing logs (Ctrl+C to exit)..." docker-compose logs -f exit 0 fi # 清理 if [ "$CLEAN" = true ]; then warning "🧹 Cleaning up containers and volumes..." docker-compose down -v info "🔨 Rebuilding images..." docker-compose build --no-cache fi # 检查 .env 文件 if [ ! -f ".env" ]; then if [ -f ".env.example" ]; then info "📄 Creating .env from .env.example..." cp .env.example .env success "✅ .env file created" else warning "⚠️ No .env or .env.example found, using docker-compose defaults" fi fi # 启动服务 info "🚀 Starting services..." docker-compose up -d # 等待健康检查 info "⏳ Waiting for services to be healthy..." max_wait=60 waited=0 interval=2 while [ $waited -lt $max_wait ]; do if docker-compose ps | grep -q "unhealthy"; then sleep $interval waited=$((waited + interval)) echo -n "." else break fi done echo "" # 检查服务状态 info "\n📊 Service Status:" docker-compose ps success "\n🎉 ColaFlow development environment is ready!" info " 📍 Access Points: Frontend: http://localhost:3000 Backend: http://localhost:5000 Swagger: http://localhost:5000/scalar/v1 Database: localhost:5432 (colaflow/colaflow_dev_password) Redis: localhost:6379 👤 Demo Accounts (see scripts/DEMO-ACCOUNTS.md): Owner: owner@demo.com / Demo@123456 Developer: developer@demo.com / Demo@123456 📝 Useful Commands: ./scripts/dev-start.sh --stop # Stop all services ./scripts/dev-start.sh --logs # View logs ./scripts/dev-start.sh --clean # Clean rebuild docker-compose ps # Check status "