Laravel12 + PHP8.4のDocker環境構築メモ
投稿日:2026/01/02
- 本ブログは、エンジニアとして学んだことを整理・記録するための技術ブログです。
- 初回投稿では、このブログを構築するために用意したLaravel × Docker の開発環境について簡単にまとめます。
- LaravelをDockerで動かす最小構成にしています。
全体構成
blog/
├── docker/
│ ├── php/
│ │ └── Dockerfile
│ └── nginx/
│ └── default.conf
├── src/ ← 後からLaravelプロジェクトが入る
├── docker-compose.yml
└── .gitignore
技術スタック
- PHP 8.4
- Laravel 12
- MySQL 8
- Docker / Docker Compose
- Nginx
環境構築手順
① docker-compose.yml の作成
version: "3.9"
services:
app:
build:
context: ./docker/php
volumes:
- ./src:/var/www/html
working_dir: /var/www/html
web:
image: nginx:1.25
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
db:
image: mysql:8.0
environment:
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: laravel
MYSQL_ROOT_PASSWORD: root
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
② PHP用Dockerfileの作成
FROM php:8.4-fpm
RUN apt-get update && apt-get install -y \
git \
unzip \
libzip-dev \
&& docker-php-ext-install pdo_mysql zip
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html
③ Nginxの設定ファイル作成(default.conf)
server {
listen 80;
root /var/www/html/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass app:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
④ Laravelプロジェクトの作成
Dockerコンテナ上でLaravelをインストールします。
docker compose run --rm app \
composer create-project laravel/laravel . "^12.0"
作成後の構成
src/
├── app
├── artisan
├── composer.json
└── ...
⑤ コンテナの起動
docker compose up -d --build
⑥ Laravel初期設定
アプリケーションキーの生成
docker compose exec app php artisan key:generate
.envの編集(DB接続設定)
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravel
マイグレーションの実行
docker compose exec app php artisan migrate
⑦ Lravelトップ画面へアクセス
http://localhost:8080
Laravel のトップ画面が表示されれば、環境構築は完了です。
おわりに
今回はLaravelをDocker環境で立ち上げるまでをまとめました。