railway-deployment について
既存のRailwayデプロイを管理するスキルです。デプロイ一覧、ログ確認、再デプロイ、再起動、デプロイ停止に対応します。Railway CLIで実行時やビルドの問題を調べる用途向けで、停止してもサービス自体は削除されません。
主な機能
- 01デプロイとステータスの一覧表示
- 02デプロイ・ビルドログの確認と絞り込み
- 03サービスの再デプロイと再起動
- 04サービスを残したままデプロイを停止
- 05サービス、環境、時刻によるフィルター
活用シーン
- 01デプロイ履歴と現在の状態の確認
- 02ログからビルド失敗や実行時エラーを特定
- 03設定変更後の再デプロイや再起動
- 04サービスの現在のデプロイを停止
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill railway-deploymentインストール後、Claude Code で/railway-deploymentを入力して読み込まれたか確認します。
詳細
Railway デプロイメント管理
既存の Railway デプロイメントを管理します。一覧表示、ログの確認、再デプロイ、削除を行えます。
重要: 「デプロイメントの削除」(railway down) は現在のデプロイメントを停止しますが、サービスは残ります。サービスを完全に削除するには、railway-environment スキルで isDeleted: true を指定して使用してください。
使用するタイミング
- ユーザーが「remove deploy」「take down service」「stop deployment」「railway down」と言ったとき
- ユーザーが「redeploy」「restart the service」「restart deployment」を望むとき
- ユーザーが「list deployments」「show deployment history」「deployment status」を尋ねたとき
- ユーザーが「see logs」「show logs」「check errors」「debug issues」を尋ねたとき
デプロイメントの一覧表示
railway deployment list --limit 10 --json
デプロイメント ID、ステータス、メタデータが表示されます。ログやデバッグに使う特定のデプロイメント ID を探すときに使用します。
サービスの指定
railway deployment list --service backend --limit 10 --json
ログの確認
デプロイログ
railway logs --lines 100 --json
非対話モードでは、ストリーミングは自動的に無効になり、CLI はログを取得してから終了します。
ビルドログ
railway logs --build --lines 100 --json
ビルド失敗のデバッグやビルド出力の確認に使用します。
失敗した、または進行中のデプロイメントのログ
デフォルトでは railway logs は最後に成功したデプロイメントを表示します。現在のデプロイメントを表示するには --latest を使用します:
railway logs --latest --lines 100 --json
ログのフィルタリング
# Errors only
railway logs --lines 50 --filter "@level:error" --json
# Text search
railway logs --lines 50 --filter "connection refused" --json
# Combined
railway logs --lines 50 --filter "@level:error AND timeout" --json
時間によるフィルタリング
# Logs from last hour
railway logs --since 1h --lines 100 --json
# Logs between 30 and 10 minutes ago
railway logs --since 30m --until 10m --lines 100 --json
# Logs from specific timestamp
railway logs --since 2024-01-15T10:00:00Z --lines 100 --json
形式: 相対指定 (30s、5m、2h、1d、1w) または ISO 8601 タイムスタンプ。
特定のデプロイメントのログ
デプロイログ:
railway logs <deployment-id> --lines 100 --json
ビルドログ:
railway logs --build <deployment-id> --lines 100 --json
デプロイメント ID は railway deployment list で取得します。
注意: デプロイメント ID は位置引数であり、--deployment <id> ではありません。--deployment フラグは、デプロイログを選択するブールフラグです(ビルドログは --build を使用します)。
再デプロイ
最新のデプロイメントを再デプロイします:
railway redeploy --service <name> -y
-y フラグは確認をスキップします。次のような場合に便利です:
- railway-environment スキルで設定を変更した場合
- 新しいコードなしで再起動する必要がある場合
- 前回のデプロイは成功したが、サービスの動作がおかしい場合
コンテナのみ再起動
再ビルドせずに再起動します(外部リソースの変更が反映されます):
railway restart --service <name> -y
外部リソース(S3 のファイルや ConfigMap など)は変更されたがコードは変更されていない場合に使用します。
デプロイメントの削除
現在のデプロイメントを停止します。サービスは残りますが、実行中のデプロイメントはなくなります。
# Remove deployment for linked service
railway down -y
# Remove deployment for specific service
railway down --service web -y
railway down --service api -y
ユーザーが「remove deploy」「take down」「stop the deployment」と言うときに意図しているのはこの操作です。
注意: これによってサービスは削除されません。サービスを完全に削除するには、railway-environment スキルで isDeleted: true を指定して使用してください。
CLI オプション
deployment list
| フラグ | 説明 |
|---|---|
-s, --service <NAME> | サービス名または ID |
-e, --environment <NAME> | 環境名または ID |
--limit <N> | 最大デプロイメント数(デフォルト 20、最大 1000) |
--json | JSON 出力 |
logs
| フラグ | 説明 |
|---|---|
-s, --service <NAME> | サービス名または ID |
-e, --environment <NAME> | 環境名または ID |
-d, --deployment | デプロイログを表示(デフォルト、ブールフラグ) |
-b, --build | ビルドログを表示(ブールフラグ) |
-n, --lines <N> | 行数(必須) |
-f, --filter <QUERY> | クエリ構文によるフィルタリング |
--since <TIME> | 開始時刻(相対指定または ISO 8601) |
--until <TIME> | 終了時刻(相対指定または ISO 8601) |
--latest | 最新のデプロイメント(失敗したものを含む) |
--json | JSON 出力 |
[DEPLOYMENT_ID] | 特定のデプロイメント(省略可) |
redeploy
| フラグ | 説明 |
|---|---|
-s, --service <NAME> | サービス名または ID |
-y, --yes | 確認をスキップ |
restart
| フラグ | 説明 |
|---|---|
-s, --service <NAME> | サービス名または ID |
-y, --yes | 確認をスキップ |
down
| フラグ | 説明 |
|---|---|
-s, --service <NAME> | サービス名または ID |
-e, --environment <NAME> | 環境名または ID |
-y, --yes | 確認をスキップ |
ログの表示
ログを表示する際は、次の点に従ってください。
- タイムスタンプを含める
- エラーと警告を強調する
- ビルド失敗の場合: エラーを表示し、修正案を提示する
- ランタイムクラッシュの場合: スタックトレースの前後の文脈を表示する
- パターンを要約する(例: 「直近100件のログ中に15件のタイムアウトエラー」)
組み合わせ可能性
- 新しいコードをプッシュする: railway-deploy スキルを使用
- サービスの状態を確認する: railway-status スキルを使用
- 設定の問題を修正する: railway-environment スキルを使用
- 新しいサービスを作成する: railway-new スキルを使用
エラー処理
サービスがリンクされていない場合
No service linked. Run `railway service` to select one.
デプロイが見つからない場合
No deployments found. Deploy first with `railway up`.
ログが見つからない場合
デプロイが古すぎる(ログの保持期間の制限)か、サービスがまだ出力を生成していない可能性があります。