この記事では、Dockerを使って最小限でローカル開発環境を構築する方法をご紹介します。
今回はdocker-composeを使ってローカルに以下の環境を構築します。(LNMP環境)
- Laravel 8.x
- Nginx
- MySQL 8.0
- PHP 8.1.4
前提条件
- Docker がローカルにインストールされている
- composeがインストールされている
使用するOSによってdockerのインストール方法が異なりますので、公式サイトよりダウンロードしてください。
https://www.docker.com/products/docker-desktop/
環境構築用のディレクトリ作成
最終的なディレクトリは以下になります。
.
├── blog
└── docker-compose
├── docker
│ ├── mail
│ │ └── Dockerfile
│ ├── mysql
│ ├── nginx
│ │ └── default.conf
│ └── php
│ ├── Dockerfile
│ └── php.ini
└── docker-compose.yml
Laravelアプリを作成
composer create-project --prefer-dist laravel/laravel blog "8.*"
以下のように表示ができたらlaravelアプリの作成が成功になります。
アプリ(blog)/storage以下に書き込み権限を付けます。
sudo chmod -R 777 storage
docker-compose.ymlの設定
version: '3'
services:
php:
build: ./docker/php
depends_on:
- db
volumes:
- ../blog:/var/www/html:cached
web:
image: nginx
ports:
- 80:80
depends_on:
- php
volumes:
- ../blog:/var/www/html:cached
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
mail:
build:
context: ./docker/mail
dockerfile: Dockerfile
container_name: "mail"
image: "mail"
ports:
- "8025:8025"
db:
platform: linux/x86_64 # M1チップ対応のため追記
image: mysql:8.0.28
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- ./docker/mysql/db-data:/var/lib/mysql
volumes:
test:
driver: local
mail > DockerFileの設定
FROM mailhog/mailhog:latest
nginx > default.confの設定
server {
listen 80;
root /var/www/html/public;
index index.php index.html;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
client_max_body_size 20m;
#fastcgi_read_timeout 300;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(\.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
php > DockerFileの設定
FROM php:8.1.4-fpm
ADD php.ini /usr/local/etc/php/
RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php \
&& ln -s /usr/bin/composer.phar /usr/bin/composer \
&& apt update \
&& apt install -y zip unzip libpng-dev libpq-dev \
&& curl -sL https://deb.nodesource.com/setup_12.x | bash - \
&& apt install -y nodejs \
&& docker-php-ext-install pdo_mysql
php > php.iniの設定
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.language = "Japanese"
コンテナの立ち上げ
以上までのファイルが設定できましたらコンテナを立ち上げます。
docker-compose up -d
以下のコマンドでコンテナがちゃんと立ち上がってるかを確認します。
docker-compose ps
upが表示されたらエラーなしで立ち上がっています。
Creating docker-compose_db_1 ... done
Creating mail ... done
Creating docker-compose_php_1 ... done
Creating docker-compose_web_1 ... done
ブラウザでlocalhostで確認する
上記のようにLaravelのwelcomeページが表示されると成功です。
今回は以上となります。
この記事が少しでもDockerでLaravelの開発環境を構築する際の参考になっていれば幸いです。
最近のコメント