Docker で Next.js を起動する
docker-compose.yml のみで Next.js を起動しようと試みたところ、どうやら npm のバージョンが対応していないようで起動するのが面倒だったので、docker compose up -d
のみでサーバーを起動させるまでを行いたいと思います。
原因
Docker の npm のバージョンはデフォルトで 8.1.2 となっていました。
npm run dev
をすると以下のようになります
> dev
> next dev
sh: 1: next: not found
これをnpm upgrade
で 8.3.0 にすると起動しました。
ディレクトリ構成
app
├ Dockerfile
|
├ docker-compose.yml
|
└ nextプロジェクト
Dockerfile
Dockerfile
FROM node:17.3.1
WORKDIR /usr/src/app/next
COPY /react/package*.json ./
RUN npm install
docker-compose.yml
docker-compose.yml
version: "3"
services:
next:
build: .
ports:
- "3000:3000"
container_name: "next"
volumes:
- ./react:/usr/src/app/next
command: "npm run dev"
以上のようにして docker-compose.yml のあるディレクトリに移動し、docker compose up -d
を行うと、localhost:3000 で作成した Next.js プロジェクトにアクセス可能になりました。