143 lines
3.0 KiB
Markdown
143 lines
3.0 KiB
Markdown
|
|
# 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をインストールします:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Dockerコンテナをビルド
|
|||
|
|
docker-compose build
|
|||
|
|
|
|||
|
|
# PHPコンテナでLaravelをインストール
|
|||
|
|
docker-compose run --rm php composer create-project laravel/laravel .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. Laravel環境設定
|
|||
|
|
|
|||
|
|
`src/.env` ファイルを編集してデータベース設定を変更:
|
|||
|
|
|
|||
|
|
```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. コンテナの起動
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker-compose up -d
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. Laravel初期設定
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# キャッシュクリア
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
## よく使うコマンド
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# コンテナ起動
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
## トラブルシューティング
|
|||
|
|
|
|||
|
|
### パーミッションエラーが出る場合
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 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
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### コンテナが起動しない場合
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# コンテナとボリュームを全て削除して再構築
|
|||
|
|
docker-compose down -v
|
|||
|
|
docker-compose build --no-cache
|
|||
|
|
docker-compose up -d
|
|||
|
|
```
|