mcpField
S
service

service

github.com/railwayappクラウド・DevOps3381.6k 回インストール2 週間前に更新
リポジトリ

service について

Railway サービスを管理するスキルです。デプロイ状況の確認、サービス情報の更新やリンク変更に加え、API 経由で Docker イメージからサービスを作成できます。

主な機能

  1. 01サービス状態とデプロイ履歴の確認
  2. 02サービス名とアイコンの更新
  3. 03ディレクトリにリンクするサービスの変更
  4. 04GraphQL によるイメージサービスの作成

活用シーン

  1. 01デプロイの完了や進行状況の確認
  2. 02サービス名やアイコンの変更
  3. 03ディレクトリを別サービスにリンク
  4. 04Docker イメージからサービスを作成

インストール

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

$npx skills add https://github.com/railwayapp/railway-skills --skill service

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
environment-config.md
monorepo.md
railpack.md
variables.md
scripts/
railway-api.sh

詳細

サービス管理

ステータスの確認、プロパティの更新、高度なサービス作成を行います。

使用するタイミング

  • サービスのステータス、ヘルス、デプロイについて質問された場合
  • 「サービスはデプロイされていますか?」と質問された場合
  • サービス名の変更やサービスアイコンの変更を希望する場合
  • 別のサービスへのリンクを希望する場合
  • Docker イメージを新しいサービスとしてデプロイする場合(高度な操作)

注記: ローカルコードを使ってサービスを作成する場合(一般的なケース)は、プロジェクトのセットアップ、スキャフォールディング、サービスの作成をまとめて処理する new スキルを優先してください。

GitHub リポジトリをソースにする場合: new スキルで空のサービスを作成し、その後 environment スキルでステージング変更 API を使って source.repo を設定してください。

サービスを作成する

GraphQL API を使って新しいサービスを作成します。この操作に対応する CLI コマンドはありません。

コンテキストを取得する
railway status --json

以下を抽出します:

  • project.id - サービスの作成に使用します
  • environment.id - インスタンス設定のステージングに使用します
サービス作成ミューテーション
mutation serviceCreate($input: ServiceCreateInput!) {
  serviceCreate(input: $input) {
    id
    name
  }
}
ServiceCreateInput のフィールド
フィールド型説明
projectIdString!プロジェクト ID(必須)
nameStringサービス名(省略すると自動生成)
source.imageStringDocker イメージ(例:nginx:latest)
source.repoStringGitHub リポジトリ(例:user/repo)
branchStringリポジトリソースの Git ブランチ
environmentIdString設定した場合、フォークであればその環境にのみ作成
例:空のサービスを作成する
bash <<'SCRIPT'
scripts/railway-api.sh \
  'mutation createService($input: ServiceCreateInput!) {
    serviceCreate(input: $input) { id name }
  }' \
  '{"input": {"projectId": "PROJECT_ID"}}'
SCRIPT
例:イメージを指定してサービスを作成する
bash <<'SCRIPT'
scripts/railway-api.sh \
  'mutation createService($input: ServiceCreateInput!) {
    serviceCreate(input: $input) { id name }
  }' \
  '{"input": {"projectId": "PROJECT_ID", "name": "my-service", "source": {"image": "nginx:latest"}}}'
SCRIPT
GitHub リポジトリを接続する

source.repo を指定して serviceCreate を使用しないでください。代わりにステージング変更 API を使用してください。

手順:

  1. 空のサービスを作成します:serviceCreate(input: {projectId: "...", name: "my-service"})
  2. environment スキルを使って、ステージング変更 API 経由でソースを設定します
  3. 適用してデプロイを開始します
作成後:インスタンスを設定する

environment スキルを使ってサービスインスタンスを設定します:

{
  "services": {
    "<serviceId>": {
      "isCreated": true,
      "source": { "image": "nginx:latest" },
      "variables": {
        "PORT": { "value": "8080" }
      }
    }
  }
}

重要: 新しいサービスインスタンスには、必ず isCreated: true を含めてください。

その後、environment スキルを使って適用し、デプロイします。

変数の参照については、reference/variables.md を参照してください。

サービスのステータスを確認する

railway service status --json

リンクされたサービスの現在のデプロイステータスを返します。

デプロイ履歴
railway deployment list --json --limit 5
ステータスの表示

以下を表示します:

  • サービス:名前と現在のステータス
  • 最新のデプロイ:ステータス(SUCCESS、FAILED、DEPLOYING、CRASHED など)
  • デプロイ日時:現在のデプロイが稼働を開始した日時
  • 最近のデプロイ:直近 3~5 件のステータスとタイムスタンプ
デプロイステータス
ステータス意味
SUCCESSデプロイ済みで稼働中
FAILEDビルドまたはデプロイに失敗
DEPLOYINGデプロイ中
BUILDINGビルド中
CRASHED実行時にクラッシュ
REMOVEDデプロイが削除済み

サービスを更新する

GraphQL API を使ってサービス名またはアイコンを更新します。

サービス ID を取得する
railway status --json

応答から service.id を抽出します。

名前を更新する
bash <<'SCRIPT'
scripts/railway-api.sh \
  'mutation updateService($id: String!, $input: ServiceUpdateInput!) {
    serviceUpdate(id: $id, input: $input) { id name }
  }' \
  '{"id": "SERVICE_ID", "input": {"name": "new-name"}}'
SCRIPT
アイコンを更新する

アイコンには画像 URL またはアニメーション GIF を指定できます。

種類例
画像 URL"icon": "https://example.com/logo.png"
アニメーション GIF"icon": "https://example.com/animated.gif"
Devicons"icon": "https://devicons.railway.app/github"

Railway Devicons: https://devicons.railway.app/{query} に問い合わせると、一般的な開発者向けアイコンを取得できます(例:github、postgres、redis、nodejs)。すべてのアイコンは https://devicons.railway.app で確認できます。

bash <<'SCRIPT'
scripts/railway-api.sh \
  'mutation updateService($id: String!, $input: ServiceUpdateInput!) {
    serviceUpdate(id: $id, input: $input) { id icon }
  }' \
  '{"id": "SERVICE_ID", "input": {"icon": "https://devicons.railway.app/github"}}'
SCRIPT
ServiceUpdateInput のフィールド
フィールド型説明
nameStringサービス名
iconString絵文字または画像 URL(アニメーション GIF を含む)

サービスをリンクする

現在のディレクトリにリンクされたサービスを切り替えます:

railway service link

または、直接指定します:

railway service link <service-name>

組み合わせ

  • ローカルコードでサービスを作成する:new スキルを使用します(スキャフォールディングと作成を処理します)
  • サービスを設定する:environment スキルを使用します(変数、コマンド、イメージなど)
  • サービスを削除する:isDeleted: true を指定して environment スキルを使用します
  • 変更を適用する:environment スキルを使用します
  • ログを表示する:deployment スキルを使用します
  • ローカルコードをデプロイする:deploy スキルを使用します

エラー処理

サービスがリンクされていない
No service linked. Run `railway service link` to link a service.
デプロイがない
Service exists but has no deployments yet. Deploy with `railway up`.
サービスが見つからない
Service "foo" not found. Check available services with `railway status`.
プロジェクトが見つからない

ユーザーがリンク済みプロジェクトに所属していない可能性があります。railway status を確認してください。

アクセスが拒否された

サービスを作成するには、ユーザーに少なくとも DEVELOPER ロールが必要です。

無効なイメージ

Docker イメージにはアクセスできる必要があります(公開されているか、レジストリの認証情報が必要です)。

コメント