| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- @echo off
- REM RAG 系统 Docker 启动脚本 (Windows)
- REM 用法: start.bat [dev|prod]
- setlocal enabledelayedexpansion
- REM 切换到脚本所在目录
- cd /d "%~dp0"
- REM 设置默认命令
- set COMMAND=%1
- if "%COMMAND%"=="" set COMMAND=dev
- REM 检查 Docker 是否安装
- where docker >nul 2>nul
- if %ERRORLEVEL% neq 0 (
- echo [ERROR] Docker 未安装,请先安装 Docker Desktop
- exit /b 1
- )
- REM 检查 docker-compose 是否安装
- where docker-compose >nul 2>nul
- if %ERRORLEVEL% equ 0 (
- set DOCKER_COMPOSE_CMD=docker-compose
- ) else (
- docker compose version >nul 2>nul
- if %ERRORLEVEL% equ 0 (
- set DOCKER_COMPOSE_CMD=docker compose
- ) else (
- echo [ERROR] Docker Compose 未安装
- exit /b 1
- )
- )
- echo [INFO] Docker 和 Docker Compose 已安装
- REM 检查 .env 文件
- if not exist "..\\.env" (
- echo [WARN] .env 文件不存在,从 .env.example 复制
- if exist "..\\.env.example" (
- copy "..\\.env.example" "..\\.env" >nul
- echo [INFO] .env 文件已创建,请根据需要修改配置
- ) else (
- echo [ERROR] .env.example 文件不存在
- exit /b 1
- )
- )
- REM 执行命令
- if "%COMMAND%"=="dev" goto start_dev
- if "%COMMAND%"=="prod" goto start_prod
- if "%COMMAND%"=="stop" goto stop_all
- if "%COMMAND%"=="stop-dev" goto stop_dev
- if "%COMMAND%"=="stop-prod" goto stop_prod
- if "%COMMAND%"=="help" goto show_help
- if "%COMMAND%"=="-h" goto show_help
- if "%COMMAND%"=="--help" goto show_help
- echo [ERROR] 未知命令: %COMMAND%
- goto show_help
- :start_dev
- echo [INFO] 启动开发环境...
- %DOCKER_COMPOSE_CMD% -f docker-compose.dev.yml up -d --build
- if %ERRORLEVEL% neq 0 (
- echo [ERROR] 启动失败
- exit /b 1
- )
- echo [INFO] 等待服务启动...
- timeout /t 10 /nobreak >nul
- echo.
- echo [INFO] 开发环境已启动!
- echo.
- echo 访问地址:
- echo - API 文档: http://localhost:8000/docs
- echo - pgAdmin: http://localhost:5050 (admin@example.com / admin)
- echo.
- echo 查看日志:
- echo %DOCKER_COMPOSE_CMD% -f docker-compose.dev.yml logs -f
- echo.
- echo 停止服务:
- echo %DOCKER_COMPOSE_CMD% -f docker-compose.dev.yml down
- goto end
- :start_prod
- echo [INFO] 启动生产环境...
- %DOCKER_COMPOSE_CMD% -f docker-compose.yml up -d --build
- if %ERRORLEVEL% neq 0 (
- echo [ERROR] 启动失败
- exit /b 1
- )
- echo [INFO] 等待服务启动...
- timeout /t 10 /nobreak >nul
- echo.
- echo [INFO] 生产环境已启动!
- echo.
- echo 访问地址:
- echo - API 文档: http://localhost:8000/docs
- echo.
- echo 查看日志:
- echo %DOCKER_COMPOSE_CMD% -f docker-compose.yml logs -f
- echo.
- echo 停止服务:
- echo %DOCKER_COMPOSE_CMD% -f docker-compose.yml down
- goto end
- :stop_all
- echo [INFO] 停止所有服务...
- %DOCKER_COMPOSE_CMD% -f docker-compose.dev.yml down 2>nul
- %DOCKER_COMPOSE_CMD% -f docker-compose.yml down 2>nul
- echo [INFO] 服务已停止
- goto end
- :stop_dev
- echo [INFO] 停止开发环境...
- %DOCKER_COMPOSE_CMD% -f docker-compose.dev.yml down
- echo [INFO] 开发环境已停止
- goto end
- :stop_prod
- echo [INFO] 停止生产环境...
- %DOCKER_COMPOSE_CMD% -f docker-compose.yml down
- echo [INFO] 生产环境已停止
- goto end
- :show_help
- echo 用法: %~nx0 [命令]
- echo.
- echo 命令:
- echo dev 启动开发环境
- echo prod 启动生产环境
- echo stop 停止所有服务
- echo stop-dev 停止开发环境
- echo stop-prod 停止生产环境
- echo help 显示帮助信息
- echo.
- echo 示例:
- echo %~nx0 dev # 启动开发环境
- echo %~nx0 prod # 启动生产环境
- echo %~nx0 stop # 停止所有服务
- goto end
- :end
- endlocal
|