Docker(docker-compose) を使って PHP / MySQL 開発環境構築
Docker を使えばコンテナ単位で作りたい環境をサクッと作れます。
今回は Mac、Windows それぞれで利用できる PHP/MySQL の開発環境構築手順について解説します。
Docker や Docker Compose について触ったことはあり理解はしているが、手順を忘れたので確認した方向けの記事です。
前提として Docker Desktop がインストール済みの状態を想定しています。
動作確認は以下のOSで行いました。
- macOS Catalina バージョン 10.15.17
- エディション Windows 10 Home
※ Windows の場合は WSL2 をインストールが必要です。
概要(フォルダ構成)
以下のフォルダ構成で PHP / MySQL の環境を構築します。
├ docker-compose.yml
├ html
│ └ index.php
└ php.ini
index.php では動作を確認するため phpinfo()
を出力するようにします。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<?php phpinfo(); ?>
</body>
</html>
一応 php.ini の設定も書いておきます。
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
docker-compose の作成
利用したい docker イメージや設定ファイルを指定することで動作します。
今回は php:7.2-apache
という公式のイメージを利用します。
version: '3'
services:
php:
image: php:7.2-apache
volumes:
- ./php.ini:/usr/local/etc/php/php.ini
- ./html:/var/www/html
ports:
- 8080:80
mysql:
image: mysql:5.5
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
- TZ=Asia/Tokyo
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_USER=test
- PMA_PASSWORD=test
ports:
- 4040:80
volumes:
- ./phpmyadmin/sessions:/sessions
動作確認
このコマンドで Docker Compose を使ってコンテナを作成し起動できます。簡単ですね。
docker-compose up -d
コマンドは以下の意味しています。
- docker-compose up:docker-compose.yml をもとにコンテナの構築、作成、起動を行う。
- -d:バックグラウンド実行オプション。
↓
処理が終わると mysql, phpmyadmin フォルダが作成されます。
PHPの動作チェックのため http://localhost:8080/ にアクセスします。
MySQL & phpMyAdmin の動作チェックのため http://localhost:4040/ にアクセスします。
それぞれ正しく表示されていればOKです。
まとめ
Docker Compose を使ってサクッと PHP / MySQL 環境を構築する手順について解説しました。
PHP を別バージョンで動かしたい、MySQL での検証を行いたい場面なので役立ちます。
参考になれば幸いです。
Discussion