docker-composeで、PHP、apache、Mysqlの環境構築を行いました。
####ディレクトリ構造
├── docker-compose.yml
├── html
├── mysql
├── php7.2
│ ├── dockerfile
│ └── php.ini
└── phpmyadmin
htmlディレクトリ内にphpファイル等の実行させたいソースを置きます。
####各ファイル
docker-compose.xml
version: '3'
services:
php:
build: ./php7.2
volumes:
- ./html:/var/www/html
ports:
- 8080:80
mysql:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=db
- MYSQL_USER=test
- MYSQL_PASSWORD=test
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_USER=test
- PMA_PASSWORD=test
links:
- mysql
ports:
- 4040:80
volumes:
- ./phpmyadmin/sessions:/sessions
dockerfile
FROM php:7.2-apache
COPY php.ini /usr/local/etc/php/
RUN apt-get update \
&& apt-get install -y libfreetype6-dev libjpeg62-turbo-
&& docker-php-ext-install pdo_mysql mysqli mbstring
php.ini
[Date]
date.timezone="Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.langage = "Japanese"
###docker-composeコマンド
ビルド
# docker-compose build
コンテナを起動
# docker-compose up -d
# docker-compose start
コンテナを停止
# docker-compose stop
##動作確認
http://localhost:8080/ にアクセスし、プログラムが実行できていることを確認する
http://localhost:4040/ にアクセスし、phpmyadminに繋がることを確認する
##覚え書き
最初は、公式のPHP,Mysqlのイメージをpullして試したのですが、それにはpdo_sqliteしか入っていないようなので、
dockerfileでpdo_mysqlもインストールしないと、PDOでのDB接続ができません。注意です!