🔧
NestJS アプリを Heroku にデプロイしたときに発生する 503エラーを解消する
やること
下記問題の解決
- NestJSのデフォルトプロジェクトをHerokuにデプロイすると503エラーになってしまう
前提
- Node.js がすでにインストールされていること
- Heroku のアカウントを作成済みであること
- Heroku CLI がすでに利用できるようになっていること
NestJSのデフォルトプロジェクトの生成
$ cd /path/to/somewhere/work_dir
$ npm i -g @nestjs/cli
$ mkdir <something app name here>
$ cd $_
$ npx nest new .
$ git add .
$ git commit -m 'nest new'
$ npm run start
これで http://localhost:3000/
へアクセスしたら Hello World!
と表示されます。
Heroku設定
以下のコマンドでアプリケーションを作ります。
$ heroku login
$ heroku create <something app name here>
これをこのままデプロイしたらビルドは通るものの503エラーになります。
アプリケーション改修
適当に作業ブランチを切って以下の修正を行います。
ポート番号の参照方法を修正
main.ts
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
- await app.listen(3000);
+ await app.listen(process.env.PORT || 3000);
}
bootstrap();
Procfile の追加
Procfile
web: npm run start:prod
デプロイ
前章の改修をマージしてデプロイを実施します。
$ git push heroku master
ローカルと同じように Hello World!
が表示されれば成功です。
以上です。
Discussion