Brickverse
入門課程進階課程課程包班戰鬥營線下小聚文章
首頁入門課程進階課程課程包班戰鬥營線下小聚文章
品牌故事
合作信箱:[email protected]
官方 LINE學生系統
© 2026 Brickverse. All rights reserved.

用 Claude Code 的 /ship 指令一鍵部署到 Zeabur

2026 年 2 月 10 日5 分鐘
Claude CodeZeabur部署CLAUDE.mdSkill
  • 整體架構
  • 步驟一:在 CLAUDE.md 設定 Zeabur 部署資訊
  • Zeabur 部署設定
  • 步驟二:建立 /ship 自訂 Skill
  • 步驟一:準備變更
  • 步驟二:部署
  • 情境 A:有 Zeabur 設定
  • 情境 B:沒有 Zeabur 設定
  • 步驟三:實際使用
  • 踩坑紀錄:Zeabur CLI 的 ID 前綴問題
  • 小結
  • 延伸閱讀

TL;DR
學會用 Claude Code 的自訂 Skill 打造 /ship 一鍵部署指令——結合 CLAUDE.md 設定檔和 Zeabur CLI,30 秒內完成 commit + 部署,不再手動敲 git 指令。

這篇文章適合:

  • 用 Claude Code 開發,每次部署都要手動跑一堆指令覺得煩的人
  • 想學 Claude Code 自訂 Skill(Agent Skill)實戰用法的開發者
  • 用 Zeabur 部署專案,想把流程自動化的人

在開發過程中,「改完程式碼 → commit → 部署」是最常見的重複操作。如果每次都要手動執行 git 指令、再到雲端平台觸發部署,不僅耗時,還容易出錯。

這篇文章分享我如何透過 Claude Code 的自訂 Skill功能,搭配專案的 CLAUDE.md 設定檔,打造一個 /ship 指令——只需一句話,就能自動完成 commit 並部署到 Zeabur。

整體架構

整個流程由兩個部分組成:

  1. CLAUDE.md:在專案根目錄定義 Zeabur 的部署資訊(Project ID、Service ID)
  2. /ship Skill:一個自訂的 Claude Code 指令,讀取設定後自動執行 commit + 部署
專案根目錄/
├── CLAUDE.md          ← 部署設定(Zeabur ID)
├── src/
└── ...

~/.claude/skills/
└── ship/
    └── SKILL.md       ← /ship 指令定義

步驟一:在 CLAUDE.md 設定 Zeabur 部署資訊

在專案根目錄的 CLAUDE.md 中,加入 Zeabur 的部署設定:

## Zeabur 部署設定

| 欄位 | 值 |
|------|---|
| Project | `698abc25405b9ae67f723ec1` (HRWorkshop) |
| Service | `698ac01a405b9ae67f7242d0` (offline-workshop) |

> **注意**:Zeabur CLI 只接受純 ID,不需要加 `project-` 或 `service-` 前綴。

部署指令:
\`\`\`bash
zeabur deploy --service-id 698ac01a405b9ae67f7242d0 -i=false
\`\`\`

這裡的重點是:用表格同時保留人類可讀的名稱和機器需要的 ID,並用註解提醒前綴的注意事項。

步驟二:建立 /ship 自訂 Skill

在 ~/.claude/skills/ship/SKILL.md 中定義指令邏輯:

---
model: haiku
---

請執行以下步驟:

## 步驟一:準備變更

1. 執行 `git status` 確認有哪些變更
2. 如果沒有任何變更,製造一個微小的變更來觸發部署
3. 用 `git add .` 加入所有變更
4. 自動產生簡潔的 commit 訊息

## 步驟二:部署

讀取專案的 CLAUDE.md,檢查是否有定義 Zeabur 部署設定。

### 情境 A:有 Zeabur 設定
1. 先 commit 變更
2. 執行 `zeabur deploy --service-id <SERVICE_ID> -i=false`
3. 確認部署成功

### 情境 B:沒有 Zeabur 設定
1. 用 `git push origin main` 推送到 GitHub
2. 確認推送成功

這個設計有幾個巧思:

  • 使用 model: haiku:部署操作不需要太強的推理能力,用輕量模型即可,速度更快、成本更低
  • 自動偵測部署目標:根據 CLAUDE.md 有無 Zeabur 設定,自動決定走 Zeabur 還是 GitHub 部署
  • 無變更也能部署:如果只是想重新部署(例如環境變數改了),會自動製造微小變更觸發流程

步驟三:實際使用

在終端機輸入 /ship,Claude Code 就會:

  1. 檢查 git 狀態,確認有哪些變更
  2. 自動加入所有變更到暫存區
  3. 根據變更內容生成 commit 訊息
  4. 讀取 CLAUDE.md 取得 Zeabur Service ID
  5. 執行 zeabur deploy 完成部署

整個過程大約 30 秒內完成,完全不需要手動操作。

踩坑紀錄:Zeabur CLI 的 ID 前綴問題

這個流程最大的坑是 Zeabur CLI 的 ID 格式。

在 Zeabur Dashboard 的 URL 中,ID 會帶有前綴:

https://zeabur.com/projects/project-698abc25405b9ae67f723ec1/services/service-698ac01a405b9ae67f7242d0

但在 CLI 中,不需要 project- 或 service- 前綴:

# 正確
zeabur deploy --service-id 698ac01a405b9ae67f7242d0 -i=false

# 錯誤(會回傳 SERVICE_NOT_FOUND)
zeabur deploy --service-id service-698ac01a405b9ae67f7242d0 -i=false

另外,非互動模式的參數是 -i=false,不是 --interactive=false。

這些細節如果沒踩過一次,很難從文件中直接發現。建議在 CLAUDE.md 中明確標註,避免未來重複踩坑。

小結

透過 CLAUDE.md + 自訂 Skill 的組合,我們實現了:

  • 一句指令完成部署:不再需要記住 git 指令和 Zeabur CLI 參數
  • 專案級設定:每個專案可以有自己的部署目標,設定跟著程式碼走
  • 智慧判斷:自動根據設定決定部署到 Zeabur 或 GitHub
  • 低成本執行:用 Haiku 模型處理機械性操作,節省 token

這個模式不只適用於 Zeabur,任何需要「讀取設定 → 執行部署」的場景都可以用類似的方式實現。

延伸閱讀

  • 在 Claude Code 中設定 Zeabur MCP:從安裝到踩坑完整紀錄
  • Agent Skill 機制比較:Claude Code vs Cursor vs Antigravity
  • 讓你的 Gemini Canvas 設計被更多人看見:雲端部署教學
Willy / 柏燁

Willy / 柏燁.Brickverse 創辦人

擁有超過 6 年程式教學經驗,專注於 Vibe Coding 教學,幫助非工程背景的初學者透過 AI 輔助開發掌握實戰技能。 致力於降低程式開發的門檻——讓每個人都能用自己的母語描述需求,把想法變成真正能用的產品。

最後更新:2026年2月14日

  • 整體架構
  • 步驟一:在 CLAUDE.md 設定 Zeabur 部署資訊
  • Zeabur 部署設定
  • 步驟二:建立 /ship 自訂 Skill
  • 步驟一:準備變更
  • 步驟二:部署
  • 情境 A:有 Zeabur 設定
  • 情境 B:沒有 Zeabur 設定
  • 步驟三:實際使用
  • 踩坑紀錄:Zeabur CLI 的 ID 前綴問題
  • 小結
  • 延伸閱讀