DockerでLaravel開発環境を構築
投稿者: yoshitakakai
作成日: 2024年12月5日15:46
更新日: 2025年1月10日11:11
カテゴリ: Docker
タグ: Webアプリ開発,Laravel,
色々躓きが多かったので、都度調べたものを記録。
とりあえずDocker composeでNginx、PHP、MySQL(linux/amd64)をそれぞれコンテナ作成。
そのあと、LaravelをPHPのコンテナにインストールする。※ここでのプロジェクト名はmy-laravel-appとする。
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
apt-get update && apt-get install -y libzip-dev unzip docker-php-ext-install zip
$ composer create-project --prefer-dist laravel/laravel my-laravel-app
このあと、Laravelフォルダ内の.envを修正する。
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=xxxxx #MySQLのコンテナ名
DB_USERNAME=xxxxx
DB_PASSWORD=xxxxxxxx
Nginxのconfigファイルも修正。
server {
listen 80;
server_name localhost;
root /var/www/html/my-laravel-app/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
mysqlを使用するためのライブラリをPHPコンテナのルートディレクトリにインストール。
$ apt-get update && apt-get install -y libmariadb-dev && docker-php-ext-install pdo_mysql
$ docker-php-ext-install pdo_mysql
確認してOKであれば、サーバーに接続してみる。
$ docker exec -it php bash
$ php -m | grep pdo_mysql
$ php artisan migrate
$ php artisan serve
ここまでが、Nginx、PHP、MySQLそれぞれのコンテナを作成し、Laravelのトップページが表示されるまでの流れ。