# Momo Pro System - Docker 部署指南 ## 方案一:本機測試 Docker 部署 ### 1. 確認環境 ```bash # 確認 Docker 已安裝 docker --version docker-compose --version ``` ### 2. 建立並啟動容器 ```bash # 建立映像並啟動服務 docker-compose up -d # 查看日誌 docker-compose logs -f # 查看容器狀態 docker-compose ps ``` ### 3. 測試訪問 瀏覽器開啟:http://localhost ### 4. 停止服務 ```bash # 停止容器 docker-compose down # 停止並刪除 volumes docker-compose down -v ``` --- ## 方案二:部署到 GCP Cloud Run(推薦) **優點:** - 完全託管,自動擴展 - 按使用付費(沒有流量時不收費) - 自動 HTTPS - 不需要管理 VM ### 1. 設定 GCP 專案 ```bash # 設定專案 ID export PROJECT_ID="your-project-id" gcloud config set project $PROJECT_ID # 啟用必要的 API gcloud services enable \ run.googleapis.com \ cloudbuild.googleapis.com \ artifactregistry.googleapis.com ``` ### 2. 建立 Artifact Registry ```bash # 建立 Docker repository gcloud artifacts repositories create momo-repo \ --repository-format=docker \ --location=asia-east1 \ --description="Momo Pro System Docker Repository" ``` ### 3. 建立並推送 Docker 映像 ```bash # 設定映像名稱 export IMAGE_NAME="asia-east1-docker.pkg.dev/$PROJECT_ID/momo-repo/momo-app" # 建立映像 docker build -t $IMAGE_NAME . # 推送到 Artifact Registry docker push $IMAGE_NAME ``` ### 4. 部署到 Cloud Run ```bash # 部署服務 gcloud run deploy momo-pro-system \ --image=$IMAGE_NAME \ --platform=managed \ --region=asia-east1 \ --allow-unauthenticated \ --port=5000 \ --memory=2Gi \ --cpu=2 \ --min-instances=1 \ --max-instances=10 \ --timeout=300 \ --set-env-vars="FLASK_ENV=production" \ --set-secrets="DATABASE_URL=momo-db-url:latest" ``` ### 5. 設定環境變數和 Secrets ```bash # 建立 secret(例如:EMAIL_PASSWORD) echo -n "your-password" | gcloud secrets create email-password --data-file=- # 更新 Cloud Run 服務使用 secret gcloud run services update momo-pro-system \ --region=asia-east1 \ --set-secrets=EMAIL_PASSWORD=email-password:latest ``` ### 6. 獲取服務 URL ```bash gcloud run services describe momo-pro-system \ --region=asia-east1 \ --format='value(status.url)' ``` --- ## 方案三:部署到 GCP Compute Engine (VM) ### 1. 建立 VM ```bash # 建立具有 Docker 的 VM gcloud compute instances create momo-server \ --zone=asia-east1-a \ --machine-type=e2-medium \ --image-family=cos-stable \ --image-project=cos-cloud \ --boot-disk-size=50GB \ --tags=http-server,https-server ``` ### 2. 設定防火牆規則 ```bash # 允許 HTTP 流量 gcloud compute firewall-rules create allow-http \ --allow=tcp:80 \ --target-tags=http-server # 允許 HTTPS 流量 gcloud compute firewall-rules create allow-https \ --allow=tcp:443 \ --target-tags=https-server ``` ### 3. 上傳程式碼到 VM ```bash # 上傳整個專案 gcloud compute scp --recurse . momo-server:~/momo_pro_system \ --zone=asia-east1-a ``` ### 4. 連接到 VM 並啟動服務 ```bash # SSH 到 VM gcloud compute ssh momo-server --zone=asia-east1-a # 在 VM 上執行 cd ~/momo_pro_system # 啟動服務 docker-compose up -d # 查看日誌 docker-compose logs -f ``` ### 5. 設定自動啟動 ```bash # 建立 systemd service sudo tee /etc/systemd/system/momo-docker.service > /dev/null <