Files
TODO_list_system/deploy.bat
2025-09-03 18:08:40 +08:00

103 lines
2.7 KiB
Batchfile
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@echo off
REM ===========================================
REM TODO管理系統 - 生產環境部署腳本
REM ===========================================
echo.
echo ========================================
echo TODO管理系統 - 生產環境部署
echo ========================================
echo.
REM 檢查Docker是否運行
echo [INFO] 檢查Docker狀態...
docker info >nul 2>&1
if %errorlevel% neq 0 (
echo [ERROR] Docker未運行請啟動Docker Desktop後再執行此腳本
pause
exit /b 1
)
echo [SUCCESS] Docker運行正常
REM 停止現有容器
echo.
echo [INFO] 停止現有容器...
docker stop todo-backend-prod todo-frontend-prod 2>nul
docker rm todo-backend-prod todo-frontend-prod 2>nul
REM 建置Docker鏡像
echo.
echo [INFO] 建置Docker鏡像...
echo [INFO] 建置後端鏡像...
docker build -t todolist-backend:latest ./backend
if %errorlevel% neq 0 (
echo [ERROR] 後端鏡像建置失敗
pause
exit /b 1
)
echo [SUCCESS] 後端鏡像建置完成
echo [INFO] 建置前端鏡像...
docker build -t todo-frontend:latest --build-arg NEXT_PUBLIC_API_URL=http://localhost:12011 ./frontend
if %errorlevel% neq 0 (
echo [ERROR] 前端鏡像建置失敗
pause
exit /b 1
)
echo [SUCCESS] 前端鏡像建置完成
REM 啟動服務
echo.
echo [INFO] 啟動生產環境服務...
docker-compose -f docker-compose.prod.yml up -d
if %errorlevel% neq 0 (
echo [ERROR] 服務啟動失敗
pause
exit /b 1
)
REM 等待服務啟動
echo [INFO] 等待服務啟動...
timeout /t 10 /nobreak >nul
REM 檢查服務狀態
echo.
echo [INFO] 檢查服務狀態...
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | findstr todo-
REM 健康檢查
echo.
echo [INFO] 執行健康檢查...
echo [INFO] 檢查後端API...
curl -s -w "%%{http_code}" -o nul http://localhost:12011/api/health >nul 2>&1
if %errorlevel% equ 0 (
echo [SUCCESS] 後端API響應正常
) else (
echo [WARNING] 後端API可能尚未完全啟動請稍後手動檢查
)
echo [INFO] 檢查前端...
curl -s -w "%%{http_code}" -o nul http://localhost:12012 >nul 2>&1
if %errorlevel% equ 0 (
echo [SUCCESS] 前端響應正常
) else (
echo [WARNING] 前端可能尚未完全啟動,請稍後手動檢查
)
echo.
echo ========================================
echo 部署完成!
echo ========================================
echo.
echo 服務地址:
echo 前端: http://localhost:12012
echo 後端API: http://localhost:12011
echo.
echo.
echo 管理指令:
echo 查看日誌: docker-compose -f docker-compose.prod.yml logs -f
echo 停止服務: docker-compose -f docker-compose.prod.yml down
echo 重啟服務: docker-compose -f docker-compose.prod.yml restart
echo.
pause