はじめに
前提環境
docker
docker-compose
dockerとdocker-composeは以下の公式URLからインストール前提でお願いします。
Docker desktop
環境構築ファイル
以下のURLからdocker-composeを実行する上での環境をクローンしてください。
URL:github laravel-docker
ディレクトリ構成
クローンしてきたディレクトリ構成は以下のようになります。
LARAVEL/
├── .gitignore # Gitで追跡しないファイルやディレクトリを指定
├── docker-compose.yml # Dockerのサービス構成ファイル
├── README.md # 環境構築手順や使用方法の説明書
├── docker/ # 各サービスのDocker設定をまとめたディレクトリ
│ ├── app/
│ │ ├── Dockerfile # アプリケーション(Laravel)用のDockerfile
│ │ └── php.ini # PHPの設定ファイル
│ ├── db/
│ │ ├── Dockerfile # データベース用のDockerfile
│ │ └── my.conf # MySQLの設定ファイル
│ └── web/
│ ├── Dockerfile # Webサーバー(例: Nginx)用のDockerfile
│ └── default.conf # Webサーバーの設定ファイル
Laravel プロジェクト構築手順
-
ディレクトリの移動
LaravelプロジェクトのDocker設定があるディレクトリに移動します。
cd laravel
-
Dockerコンテナのビルドと起動
Dockerイメージをビルドし、コンテナをバックグラウンドで起動します。
docker compose build docker compose up -d
-
Laravel プロジェクトのセットアップ
-
Laravel プロジェクトを作成
コンテナ内にLaravelプロジェクトを作成します。
docker compose exec app composer create-project --prefer-dist laravel/laravel .
-
アプリケーションキーの生成
Laravelのアプリケーションキーを生成して、
.env
ファイルに設定します。docker compose exec app php artisan key:generate
-
Laravelの環境設定ファイル
.env
の編集Docker Compose で指定されているデータベースの接続情報を
.env
ファイルに設定します。DB_CONNECTION=mysql DB_HOST=db # Docker Composeで定義されているサービス名 DB_PORT=3306 DB_DATABASE=database # docker-compose.yml の MYSQL_DATABASE と同じ値 DB_USERNAME=user # docker-compose.yml の MYSQL_USER と同じ値 DB_PASSWORD=password # docker-compose.yml の MYSQL_PASSWORD と同じ値
-
ストレージリンクの作成
public/storage
ディレクトリへのシンボリックリンクを作成します。docker compose exec app php artisan storage:link
-
ディレクトリの権限設定
storage
とbootstrap/cache
ディレクトリに書き込み権限を設定します。docker compose exec app chmod -R 777 storage bootstrap/cache
-
データベースのマイグレーション
データベーステーブルを作成します。
docker compose exec app php artisan migrate
-