💡
Next.js + Bun + Docker で環境構築
概要
Next.jsの環境構築の備忘録
bun使っていきたいけど、ローカルに入れずにDockerで動かしたい
そのため無理やりDocker内でbun入れて、create-next-appしてみました
環境
- Next.js:v14.0.3(App Router)
- Bun:v1.0.15
- Docker:v24.0.6
- Biome:v1.4.1
- shadcn/ui:v0.1.0
bun(Docker内)でcreate-next-appしてみる
bunを入れてdockerを立ち上げる
docker-compose.yml
services:
app:
build: .
container_name: app
ports:
- 3000:3000
volumes:
- ./:/app
tty: true
FROM oven/bun:latest
だけだと落ちてしまうので、以下の状態で一旦立ち上げる
多分もっといい方法がある
Dockerfile
FROM debian
RUN apt-get update && apt-get install -y \
zip \
unzip \
curl
RUN curl -fsSL https://bun.sh/install | bash
WORKDIR /app
docker立ち上げ
docker compose up -d
コンテナに入る
docker compose exec app bash
create-next-app する
bunx create-next-app
✔ What is your project named? … [app名]
✔ Would you like to use TypeScript? … Yes
✔ Would you like to use ESLint? … No
✔ Would you like to use Tailwind CSS? … Yes
✔ Would you like to use `src/` directory? … Yes
✔ Would you like to use App Router? (recommended) … Yes
✔ Would you like to customize the default import alias (@/*)? … No
オプションで設定する場合
bunx create-next-app [app名] --ts --tailwind --app --src-dir --use-bun --eslint No
※bun install でエラーが出た時 ↓
Dockerの設定確認
gRPC FUSE
にチェックしておかないと、bun install
で失敗するので注意
理由はよくわかっていないが、この辺りを参考にした
再度buildする
これで一旦基盤は完成したので、こちらに直してbuildしなおす
Dockerfile
FROM oven/bun:latest
WORKDIR /app
CMD ["bash", "-c", "bun dev"]
docker compose up --build -d
ここまでで本記事の本題は以上です
以下には環境構築で他におこなったことを記載しています
Git
初期化
git init
linter & formatter
Biome を入れました
以下の記事に詳細を書いています
コンポーネントのデザイン
shadcn/ui を入れました
以下の記事に詳細を書いています
Discussion