🍀
Next.js + TypeScript + Dockerを使った環境構築
Next.js + TypeScript + Dockerを使った環境構築
概要
Next.js の環境構築をする際に、ローカル環境を汚したくなかったので Docker コンテナ を使って環境を作ろうと思ったときのまとめ。できるだけ無駄なことがないように必要最低限のもので構築しています。
手順
まずは作業用のディレクトリを作成します。
$ mkdir nextjs-app
$ cd nextjs-app
ここにDockerfile
を作ります。
$ touch Dockerfile
Dockerfile
の中身は以下です。node
のバージョンは構築時に最新版だった17を使いました。
* Docker Hub
のリンクは こちら
Dockerfile
の中身は以下です。
FROM node:17-alpine
WORKDIR /opt/app
FROM
でベースイメージを指定し、WORKDIR
で作業ディレクトリを指定します。WORKDIR
は存在していなければ作成されます。
次にdocker-comopse.yml
をつくります
$ touch docker-compose.yml
docker-comopse.yml
の中身は以下です。
version: '3'
services:
app:
build: ./
volumes:
- ./src:/opt/app
ports:
- '3000:3000'
ここから以下を実行してNext.js
をインストールします。
$ docker-compose run --rm app yarn create next-app . --ts
これでNext.js
がsrc/
配下にインストールされました。
最後にコンテナ起動時に実行するスクリプトをENTRYPOINT
としてDockerfile
に記述します。
今回はシェルスクリプトファイルを作ってそれを実行することとします。
$ cd src
$ touch setup.sh
setup.sh
の中身は以下です。
set -eu
yarn && yarn dev
Dockerfile
のENTRYPOINT
に実行コマンドを記述します。
FROM node:17-alpine
WORKDIR /opt/app
ENTRYPOINT ["sh", "./setup.sh" ]
これで設定は完成です。
$ docker-compose build
$ docker-compose up -d
を実行後 http://localhost:3000 にアクセスして以下のような画像が表示されていれば完成です。
Discussion