【Docker】Laravel 11 環境の構築

ヤマモト

2024.09.19

0

こんにちは、山本です。


今回はDockerでLaravel 11 環境の構築を行いました。

DockerによるLaravel環境の構築

(前提)Docker のインストール

下記リンクからインストール可能(MacとWindowsでインストーラが変わるため注意)

https://www.docker.com/get-started/



プロジェクトディレクトリの作成

任意の場所にプロジェクトディレクトリを作成する。


mkdir laravel11-docker

cd laravel11-docker


★ディレクトリ構造

laravel11-docker/
├── docker/
│   ├── mysql/
│   │   └── (MySQL関連ファイル)
│   ├── nginx/
│   │   ├── logs/
│   │   ├── default.conf
│   │   └── Dockerfile
│   └── php/
│       ├── Dockerfile
│       └── php.ini
├── src/
│   └── (Laravelプロジェクトファイル)
└── docker-compose.yml


docker-compose.ymlの作成

docker-compose.ymlファイルを作成し、以下の内容を記述する。


services:
  nginx:
    container_name: "laravel11-nginx"
    build:
      context: ./docker/nginx
    ports:
      - "80:80"
    volumes:
      - ./src:/var/www/html
  php:
    container_name: "laravel11-php"
    build:
      context: ./docker/php
    volumes:
      - ./src:/var/www/html
      - ./docker/php/php.ini:/usr/local/etc/php/php.ini
  mysql:
    image: mysql:8.0
    container_name: "laravel11-mysql"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: laravel
    volumes:
      - ./docker/mysql:/var/lib/mysql
    ports:
      - "3306:3306"


Nginxの設定

docker/nginxフォルダ内にDockerfileとdefault.confを作成し、以下の内容を記述する。


・Dockerfile

FROM nginx:1.21
COPY default.conf /etc/nginx/conf.d/



・default.conf

server {
    listen 80;
    server_name localhost;
    root /var/www/html/public;
    index index.php index.html;


    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }


    location ~ \.php$ {
        fastcgi_pass laravel11-php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}




PHPの設定

docker/phpフォルダ内にDockerfileとphp.iniを作成し、以下の内容を記述する。


・Dockerfile


FROM php:8.2-fpm

# 必要なパッケージのインストール
RUN apt-get update && apt-get install -y \
  zip \
  unzip \
  git \
  && docker-php-ext-install pdo_mysql

# Composerのインストール
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

COPY php.ini /usr/local/etc/php/



・php.ini

[PHP]
display_errors = On


Laravelプロジェクトの作成

プロジェクトフォルダ内で以下のコマンドを実行してLaravelプロジェクトを作成する。


docker compose run --rm php composer create-project --prefer-dist laravel/laravel src



Dockerコンテナの起動

docker-compose up -d



動作確認

ブラウザでアクセスしウェルカムページが表示されるかを確認する。




この記事をシェアする