@echo off chcp 65001 >nul echo === CloudNest 本地开发启动 === :: 设置默认环境 / Set default environment if "%CLOUDNEST_ENV%"=="" set CLOUDNEST_ENV=dev echo 环境 / Environment: %CLOUDNEST_ENV% where go >nul 2>nul if %errorlevel% neq 0 ( echo [错误] 未找到 Go。请先安装 Go 1.25+: https://go.dev/dl/ pause exit /b 1 ) :: 检查是否跳过基础设施 / Check if skip infrastructure if /i "%SKIP_INFRA%"=="true" ( echo [信息] SKIP_INFRA=true,跳过基础设施启动 goto :skipInfra ) where docker >nul 2>nul if %errorlevel% neq 0 ( echo [错误] 未找到 Docker。请先安装 Docker Desktop echo 或者设置 SKIP_INFRA=true 使用外部基础设施 pause exit /b 1 ) echo [信息] 检查基础设施... docker ps --filter "name=cloudnest-mysql" --format "{{.Names}}" | findstr "cloudnest-mysql" >nul if %errorlevel% neq 0 ( echo [信息] 启动基础设施容器... docker compose -f docker-compose.infra.yml up -d echo [信息] 等待 MySQL 就绪(约 30 秒)... timeout /t 30 /nobreak >nul ) :skipInfra echo [信息] 下载 Go 依赖... set "GOROOT=D:\go" set "PATH=D:\go\bin;%PATH%" go mod tidy if %errorlevel% neq 0 ( echo [错误] go mod tidy 失败 pause exit /b 1 ) echo [信息] 启动 Auth Service (端口: 8081)... start "Auth Service" cmd /k "set CLOUDNEST_ENV=%CLOUDNEST_ENV% && set GOROOT=D:\go && set PATH=D:\go\bin;!PATH! && go run ./cmd/auth-service" echo [信息] 启动 File Service (端口: 8082)... start "File Service" cmd /k "set CLOUDNEST_ENV=%CLOUDNEST_ENV% && set SERVER_PORT=8082 && set GOROOT=D:\go && set PATH=D:\go\bin;!PATH! && go run ./cmd/file-service" echo. echo === 本地服务已启动 === echo 配置文件 / Config: configs/config.%CLOUDNEST_ENV%.yaml echo Auth Service: http://localhost:8081 (若占用则自动切换端口) echo File Service: http://localhost:8082 (若占用则自动切换端口) echo MinIO Console: http://localhost:9001 echo. pause