a63e08327e92958d2f9f1da589fe33892e0b8157
Laravel Docker環境
Nginx + PHP + Laravel + MySQL + PhpMyAdmin + MailHog を使ったDocker開発環境です。
構成
- Nginx: Webサーバー(ポート: 9700)
- PHP 8.2: PHP-FPM + Composer + Node.js
- MySQL 8.0: データベース(ポート: 9702)
- PhpMyAdmin: DB管理ツール(ポート: 9701)
- MailHog: メールテストツール(SMTP: 1025, Web UI: 9725)
ディレクトリ構成
.
├── docker/
│ ├── nginx/
│ │ └── default.conf
│ ├── php/
│ │ ├── Dockerfile
│ │ └── php.ini
│ └── mysql/
│ └── my.cnf
├── src/
│ └── (Laravelプロジェクト)
├── .env
├── .gitignore
└── docker-compose.yml
セットアップ手順
1. Laravelプロジェクトのインストール
srcフォルダにLaravelをインストールします:
# Dockerコンテナをビルド
docker-compose build
# PHPコンテナでLaravelをインストール
docker-compose run --rm php composer create-project laravel/laravel .
2. Laravel環境設定
src/.env ファイルを編集してデータベース設定を変更:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel_user
DB_PASSWORD=secret
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
3. コンテナの起動
docker-compose up -d
4. Laravel初期設定
# キャッシュクリア
docker-compose exec php php artisan config:clear
# マイグレーション実行
docker-compose exec php php artisan migrate
アクセスURL
- アプリケーション: http://localhost:9700
- PhpMyAdmin: http://localhost:9701
- MailHog Web UI: http://localhost:9725
よく使うコマンド
# コンテナ起動
docker-compose up -d
# コンテナ停止
docker-compose down
# コンテナ再起動
docker-compose restart
# ログ確認
docker-compose logs -f
# PHPコンテナに入る
docker-compose exec php bash
# Artisanコマンド実行
docker-compose exec php php artisan [command]
# Composer実行
docker-compose exec php composer [command]
# npm実行
docker-compose exec php npm [command]
データベース接続情報
- ホスト: localhost (外部) / mysql (コンテナ内)
- ポート: 9702 (外部) / 3306 (コンテナ内)
- データベース名: laravel
- ユーザー名: laravel_user
- パスワード: secret
- rootパスワード: secret
トラブルシューティング
パーミッションエラーが出る場合
# storageとbootstrap/cacheのパーミッション設定
docker-compose exec php chmod -R 775 storage bootstrap/cache
docker-compose exec php chown -R www-data:www-data storage bootstrap/cache
コンテナが起動しない場合
# コンテナとボリュームを全て削除して再構築
docker-compose down -v
docker-compose build --no-cache
docker-compose up -d
Description
Languages
PHP
57.3%
Blade
42.2%
JavaScript
0.2%
Dockerfile
0.2%