【Railway】環境 (Environments) を使う
Railway の環境機能を使って、本番と開発を分離したり、PR ごとに一時的な環境を自動作成したりする方法を解説します。
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)
環境 (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) フローに置き換えられました。
それ以前にフォークされた環境は残りますが、変更をマージするには同期フローを使用する必要があります。
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)