{
  "$type": "site.standard.document",
  "canonicalUrl": "https://blog.nove-b.dev//posts/enable-hot-reloading-dockerized-nextjs-nestjs",
  "path": "/posts/enable-hot-reloading-dockerized-nextjs-nestjs",
  "publishedAt": "2023-02-12T00:00:00.000Z",
  "site": "at://did:plc:2atly2y5kfyjcj5zap6pv4wd/site.standard.publication/3mmxeqr2tcb2k",
  "tags": [
    "docker",
    "nestjs",
    "nextjs",
    "ホットリロード"
  ],
  "textContent": "Dockerで環境構築したファイルを変更してもブラウザで表示が変更されない\n\nそもそも作成した環境は下記記事の通り。\n\nDockerでnextJsとnestJsの環境構築をする\n\nで、色々検証してみた結果、Dockerを止め、再度立ち上げれば更新されているということが分かった。原因が分かった、これで一件落着とはならない。 何でも不便すぎる。\n\nそこでホットリロードが効くように調査してみた。\n\n結論(いったん諦める)\n\nフロントエンドに限り、ブラウザを更新すれば、表示が更新されることは確認できた。\n\nフロントエンド(NextJs)\n\nフロントエンド(NextJs)側の設定は、docker-compose.ymlに下記変更を加えたらホットリロードが効くようになった。\n\n...ただめちゃくちゃ重い。\n\n何回かやっていると、なんかうまくいかなくなったので、\n上記の追加分を削除し、下記で対応した。\n\nnext.config.jsに下記を追加。\n\nこれで同じく重いけど、リロードに対応した。\n\nホットリロードにも対応しているようだけど、Dockerが重すぎてわからない。\n\nバックエンド(NestJs)\n\nNestJsを色々調べてもよくわかなかったので、Dockerについて調べると、下記記事を見つけた。\n\nDockerを使っていてhot reload系が効かなかったとき\n\nこの1つ目「wsl上にファイルを置いていない」が該当したので、確認してみることにした。\n\nが、これがなかなか厄介で大変な気がする。\n\nもっと簡単そうなのが、\n\nをDockerfileに記述する。\n\nあるいは、\n\nをdocker-compose.ymlに追記するというもの。\n\nなんか採用しなかったけど、frontendでも同じようなことをしている。\n\nとりあえずdocker-compose.ymlで試してみることにした。\n\nが、反応しない。\n\n仕方ないので、Dockerfileにもやってみる。\n\nこちらも反応しない。\n\nつまり、「wsl上にファイルを置く」必要があるのか。\n\nいったん保留にする。",
  "title": "Dockerで立ち上げたNextJs・NestJsのプロジェクトでホットリロードを可能にする"
}