0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

20分で終わる!最も簡単にlocalでNext.jsを動かす

Last updated at Posted at 2024-11-22

導入

今回は最新のNext.jsを最も簡単にセットアップして動くようにするコードを用意したので軽い検証や初めてNextを使う方はぜひ使ってみてください!

必要なもの

これだけです!
初学者向けに今回はvscodeで説明していますがエディターはなんでもいいです

手順

gitが普通に使える方は以下のリポジトリからクローンしてREADME.md通りに構築してください

gitがよくわからない方は以下の手順で進めてください

  1. 適当な空のフォルダを開きます
    スクリーンショット 2024-11-17 17.49.18.png

2. `Dockerfile`, `Makefile`, `setup.sh` の3つのファイルを作成します

スクリーンショット 2024-11-17 18.08.32.png


3. それぞれの中身は以下をコピペしてください

Dockerfile

FROM node:18-alpine
WORKDIR /usr/src/app
RUN npm install -g create-next-app

COPY setup.sh /setup.sh
RUN chmod +x /setup.sh

CMD ["/setup.sh"]

setup.sh

#!/bin/sh
PROJECT_DIR="/usr/src/app"

# 以下はproject作成後は消していい
if [ ! -f "$PROJECT_DIR/package.json" ]; then
  TMP_DIR=$(mktemp -d -t tmp-nextjs-XXXXXX | tr '[:upper:]' '[:lower:]')
  npx create-next-app@latest $TMP_DIR --use-npm --ts --eslint --src-dir
  mv $TMP_DIR/* $PROJECT_DIR
  mv $TMP_DIR/.[^.]* $PROJECT_DIR
  rm -rf $TMP_DIR
fi

echo "Starting Next.js development server..."
npm run dev

Makefile

CONTAINER_NAME=nextjs-container
IMAGE_NAME=nextjs-docker

build:
	docker build -t $(IMAGE_NAME) .
run:
	docker run --rm -it -p 3000:3000 -v $(PWD):/usr/src/app --name $(CONTAINER_NAME) $(IMAGE_NAME)
bash:
	docker exec -it $(CONTAINER_NAME) /bin/sh

4 . ターミナルを開いてください
スクリーンショット 2024-11-17 18.09.41.png

5 . ターミナルに以下のコマンドを打ちます

make build
make run

最初に立ち上げる時はそこそこ時間がかかります。15分くらいかかったかも!

いくつか質問がされますがよくわからない方は全て適当にEnter押して大丈夫です。後から変更できるので
ターミナルが写真のようになった後、http://localhost:3000 にアクセスしてNextの画面が表示されれば成功です
スクリーンショット 2024-11-23 7.10.19.png


コンテナに入りたい場合は

make bash

を使ってください

最後に

わからないことやエラーがあったらお気軽にコメントください!




ここから先は興味がある人のみ読んでください

なぜこの方法が「最も簡単」なの?

ホストにNodeやnpmが無くてもよく、それらのバージョンに左右されないからです
公式サイトの手順でNextを動かそうとすると

  1. 動かしたいバージョンのnodeをインストールする
  2. インストールしたnodeのバージョンを設定する
  3. node -v をするがなぜかバージョンが変わっていない
  4. なんかごちゃごちゃしてpathを通す
  5. やっと新しいバージョンのnodeのpathが通る
  6. 動かしたいバージョンのnpmをインストールする
  7. インストールしたnpmのバージョンを設定する
  8. npm -vするがなぜかバージョンが変わっていない
  9. 以下略

こんなことが起きて普通のエンジニアでも1~2時間手こずることがあります
初学者だとここで挫折してもおかしく無いです
だからこそ初学者こそDockerを使うべきだと私は考えており、初学者がDockerのことをよく知らなくても簡単に動かせるようなコードを今回作成しました

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?