Spaces:
Sleeping
Sleeping
# 從 local_config.json 讀取配置 | |
PROJECT_ID := $(shell jq -r '.PROJECT_ID // "ai-square-463013"' local_config.json) | |
SERVICE_NAME := $(shell jq -r '.SERVICE_NAME // "vaitor2"' local_config.json) | |
# 檢查必要的環境變數 | |
check-config: | |
@test -f local_config.json || (echo "錯誤:需要 local_config.json 文件" && exit 1) | |
# 專案相關變數 | |
REGION := asia-east1 | |
IMAGE_NAME := gcr.io/$(PROJECT_ID)/$(SERVICE_NAME) | |
# 確保有登入 gcloud | |
auth: check-config | |
gcloud auth login | |
gcloud config set project $(PROJECT_ID) | |
gcloud auth configure-docker | |
# 上傳 secrets 到 Secret Manager | |
secrets: check-config | |
gcloud services enable secretmanager.googleapis.com | |
./upload_secrets.sh | |
# 建立並推送 Docker image | |
docker: check-config | |
docker buildx build --platform linux/amd64 -t $(IMAGE_NAME) . --push | |
# 部署到 Cloud Run | |
deploy: check-config | |
gcloud run deploy $(SERVICE_NAME) \ | |
--image $(IMAGE_NAME) \ | |
--platform managed \ | |
--region $(REGION) \ | |
--allow-unauthenticated \ | |
--memory 2Gi \ | |
--cpu 2 \ | |
--port=8080 \ | |
--set-secrets="\ | |
PASSWORD=$(SERVICE_NAME)-PASSWORD:latest,\ | |
OPEN_AI_KEY=$(SERVICE_NAME)-OPEN_AI_KEY:latest,\ | |
OPEN_AI_ASSISTANT_ID_GPT4_BOT1=$(SERVICE_NAME)-OPEN_AI_ASSISTANT_ID_GPT4_BOT1:latest,\ | |
OPEN_AI_ASSISTANT_ID_GPT3_BOT1=$(SERVICE_NAME)-OPEN_AI_ASSISTANT_ID_GPT3_BOT1:latest,\ | |
OPEN_AI_MODERATION_BOT1=$(SERVICE_NAME)-OPEN_AI_MODERATION_BOT1:latest,\ | |
GROQ_API_KEY=$(SERVICE_NAME)-GROQ_API_KEY:latest,\ | |
JUTOR_CHAT_KEY=$(SERVICE_NAME)-JUTOR_CHAT_KEY:latest,\ | |
PERPLEXITY_API_KEY=$(SERVICE_NAME)-PERPLEXITY_API_KEY:latest,\ | |
GOOGLE_APPLICATION_CREDENTIALS_JSON=$(SERVICE_NAME)-GOOGLE_APPLICATION_CREDENTIALS_JSON:latest,\ | |
PROXY_USERNAME=$(SERVICE_NAME)-PROXY_USERNAME:latest,\ | |
PROXY_PASSWORD=$(SERVICE_NAME)-PROXY_PASSWORD:latest" | |
# 一次執行所有步驟 | |
all: auth secrets docker deploy | |
# 只更新 Docker image 和部署(不處理 secrets) | |
update: docker deploy | |
# 顯示說明 | |
help: | |
@echo "可用的指令:" | |
@echo " make auth - 登入 Google Cloud" | |
@echo " make secrets - 上傳 secrets 到 Secret Manager" | |
@echo " make docker - 建立並推送 Docker image" | |
@echo " make deploy - 部署到 Cloud Run" | |
@echo " make all - 執行所有步驟(auth + secrets + docker + deploy)" | |
@echo " make update - 只更新 Docker image 和部署" | |
@echo "" | |
@echo "注意:請確保 local_config.json 中有以下設定:" | |
@echo " PROJECT_ID: \"$(PROJECT_ID)\"" | |
@echo " SERVICE_NAME: \"$(SERVICE_NAME)\"" |