1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:ホットリロード対応!Next.jsのDocker環境構築メモを整理してみた

Posted at

はじめに

この記事では、Next.js アプリケーションを Docker 上で開発するための docker-compose.yml ファイルの構成について、自分用の備忘録としてまとめています。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

主に開発環境を整える目的で記述しており、ホットリロードの対応や依存関係の管理も管理しています。

書こうと思ったきっかけ

チーム開発や複数環境での動作確認を行う際、開発環境を統一するために Docker 化が有効です。特に Next.js のようなフロントエンドフレームワークでは、ホットリロードや依存ライブラリの管理に工夫が必要です。

そこで、最小構成で使いやすい docker-compose.yml の中身を整理しておきたいと思いました。

docker-compose.yml の解説

version: '3.8'

services:
  next-app:
    container_name: next-app
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - CHOKIDAR_USEPOLLING=true

今回作成したファイル

各項目の説明

設定項目 説明
version: '3.8' Docker Compose のバージョン指定。安定性と互換性を兼ね備えたバージョンです。
services: 起動するサービス(=コンテナ)を定義します。ここでは next-app という名前のサービスを用意しています。
container_name コンテナ名を明示的に next-app と指定します。省略時はサービス名が使われます。
build: . 現在のディレクトリにある Dockerfile を元にビルドを行います。
ports ホストの 3000 番ポートを、コンテナ内の 3000 番ポートにバインドします。Next.js の開発サーバーが使う標準ポートです。
  • .:/app: ホストのカレントディレクトリをコンテナ内の /app にマウントし、ソースコードの変更をリアルタイムに反映します。
  • /app/node_modules: 匿名ボリュームとして定義し、ホスト側の node_modules と分離してトラブルを避けます。 |
    | environment | CHOKIDAR_USEPOLLING=true を指定し、ファイル変更の検知をポーリング方式に変更。WSL や Docker Desktop で安定して動作させるための工夫です。 |

まとめ

この構成により、Next.js アプリの開発環境を Docker 上で快適に構築できます。

特にホットリロードや依存管理の面でトラブルが少なく、チーム開発やマシン間での再現性も高くなります。

今後は、環境変数の .env ファイル化や MySQL との連携なども検討していく予定です...!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?