mcpField
Z
zeabur-template-deploy

zeabur-template-deploy

github.com/zeaburクラウド・DevOps39128 回インストール7 週間前に更新
リポジトリ

zeabur-template-deploy について

Zeabur CLI でマーケットプレイスのテンプレートやカスタムテンプレートファイルをプロジェクトにデプロイするスキルです。非対話型コマンド、テンプレート変数、カスタム YAML デプロイの制限を説明します。

主な機能

  1. 01マーケットプレイスのテンプレート検索
  2. 02テンプレートコードでデプロイ
  3. 03カスタム YAML ファイルのデプロイ
  4. 04テンプレート変数の指定
  5. 05非対話型 CLI の使用
  6. 06デプロイ時の制限事項の説明

活用シーン

  1. 01マーケットプレイスのデータベースサービスをデプロイ
  2. 02カスタムテンプレートからサービスを起動
  3. 03必須変数を指定してデプロイを自動化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/zeabur/agent-skills --skill zeabur-template-deploy

インストール後、Claude Code で/zeabur-template-deployを入力して読み込まれたか確認します。

詳細

Zeabur テンプレートのデプロイ

Zeabur CLI の実行には、必ず npx zeabur@latest を使用してください。 zeabur を直接実行したり、ほかの方法でインストールしたりしないでください。npx が利用できない場合は、先に Node.js をインストールしてください。

CLI を使って、Zeabur のテンプレートやマーケットプレイスの事前構築済みサービスをデプロイします。CLI の自動化では、必ず非対話モード(-i=false)を使用してください。

まだプロジェクトがない場合は、デプロイする前に zeabur-project-create スキルを使ってプロジェクトを作成してください。

事前構築済みサービス(MongoDB、PostgreSQL、Redis など)のデプロイ

Zeabur テンプレートのマーケットプレイスで利用できる一般的なサービスの場合、カスタムテンプレート YAML ファイルは作成しないでください。テンプレートコードを検索し、-c を使って直接デプロイしてください。

# 1. Search for the template by keyword
npx zeabur@latest template search mongodb -i=false --json

# 2. Deploy by template code (from the "Code" field in search results)
npx zeabur@latest template deploy -i=false \
  -c <TEMPLATE_CODE> \
  --project-id <project-id>
例:MongoDB のデプロイ
# Search returns code "KXL04P" for MongoDB
npx zeabur@latest template search mongodb -i=false --json

# Deploy directly by code
npx zeabur@latest template deploy -i=false \
  -c KXL04P \
  --project-id abc123

応用:デプロイ前に取得してカスタマイズする

デプロイ前にテンプレート YAML を変更する必要がある場合(環境変数の調整、イメージタグの変更、サービスの追加など)は、まず template get --raw で取得して編集し、その後 -f を使ってデプロイしてください。

# 1. Fetch the raw YAML
npx zeabur@latest template get -c KXL04P --raw > template.yaml

# 2. Edit template.yaml as needed

# 3. Deploy the customized template
npx zeabur@latest template deploy -i=false \
  -f template.yaml \
  --project-id <project-id>

カスタムテンプレートのデプロイ

完全なカスタムテンプレートや複数サービスのテンプレートには、テンプレート YAML ファイルを使用してください。

npx zeabur@latest template deploy -i=false \
  -f template.yaml \
  --project-id <project-id> \
  --var KEY1=value1 \
  --var KEY2=value2

フラグ

フラグ説明
-f, --fileテンプレートファイル(ローカルパスまたは URL)
-c, --codeテンプレートコード(マーケットプレイスのテンプレートを直接デプロイします。-f とは併用できません)
--project-idデプロイ先のプロジェクト ID
--varテンプレート変数(繰り返し指定できます。例:--var KEY=value)
--skip-validationテンプレートの検証をスキップします
-i=false非対話モード(必ず使用してください)

非対話モード

-i=false を使用する場合、必須のテンプレート変数はすべて --var フラグで指定する必要があります。

変数が不足している場合、CLI に役立つエラーメッセージが表示されます。

Error: missing required variables in non-interactive mode:
  --var PUBLIC_DOMAIN=<value>  (Enter your domain prefix)
  --var DB_NAME=<value>  (Database name)

例

変数を指定してデプロイする
npx zeabur@latest template deploy -i=false \
  -f https://example.com/template.yaml \
  --project-id abc123 \
  --var PUBLIC_DOMAIN=myapp \
  --var [email protected]
ローカルファイルをデプロイする
npx zeabur@latest template deploy -i=false \
  -f zeabur-template-myapp.yaml \
  --project-id abc123 \
  --var PUBLIC_DOMAIN=myapp

必須変数を確認する

テンプレート変数は、YAML の spec.variables セクションで定義されています。

spec:
  variables:
    - key: PUBLIC_DOMAIN
      type: DOMAIN
      name: Domain
      description: Enter your domain prefix
    - key: DB_NAME
      type: STRING
      name: Database Name
      description: Database name

テンプレート YAML ファイルの作成や編集には、zeabur-template スキルを使用してください。

既知の制限事項

カスタム PREBUILT テンプレート YAML:内部 DNS に登録されない場合があります

カスタムテンプレート YAML ファイル(-f template.yaml)でデプロイされた template: PREBUILT のサービスは、Zeabur の内部 DNS(*.zeabur.internal)に登録されない場合があります。そのため、同じプロジェクト内のほかのサービスからホスト名で接続できないことがあります。詳しくは zeabur/cli#204 を参照してください。

回避策:データベースサービス(PostgreSQL、MySQL、Redis)には、カスタム YAML ファイルの代わりにマーケットプレイスのテンプレートコード(-c <CODE>)を使用してください。マーケットプレイスのテンプレートは、内部 DNS に正しく登録されます。

# RECOMMENDED — deploy via marketplace code (has internal DNS)
npx zeabur@latest template search postgresql -i=false --json
npx zeabur@latest template deploy -i=false -c <CODE> --project-id <id>

# NOT RECOMMENDED — custom YAML may lack internal DNS
npx zeabur@latest template deploy -i=false -f my-pg.yaml --project-id <id>
カスタムテンプレート YAML のスキーマ:spec のネスト

テンプレート YAML では、spec.services[].source ではなく spec.services[].spec.source が必要です。

# CORRECT
spec:
  services:
    - name: my-service
      template: PREBUILT
      spec:                    # <-- required nesting
        source:
          image: postgres:17

# WRONG — will fail with "missing property 'spec'"
spec:
  services:
    - name: my-service
      template: PREBUILT
      source:                  # <-- missing spec wrapper
        image: postgres:17

よくある問題

問題解決策
対話プロンプトが停止する--project-id フラグと --var フラグを指定し、必ず -i=false を使用してください
変数不足のエラー必須の --var フラグをすべて追加してください
${REF} を含む変数リテラル値を使うか、デプロイ後にダッシュボードで設定してください
DOMAIN 型の検証ドメインの利用可能性は自動的に確認されます
missing property 'spec'source/ports/env を spec: の下に配置してください(二重にネストします)
ほかのサービスから DB に接続できないデータベースにはカスタム YAML(-f)ではなく、マーケットプレイスのコード(-c)を使用してください

コメント