Files
cloudnest/start-local.bat
T

65 lines
2.0 KiB
Batchfile

@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