Shipyard
ทางการCLI ของ Shipyard มี MCP server สำหรับให้เอเจนต์จัดการสภาพแวดล้อม Shipyard ได้โดยตรง เช่น ดึง logs เปรียบเทียบ branches รัน tests และหยุด/เริ่มสภาพแวดล้อม
คุณทำอะไรได้บ้างด้วย Shipyard MCP?
- List environments with filters — ขอให้แสดงสภาพแวดล้อมที่กรองตาม repo, branch หรือ pull request ผ่าน
shipyard get environments - Inspect environment details — ดึงข้อมูลเต็มรูปแบบสำหรับ UUID ของสภาพแวดล้อมที่ระบุ รวมถึง bypass token สำหรับการเขียนสคริปต์
- Manage environment lifecycle — หยุด, รีสตาร์ท, ยกเลิกการ build, สร้างใหม่ หรือกู้คืนสภาพแวดล้อมที่ถูกลบด้วย UUID
- Access services and logs — รับพอร์ตที่เปิดเผย, สตรีม logs, รันคำสั่ง exec หรือ port-forward เข้าไปยัง service ของสภาพแวดล้อมที่กำลังทำงาน
- Handle volumes and snapshots — แสดงรายการ, รีเซ็ต, สร้าง snapshot, โหลด หรืออัปโหลดไฟล์ไปยัง volumes ภายในสภาพแวดล้อม
- Deploy detached environments — โคลนแอปพลิเคชัน build ด้วยการแทนที่ branch ที่กำหนดเองและนโยบายการ rebuild
เอกสาร
Shipyard CLI
เครื่องมือสำหรับจัดการ Ephemeral Environments บนแพลตฟอร์ม Shipyard
ใช้ผู้ช่วย AI อยู่หรือไม่? CLI มาพร้อมกับ MCP server: ดู ใช้ Shipyard จากผู้ช่วย AI
การติดตั้ง
-
Linux และ macOS
curl https://www.shipyard.sh/install.sh | bash -
Windows ไปที่ หน้า releases และดาวน์โหลดไฟล์ executable สำหรับ Windows
-
Homebrew
brew tap shipyard/tap brew install shipyard
การเข้าสู่ระบบ
รัน shipyard login เพื่อเริ่มต้นใช้งาน CLI ซึ่งจะแจ้งให้คุณเข้าสู่ระบบ Shipyard ในเบราว์เซอร์ จากนั้น CLI จะ
บันทึก API token ของคุณไว้ใน config ในเครื่อง คุณพร้อมที่จะเริ่มรันคำสั่งได้แล้ว
หรือตั้งค่า Token ด้วยตนเอง
ตั้งค่า Shipyard API token ของคุณเป็นค่าของตัวแปรสภาพแวดล้อม SHIPYARD_API_TOKEN
คุณสามารถรับได้โดยไปที่ หน้าข้อมูลโปรไฟล์ของคุณ
คุณสามารถติดต่อเราได้ที่ support@shipyard.build หากคุณต้องการเปิดใช้งานการเข้าถึง API สำหรับองค์กรของคุณ หากคุณมีคำถามอื่น ๆ โปรดเข้าร่วม ชุมชน Slack ของเรา
shipyard set token
หรือคุณสามารถใช้ไฟล์ config ที่เก็บไว้ใน $HOME/.shipyard/config.yaml โดยค่าเริ่มต้น
เมื่อคุณรัน CLI เป็นครั้งแรก มันจะสร้าง config ว่างเริ่มต้นที่คุณสามารถแก้ไขได้
คุณยังสามารถระบุเส้นทาง config ที่ไม่ใช่ค่าเริ่มต้นได้ด้วยแฟล็ก --config {path} ที่เพิ่มในคำสั่งใดก็ได้
เพิ่มค่าการกำหนดค่าใด ๆ ใน config ของคุณและตรวจสอบให้แน่ใจว่าไฟล์เป็นไปตามไวยากรณ์ YAML ตัวอย่างเช่น:
api_token: <your-token>
org: <your-non-default-org>
ค่าของตัวแปรสภาพแวดล้อมของคุณจะแทนที่ค่าที่เกี่ยวข้องใน config
การใช้งานพื้นฐาน
รับองค์กรทั้งหมดที่คุณเป็นสมาชิก
shipyard get orgs
ตั้งค่าองค์กรเริ่มต้นระดับโลก
shipyard set org {org-name}
รับองค์กรที่กำหนดค่าไว้ในปัจจุบัน
shipyard get org
แสดงรายการสภาพแวดล้อมทั้งหมด
shipyard get environments
แฟล็กที่ใช้ได้:
| ชื่อ | คำอธิบาย | ประเภท | ค่าเริ่มต้น |
|---|---|---|---|
| branch | กรองตามชื่อ branch | string | |
| deleted | คืนค่าสภาพแวดล้อมที่ถูกลบ | boolean | false |
| json | พิมพ์ผลลัพธ์ JSON ที่สมบูรณ์ | boolean | false |
| name | กรองตามชื่อของแอปพลิเคชัน | string | |
| org-name | กรองตามชื่อองค์กร หากคุณเป็นส่วนหนึ่งของหลายองค์กร | string | องค์กรเริ่มต้นของคุณ |
| page | หมายเลขหน้าที่ร้องขอ | int | 1 |
| page-size | ขนาดหน้าที่ร้องขอ | int | 20 |
| pull-request-number | กรองตามหมายเลข pull request | string | |
| repo-name | กรองตามชื่อ repo | string |
ตัวอย่าง:
- แสดงรายการสภาพแวดล้อมทั้งหมดที่รัน repo
flask-backendบน branchmain:
shipyard get environments --repo-name flask-backend --branch main
- แสดงรายการสภาพแวดล้อมที่ถูกลบทั้งหมด:
shipyard get environments --deleted
รับรายละเอียดสำหรับสภาพแวดล้อมเฉพาะโดยใช้ UUID
shipyard get environment {environment_uuid}
แฟล็กที่ใช้ได้:
| ชื่อ | คำอธิบาย | ประเภท | ค่าเริ่มต้น |
|---|---|---|---|
| json | พิมพ์ผลลัพธ์ JSON ที่สมบูรณ์ | boolean | false |
| org | องค์กรของสภาพแวดล้อม หากคุณเป็นส่วนหนึ่งของหลายองค์กร | string | องค์กรเริ่มต้นของคุณ |
| bypass-token | พิมพ์เฉพาะ bypass token ของสภาพแวดล้อม สำหรับสคริปต์ | boolean | false |
--bypass-token ให้สคริปต์ใช้ token โดยไม่ต้องให้ใครพิมพ์หรือพิมพ์ออกมา:
SHIPYARD_TOKEN=$(shipyard get environment {environment_uuid} --bypass-token) && \
export SHIPYARD_TOKEN && curl -b "shipyard_token=$SHIPYARD_TOKEN" https://your-environment-url/
หยุดสภาพแวดล้อมที่กำลังรันอยู่
shipyard stop environment {environment_uuid}
รีสตาร์ทสภาพแวดล้อมที่หยุดอยู่
shipyard restart environment {environment_uuid}
ยกเลิก build ที่กำลังดำเนินการสำหรับสภาพแวดล้อม
shipyard cancel environment {environment_uuid}
สร้างสภาพแวดล้อมใหม่
shipyard rebuild environment {environment_uuid}
กู้คืนสภาพแวดล้อมที่ถูกลบ
shipyard revive environment {environment_uuid}
ปรับใช้สภาพแวดล้อมแบบ detached
สร้างสภาพแวดล้อมใหม่แบบ "detached" (อิสระ) โดยการโคลน build ของแอปพลิเคชันที่มีอยู่ ต้องเปิดใช้งานสภาพแวดล้อมแบบ detached สำหรับองค์กรของคุณ
shipyard detached deploy {application_build_uuid} --name my-detached-env
แทนที่ branch ต่อ repo และควบคุมว่าสภาพแวดล้อมแบบ detached จะสร้างใหม่เมื่อมีการ commit ใหม่หรือไม่:
# Override the branch for a repo, and never rebuild on new commits
shipyard detached deploy {application_build_uuid} --name my-detached-env --branch web=feature-x --build-on-commit never
# Per-repo build-on-commit settings (always | inherit | never)
shipyard detached deploy {application_build_uuid} --build-on-commit-for web=always --build-on-commit-for api=never
รับบริการและพอร์ตที่เปิดเผยทั้งหมดสำหรับสภาพแวดล้อม
shipyard get services --env {environment_uuid}
Exec เข้าไปในบริการของสภาพแวดล้อมที่กำลังรันอยู่
รันคำสั่งใด ๆ พร้อมอาร์กิวเมนต์และแฟล็กใด ๆ ในบริการที่กำหนดสำหรับสภาพแวดล้อมที่ กำลังรัน ผ่านอาร์กิวเมนต์คำสั่งใด ๆ หลังเครื่องหมายทับคู่
shipyard exec --env {environment_uuid} --service {service_name} -- bash
ส่งต่อพอร์ตของบริการในสภาพแวดล้อมที่กำลังรันอยู่
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
รับบันทึกสำหรับบริการของสภาพแวดล้อมที่กำลังรันอยู่
shipyard logs --env {environment_uuid} --service {service_name}
เยี่ยมชมสภาพแวดล้อม
shipyard visit {environment_uuid}
แฟล็กที่ใช้ได้:
| ชื่อ | คำอธิบาย | ประเภท | ค่าเริ่มต้น |
|---|---|---|---|
| follow | ติดตามผลลัพธ์ของบันทึก | boolean | false |
| tail | จำนวนบรรทัดบันทึกล่าสุดที่จะแสดง | int | 3000 |
ทำงานกับ volumes
แสดงรายการ volumes ทั้งหมดในสภาพแวดล้อม
shipyard get volumes --env {environment_uuid}
แสดงรายการ volume snapshots ทั้งหมดในสภาพแวดล้อม
shipyard get snapshots --env {environment_uuid}
รีเซ็ต volume ในสภาพแวดล้อม
shipyard reset volume --env {environment_uuid}
สร้าง snapshot ในสภาพแวดล้อม
shipyard create snapshot --env {environment_uuid}
โหลด volume snapshot ในสภาพแวดล้อม
shipyard load snapshot --env {environment_uuid} --sequence-number {n}
อัปโหลดไฟล์ไปยัง volume ในสภาพแวดล้อม
shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}
เรียกใช้ REST API โดยตรง
shipyard api /api/v1/environment
shipyard api -X PUT /api/v1/environment/{environment_uuid}/env-vars --input body.json
เส้นทางต้องเริ่มต้นด้วย /api/v1 หรือ /api/v2; token และ org ของคุณจะถูกเพิ่มให้โดยอัตโนมัติ
bypass_token และข้อมูลรับรอง kubeconfig จะถูกปกปิดเว้นแต่คุณจะส่ง --include-secrets
เชื่อมต่อกับ telepresence
shipyard telepresence connect --env {environment_uuid}
จากนั้น คุณจะสามารถสื่อสารกับ pods ทั้งหมดใน namespace ได้โดยตรง คุณ อาจ ต้องใช้
hostname ของ namespace เพื่อสื่อสารกับบริการ ซึ่งคุณสามารถรับได้ผ่าน telepresence status ภายใต้ฟิลด์ Namespace ตัวอย่างเช่น เพื่อสื่อสารกับ redis คุณจะใช้ redis.shipyard-app-build-{uuid}
สร้าง executable จากโค้ด:
คุณสามารถสร้าง executable ได้โดยรันคำสั่งต่อไปนี้:
make
เพื่อรัน executable ใหม่นี้:
./shipyard
เปิดใช้งาน Autocompletion
Bash
สคริปต์นี้ขึ้นอยู่กับแพ็คเกจ bash-completion หากยังไม่ได้ติดตั้ง คุณสามารถติดตั้งได้ผ่านตัวจัดการแพ็คเกจของ OS ของคุณ
เพื่อโหลด completions ในเซสชันเชลล์ปัจจุบันของคุณ:
source <(shipyard completion bash)
เพื่อโหลด completions สำหรับทุกเซสชันใหม่ ให้รันคำสั่งต่อไปนี้หนึ่งครั้ง
บน Linux:
shipyard completion bash > /etc/bash_completion.d/shipyard
บน macOS:
shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard
Zsh
หาก shell completion ยังไม่ได้เปิดใช้งานในสภาพแวดล้อมของคุณ คุณจะต้องเปิดใช้งาน คุณสามารถรัน คำสั่งต่อไปนี้หนึ่งครั้ง:
echo "autoload -U compinit; compinit" >> ~/.zshrc
เพื่อโหลด completions ในเซสชันเชลล์ปัจจุบันของคุณ:
source <(shipyard completion zsh); compdef _shipyard shipyard
เพื่อโหลด completions สำหรับทุกเซสชันใหม่ ให้รันคำสั่งต่อไปนี้หนึ่งครั้ง
บน Linux:
shipyard completion zsh > "${fpath[1]}/_shipyard"
บน macOS:
shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard
คุณจะต้องเริ่มเชลล์ใหม่เพื่อให้การตั้งค่านี้มีผล
Fish
เพื่อโหลด completions ในเซสชันเชลล์ปัจจุบันของคุณ:
$ shipyard completion fish | source
เพื่อโหลด completions สำหรับทุกเซสชัน ให้รันหนึ่งครั้ง:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
เพื่อโหลด completions ในเซสชันเชลล์ปัจจุบันของคุณ:
shipyard completion powershell | Out-String | Invoke-Expression
เพื่อโหลด completions สำหรับทุกเซสชันใหม่ ให้รัน:
shipyard completion powershell > shipyard.ps1
และ source ไฟล์นี้จากโปรไฟล์ PowerShell ของคุณ
ใช้ Shipyard จากผู้ช่วย AI (MCP)
shipyard mcp serve รันเซิร์ฟเวอร์ Model Context Protocol เพื่อให้
ผู้ช่วยเช่น Claude Code, Claude Desktop, Cursor หรือ Codex สามารถแสดงรายการ ตรวจสอบ สร้างใหม่ และกำหนดค่า
สภาพแวดล้อมของคุณ อ่านบันทึกบริการ จัดการ volumes และตรวจสอบการเปลี่ยนแปลงที่ push กับสภาพแวดล้อมของมัน
เมื่อ CLI เข้าสู่ระบบแล้ว เพิ่มลงใน Claude Code:
claude mcp add shipyard -- shipyard mcp serve
จากนั้นถามสิ่งต่าง ๆ เช่น:
- "สภาพแวดล้อมใดกำลังรันอยู่สำหรับ repo
web?" - "แสดงบันทึกของบริการ
apiบนสภาพแวดล้อมของ branch ฉัน" - "ตั้งค่า
FEATURE_FLAGS=betaบนสภาพแวดล้อมนี้และรีสตาร์ทบริการworker" - "ฉันเพิ่ง push ตรวจสอบการเปลี่ยนแปลงกับสภาพแวดล้อมของมัน" (หรือ
/mcp__shipyard__verify)
ดู คู่มือ MCP สำหรับการตั้งค่าในไคลเอนต์อื่น ๆ การกำหนดค่า รายการเครื่องมือทั้งหมด
พรอมต์ verify และการแก้ไขปัญหา