ヤマモト
2024.09.19
9
こんにちは、山本です。
今回はDockerでLaravel 11 環境の構築を行いました。
任意の場所にプロジェクトディレクトリを作成する。
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ファイルを作成し、以下の内容を記述する。
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"
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;
}
}
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プロジェクトを作成する。
docker compose run --rm php composer create-project --prefer-dist laravel/laravel src
docker-compose up -d
ブラウザでアクセスしウェルカムページが表示されるかを確認する。
36
ヤマモト
2024.09.25
19
ヤマモト
2024.09.17
12
ヤマモト
2024.09.11