1.導入環境
- M1 pro macbookpro(os:sonoma:14.4.1(23E224))
- docker desktop
2.ディレクトリ構成
├── README.md
├── backend
│ └── Dockerfile
├── compose.yaml
├── db
│ └── my.cnf
├── frontend
│ ├── Dockerfile
│ ├── laravel-next
│ └── package-lock.json
└── mysql
└── my.cnf
3.各ディレクトリのDockerfileとCompose.yaml
frontend/Dockerfile
#node.jsを採用
FROM node:20.12.2
#作業ディレクトリの設定
WORKDIR /app
backend/Dockerfile
#php8.3を使用するためのDockerfile
FROM php:8.3-apache
RUN apt-get update && apt-get install -y \
libzip-dev \
zip \
unzip \
&& docker-php-ext-install zip pdo_mysql mysqli
#composerのインストール \
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
#apacheの設定
RUN a2enmod rewrite
compose.yaml
version: "3.8"
services:
frontend:
build:
context: /frontend
dockerfile: Dockerfile
ports:
- "3000:3000"
volumes:
- .:/pages
working_dir: /pages
tty: true
stdin_open: true
backend:
build:
context: /backend
dockerfile: Dockerfile
ports:
- "8080:8080"
volumes:
- backend:/var/www/html
working_dir: /var/www/html
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mydb
MYSQL_USER: user
MYSQL_PASSWORD: password
ports:
- "3306:3306"
volumes:
- .db:/var/lib/mysql
- ./mysql/my.cnf:/etc/mysql/my.cnf
Dockerfileとcompose.yamlを作成したら
docker compose build -d
4.laravelプロジェクト・nextのプロジェクトを新規で作成する
laravel側の新規プロジェクトの立ち上げ方
composer create-project "laravel/laravel=バージョン" プロジェクト名
next側の新規プロジェクトの立ち上げ方
npx create-next-app@latest
または
yarn create next-app
typescriptで始めたい人は
npx create-next-app@latest --typescript
または
yarn create next-app --typescript
基本的にはnext側のプロジェクトの立ち上げ方で大丈夫だと思いますが、チームの方針によって使い分けてください。
個人開発の方はnext側でプロジェクトを立ち上げることをお勧めします。
まとめ
今回はlaravel + nextjsのdocker環境構築方法についてまとめてみました。
皆様の問題解決の手助けになれていれば幸いです。