environment について
Railway の環境設定を読み取り、編集するスキルです。変数、ビルドとデプロイの設定、サービス、レプリカ数を扱い、CLI で確認や JSON 変更の適用を行います。
主な機能
- 01環境とサービス設定の確認
- 02変数と解決済み値の表示
- 03環境の作成と複製
- 04設定の一括編集とデプロイの実行
活用シーン
- 01サービス変数とビルド設定の確認
- 02本番環境をステージング用に複製
- 03変数、起動コマンド、レプリカ数の更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ railwayapp/ railway-skills --skill environmentインストール後、Claude Code で/environmentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/environment-config.mdmonorepo.mdrailpack.mdvariables.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— プロジェクト IDenvironment.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
serviceskill - View logs: Use
deploymentskill - Add domains: Use
domainskill - Deploy local code: Use
deployskill