🚃
Railwayでデプロイ後に503エラー
概要
Node.js アプリケーションを Railway というホスティングサービスにデプロイした際に、デプロイ url にアクセスしても 503 ステータスエラー (「Application Error: This application failed to respond」) が表示されてアプリケーションが起動しない問題があったのでメモ。
Railway
Railway での 503 エラー
Railway 公式が、デプロイ後に url アクセス時に 503 エラーが発生する理由とその解決法を記載してくれている。
解決手順
Railway のプロジェクトに PORT
という環境変数を設定し、アプリケーション側でデプロイ時にはそれを読み込むように設定すれば ok。
上記の公式のリンクにも解決策は書いてある。
PORT
を設定
Railway に環境変数プロジェクトの詳細画面の「Variables」タグで追加。
アプリケーションで PORT 環境変数を読み込むようにする (Node.js (NestJS) 想定)
筆者は NestJS で作ったアプリケーションをデプロイしたので NestJS で実装。
この実装自体は今回に限らずお左方的な感じで実装するものなのかも。
main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(process.env.PORT || 8080);
}
bootstrap();
おわり
別にこれは Railway に限らずどの PaaS でも大体必要な操作なのかもしれない。
Discussion