Shipyard

ทางการ

CLI ของ Shipyard มี MCP server สำหรับให้เอเจนต์จัดการสภาพแวดล้อม Shipyard ได้โดยตรง เช่น ดึง logs เปรียบเทียบ branches รัน tests และหยุด/เริ่มสภาพแวดล้อม

GitHub
13
ลองใช้ MCP นี้ผู้สนับสนุน

คุณทำอะไรได้บ้างด้วย 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กรองตามชื่อ branchstring
deletedคืนค่าสภาพแวดล้อมที่ถูกลบbooleanfalse
jsonพิมพ์ผลลัพธ์ JSON ที่สมบูรณ์booleanfalse
nameกรองตามชื่อของแอปพลิเคชันstring
org-nameกรองตามชื่อองค์กร หากคุณเป็นส่วนหนึ่งของหลายองค์กรstringองค์กรเริ่มต้นของคุณ
pageหมายเลขหน้าที่ร้องขอint1
page-sizeขนาดหน้าที่ร้องขอint20
pull-request-numberกรองตามหมายเลข pull requeststring
repo-nameกรองตามชื่อ repostring

ตัวอย่าง:

  • แสดงรายการสภาพแวดล้อมทั้งหมดที่รัน repo flask-backend บน branch main:
shipyard get environments --repo-name flask-backend --branch main
  • แสดงรายการสภาพแวดล้อมที่ถูกลบทั้งหมด:
shipyard get environments --deleted

รับรายละเอียดสำหรับสภาพแวดล้อมเฉพาะโดยใช้ UUID

shipyard get environment {environment_uuid}

แฟล็กที่ใช้ได้:

ชื่อคำอธิบายประเภทค่าเริ่มต้น
jsonพิมพ์ผลลัพธ์ JSON ที่สมบูรณ์booleanfalse
orgองค์กรของสภาพแวดล้อม หากคุณเป็นส่วนหนึ่งของหลายองค์กรstringองค์กรเริ่มต้นของคุณ
bypass-tokenพิมพ์เฉพาะ bypass token ของสภาพแวดล้อม สำหรับสคริปต์booleanfalse

--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ติดตามผลลัพธ์ของบันทึกbooleanfalse
tailจำนวนบรรทัดบันทึกล่าสุดที่จะแสดงint3000

ทำงานกับ 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 และการแก้ไขปัญหา