8th_fix docker

This commit is contained in:
beabigegg
2025-09-03 18:08:40 +08:00
parent 3b1bbcd2bc
commit a339b78788
13 changed files with 926 additions and 2 deletions

103
deploy.bat Normal file
View File

@@ -0,0 +1,103 @@
@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