Files
JuYou/start_api.bat
2026-08-25 17:59:42 +08:00

65 lines
1.4 KiB
Batchfile

@echo off
setlocal
cd /d "%~dp0"
where docker >nul 2>nul
if errorlevel 1 (
echo [ERROR] Docker was not found. Install Docker Desktop first.
pause
exit /b 1
)
docker info >nul 2>nul
if errorlevel 1 (
echo [NOTICE] Docker is not running. Start Docker Desktop manually, then run this script again.
pause
exit /b 1
)
docker compose version >nul 2>nul
if errorlevel 1 (
echo [ERROR] The docker compose command is unavailable. Check your Docker Desktop installation.
pause
exit /b 1
)
where go >nul 2>nul
if errorlevel 1 (
echo [ERROR] Go was not found. Install Go and add it to PATH first.
pause
exit /b 1
)
if not exist "API\.env" (
echo [ERROR] API\.env is missing. The API cannot start.
pause
exit /b 1
)
echo [1/3] Releasing port 8123...
for /f "tokens=5" %%P in ('netstat -ano ^| findstr /R /C:":8123 .*LISTENING"') do (
taskkill /F /PID %%P >nul 2>nul
)
echo [2/3] Checking and starting PostgreSQL and Redis containers...
docker compose -f "docker-compose.yml" up -d --wait --wait-timeout 60
if errorlevel 1 (
echo [ERROR] PostgreSQL or Redis failed to start. Check the Docker output above.
pause
exit /b 1
)
echo [3/3] Starting the API. Press Ctrl+C to stop it.
pushd "API"
go run ./cmd/api
set "API_EXIT_CODE=%ERRORLEVEL%"
popd
if not "%API_EXIT_CODE%"=="0" (
echo [ERROR] The API exited with code %API_EXIT_CODE%.
pause
)
exit /b %API_EXIT_CODE%