到了第 21 天,我們的專案已經能在本地開發、測試、自動建構,甚至部署到 Vercel。
但在實務上,有時候我們需要更靈活的部署方式,例如:
這時候,就該把專案搬上 GCP(Google Cloud Platform),
而且我們會透過 Cursor,讓 AI 幫我們完成一整套部署自動化。
GCP 對於前端 + AI 應用開發者來說非常友好:
這代表:
你只要 Commit 一次,GCP 就能自動 Build、Deploy、上線。
Cursor 在這裡扮演「AI DevOps 助理」的角色。
你可以用自然語言告訴它:
幫我設定 GitHub Actions,自動部署到 GCP Cloud Run。
Cursor 會幫你:
.github/workflows/deploy.yml
# 使用 Node 官方映像
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --only=production
COPY . .
EXPOSE 8080
CMD ["npm", "start"]
💡 小提示:
如果你的專案是 Next.js,請在 package.json
中確保有:
"scripts": {
"start": "next start -p 8080"
}
synvize-app
)進入 GitHub 專案:
Settings → Secrets → Actions
新增以下環境變數:
名稱 | 說明 |
---|---|
GCP_PROJECT_ID |
你的 GCP 專案 ID |
GCP_SA_KEY |
服務帳戶金鑰 JSON(整份 JSON) |
GCP_REGION |
例如:asia-east1 |
.github/workflows/deploy.yml
name: Deploy to GCP Cloud Run
on:
push:
branches: [ "main" ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup gcloud CLI
uses: google-github-actions/setup-gcloud@v2
with:
project_id: ${{ secrets.GCP_PROJECT_ID }}
service_account_key: ${{ secrets.GCP_SA_KEY }}
- name: Build and push Docker image
run: |
gcloud builds submit --tag gcr.io/${{ secrets.GCP_PROJECT_ID }}/synvize-app
- name: Deploy to Cloud Run
run: |
gcloud run deploy synvize-app \
--image gcr.io/${{ secrets.GCP_PROJECT_ID }}/synvize-app \
--region ${{ secrets.GCP_REGION }} \
--allow-unauthenticated
你可以直接在 Cursor 下指令:
幫我建立 deploy.yml,部署到 GCP Cloud Run,服務名稱叫 synvize-app。
它會自動:
你甚至可以進一步指示:
幫我檢查 deploy.yml 有沒有漏掉 Cloud Run 區域設定。
Cursor 會檢查 YAML 並幫你補上。
當你 push 到 main
分支後,GitHub Actions 會自動執行。
如果成功,你會在 GCP Cloud Run 中看到一個公開網址,例如:
https://synvize-app-xxxxxx-uc.a.run.app
現在你的整個網站,就正式從 Cursor → GitHub → GCP 全自動上線!
今天,我們完成了 真正意義上的全自動部署。
你學會了:
通常我會在GCP上面加上DB 之類的
但真的都透過Cursor去做執行與部署
當然你可能要緊盯著他下指令
因為他會開一些權限(如果你要在本機端測試的話)