Web Developer Yoshitaka Kai's

Blog

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のトップページが表示されるまでの流れ。