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

93
deploy.sh Normal file
View File

@@ -0,0 +1,93 @@
#!/bin/bash
# ===========================================
# TODO管理系統 - 生產環境部署腳本 (Linux/Mac)
# ===========================================
echo ""
echo "========================================"
echo "TODO管理系統 - 生產環境部署"
echo "========================================"
echo ""
# 檢查Docker是否運行
echo "[INFO] 檢查Docker狀態..."
if ! docker info >/dev/null 2>&1; then
echo "[ERROR] Docker未運行請啟動Docker後再執行此腳本"
exit 1
fi
echo "[SUCCESS] Docker運行正常"
# 停止現有容器
echo ""
echo "[INFO] 停止現有容器..."
docker stop todo-backend-prod todo-frontend-prod 2>/dev/null || true
docker rm todo-backend-prod todo-frontend-prod 2>/dev/null || true
# 建置Docker鏡像
echo ""
echo "[INFO] 建置Docker鏡像..."
echo "[INFO] 建置後端鏡像..."
if ! docker build -t todolist-backend:latest ./backend; then
echo "[ERROR] 後端鏡像建置失敗"
exit 1
fi
echo "[SUCCESS] 後端鏡像建置完成"
echo "[INFO] 建置前端鏡像..."
if ! docker build -t todo-frontend:latest --build-arg NEXT_PUBLIC_API_URL=http://localhost:12011 ./frontend; then
echo "[ERROR] 前端鏡像建置失敗"
exit 1
fi
echo "[SUCCESS] 前端鏡像建置完成"
# 啟動服務
echo ""
echo "[INFO] 啟動生產環境服務..."
if ! docker-compose -f docker-compose.prod.yml up -d; then
echo "[ERROR] 服務啟動失敗"
exit 1
fi
# 等待服務啟動
echo "[INFO] 等待服務啟動..."
sleep 10
# 檢查服務狀態
echo ""
echo "[INFO] 檢查服務狀態..."
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep todo-
# 健康檢查
echo ""
echo "[INFO] 執行健康檢查..."
echo "[INFO] 檢查後端API..."
if curl -s -f http://localhost:12011/api/health >/dev/null 2>&1; then
echo "[SUCCESS] 後端API響應正常"
else
echo "[WARNING] 後端API可能尚未完全啟動請稍後手動檢查"
fi
echo "[INFO] 檢查前端..."
if curl -s -f http://localhost:12012 >/dev/null 2>&1; then
echo "[SUCCESS] 前端響應正常"
else
echo "[WARNING] 前端可能尚未完全啟動,請稍後手動檢查"
fi
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 ""