mcpField
E
environment

environment

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

environment について

Railway の環境設定を読み取り、編集するスキルです。変数、ビルドとデプロイの設定、サービス、レプリカ数を扱い、CLI で確認や JSON 変更の適用を行います。

主な機能

  1. 01環境とサービス設定の確認
  2. 02変数と解決済み値の表示
  3. 03環境の作成と複製
  4. 04設定の一括編集とデプロイの実行

活用シーン

  1. 01サービス変数とビルド設定の確認
  2. 02本番環境をステージング用に複製
  3. 03変数、起動コマンド、レプリカ数の更新

インストール

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

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

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

同梱ファイル

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

references/
environment-config.md
monorepo.md
railpack.md
variables.md

詳細

環境設定

CLI を使用して Railway の環境設定を読み取り、編集します。

前提条件

Railway CLI v4.27.3+ が必要です。次のコマンドで確認してください。

railway --version

4.27.3 より前のバージョンの場合は、アップグレードしてください。

railway upgrade

クイックアクション

ユーザーが「設定は何ですか」や「設定を表示して」と尋ねた場合:

railway environment config --json

次の項目を提示します:ソース(リポジトリ/イメージ)、ビルド設定、デプロイ設定、サービスごとの変数。

ユーザーが「変数は何ですか」や「環境変数を表示して」と尋ねた場合:

同じコマンドを使用します。railway environment config --json には、サービスごとの変数と共有変数が含まれます。

レンダリング済み(解決済み)の変数値を確認するには、railway variables --json を使用します。

使用する場面

  • ユーザーが新しい環境を作成したい場合
  • ユーザーが環境を複製したい場合(例:「本番環境をステージング環境にコピー」)
  • ユーザーが別の環境に切り替えたい場合
  • ユーザーが現在のビルド/デプロイ設定、変数、レプリカ、ヘルスチェック、ドメインについて尋ねた場合
  • ユーザーがサービスのソース(Docker イメージ、ブランチ、コミット、ルートディレクトリ)を変更したい場合
  • ユーザーがサービスを GitHub リポジトリに接続したい場合
  • ユーザーが GitHub リポジトリからデプロイしたい場合(まず new スキルで空のサービスを作成し、その後このスキルを使用します)
  • ユーザーがビルドコマンドまたは起動コマンドを変更したい場合
  • ユーザーが環境変数を追加/更新/削除したい場合
  • ユーザーがレプリカ数を変更したい場合、またはヘルスチェックを設定したい場合
  • ユーザーがサービス、ボリューム、バケットの削除を求めた場合
  • ログで検出されたビルドエラーを自動修正する場合

環境を作成する

リンク済みプロジェクトに新しい環境を作成します。

railway environment new <name>

既存の環境を複製します。

railway environment new staging --duplicate production

サービス固有の変数を指定します。

railway environment new staging --duplicate production --service-variable api PORT=3001

環境を切り替える

現在のディレクトリに別の環境をリンクします。

railway environment <name>

または ID で指定します。

railway environment <environment-id>

コンテキストを取得する

JSON 出力 — プロジェクト/環境 ID とサービス一覧:

railway status --json

以下を抽出します:

  • project.id — プロジェクト ID
  • environment.id — 環境 ID

プレーンテキスト出力 — リンク済みのサービス名:

railway status

現在リンクされているサービスを示す Service: <name> の行が表示されます。

サービス ID を解決する

環境設定からサービス ID を取得します。

railway environment config --json | jq '.services | keys'

ステータスからサービス ID を名前に対応付けます。

railway status --json

project.services 配列には各サービスの { id, name } が含まれます。これを environment config のサービスキーと照合します。

設定を読み取る

現在の環境設定を取得します。

railway environment config --json
レスポンスの構造
{
  "services": {
    "<serviceId>": {
      "source": { "repo": "...", "branch": "main" },
      "build": { "buildCommand": "npm run build", "builder": "NIXPACKS" },
      "deploy": {
        "startCommand": "npm start",
        "multiRegionConfig": { "us-west2": { "numReplicas": 1 } }
      },
      "variables": { "NODE_ENV": { "value": "production" } },
      "networking": { "serviceDomains": {}, "customDomains": {} }
    }
  },
  "sharedVariables": { "DATABASE_URL": { "value": "..." } }
}

フィールドの詳細については、reference/environment-config.md を参照してください。

変数の構文とサービス接続のパターンについては、reference/variables.md を参照してください。

レンダリング済みの変数を取得する

environment config が返すのは未レンダリングの変数です。${{shared.DOMAIN}} のようなテンプレート構文はそのまま保持されます。これは管理や編集に適した形式です。

実行時に表示されるレンダリング済み(解決済み)の値を確認するには、次を実行します。

# Current linked service
railway variables --json

# Specific service
railway variables --service <service-name> --json

次のような場合に使用します:

  • 接続の問題をデバッグする場合(実際の URL/ポートを確認)
  • 変数が正しく解決されていることを確認する場合
  • Railway が注入した値(RAILWAY_*)を確認する場合

設定を編集する

JSON パッチを railway environment edit に渡して変更を適用します。パッチは既存の設定とマージされ、すぐにコミットされてデプロイが開始されます。

railway environment edit --json <<< '<json-patch>'

コミットメッセージを指定する場合:

railway environment edit -m "description of change" --json <<< '<json-patch>'
例

ビルドコマンドを設定する:

railway environment edit --json <<< '{"services":{"SERVICE_ID":{"build":{"buildCommand":"npm run build"}}}}'

変数を追加する:

railway environment edit -m "add API_KEY" --json <<< '{"services":{"SERVICE_ID":{"variables":{"API_KEY":{"value":"secret"}}}}}'

変数を削除する:

railway environment edit --json <<< '{"services":{"SERVICE_ID":{"variables":{"OLD_VAR":null}}}}'

サービスを削除する:

railway environment edit --json <<< '{"services":{"SERVICE_ID":{"isDeleted":true}}}'

レプリカ数を設定する:

railway environment edit --json <<< '{"services":{"SERVICE_ID":{"deploy":{"multiRegionConfig":{"us-west2":{"numReplicas":3}}}}}}'

共有変数を追加する:

railway environment edit --json <<< '{"sharedVariables":{"DATABASE_URL":{"value":"postgres://..."}}}'
複数の変更をまとめて適用する

1 つのパッチに複数のフィールドを含めると、変更をまとめて適用できます。

railway environment edit -m "configure build, start, and env" --json <<< '{"services":{"SERVICE_ID":{"build":{"buildCommand":"npm run build"},"deploy":{"startCommand":"npm start"},"variables":{"NODE_ENV":{"value":"production"}}}}}'

エラー処理

コマンドが見つからない

railway environment edit が認識されない場合は、CLI をアップグレードしてください。

railway upgrade
サービスが見つからない
Service "foo" not found in project. Available services: api, web, worker
無効な設定

よくある問題:

  • buildCommand と startCommand は同一にできません
  • buildCommand が有効なのは NIXPACKS ビルダーの場合のみです
  • dockerfilePath が有効なのは DOCKERFILE ビルダーの場合のみです
権限がない
You don't have permission to modify this environment. Check your Railway role.
リンク済みプロジェクトがない
No project linked. Run `railway link` to link a project.

Composability

  • Create service: Use service skill
  • View logs: Use deployment skill
  • Add domains: Use domain skill
  • Deploy local code: Use deploy skill

コメント