環境 (Environments) を使う
Railway の環境機能を使って、本番と開発を分離したり、PR ごとに一時的な環境を自動作成したりする方法を解説します。
著者: AIイノベーションズ 阿部隼也(X / Twitter)環境 (Environments) を使う
Railway は、プロジェクト内の全サービスを隔離されたインスタンスとして扱える「環境 (Environments)」機能を提供し、複雑な開発ワークフローをサポートします。本番環境と開発環境を分けたり、ステージング環境を用意したりといった用途に活用できます。
環境の作成
ナビゲーションバーのドロップダウンから + New Environment
を選択するか、Settings > Environments
から作成します。
作成時には以下の2種類から選択できます。
-
Duplicate Environment (環境の複製):
- 選択した環境のサービス、変数、設定をすべてコピーして新しい環境を作成します。
- 複製後、すべてのサービスと設定がデプロイ対象としてステージングされるため、確認してから手動でデプロイする必要があります。
-
Empty Environment (空の環境):
- サービスが何もない、まっさらな環境を作成します。
環境の同期
ある環境から別の環境へ、一つ以上のサービスをインポート(同期)できます。
- 同期先となる環境を選択します。
- キャンバス上部の
Sync
をクリックします。 - 同期元となる環境を選択します。
- 同期後、変更があった各サービスカードに
New
,Edited
,Removed
といったタグが表示されます。 - ステージングされた変更の詳細を確認し、問題がなければ
Deploy
をクリックして適用します。
PR 環境の有効化
GitHub でプルリクエスト (PR) を開いた際に、一時的な環境を自動で作成・デプロイする機能です。Project Settings -> Environments
タブで有効にできます。
- PR がマージまたはクローズされると、この一時環境は自動的に削除されます。
- チーム外のユーザーや、GitHub アカウントが連携されていないユーザーからの PR はデプロイされません。
PR 環境でのドメイン
PR 環境でドメインを自動プロビジョニングするには、ベースとなる環境のサービスが Railway 提供のドメインを使用している必要があります。
ボットによる PR 環境
Dependabot や Renovatebot といったボットが作成した PR に対しても、Enable Bot PR Environments
を有効にすることで自動的に環境を作成できます。
フォークされた環境 (非推奨)
2024年1月をもって、環境のフォーク機能は非推奨となり、環境の同期 (Sync Environments) フローに置き換えられました。それ以前にフォークされた環境は残りますが、変更をマージするには同期フローを使用する必要があります。
PR