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?

Laravel + nextjsのdocker環境構築・プロジェクト立ち上げ

Posted at

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環境構築方法についてまとめてみました。
皆様の問題解決の手助けになれていれば幸いです。


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?