PHP実行環境をdockerで作る

圧倒的今更感

メモだけ

ディレクトリ構成

.
├── Dockerfile
├── apache-config.conf
├── application
│   └── webroot
│       └── index.php
└── docker-compose.yml

各ファイル

Dockerfile

FROM php:5.6-apache
RUN a2enmod rewrite

EXPOSE 80

# Update the default apache site with the config we created.
ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf

apache-config.conf

<VirtualHost *:80>
#ServerName www.example.com

# ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/webroot

<Directory /var/www/html/webroot>
  # ...
</Directory>

ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

docker-compose.yml

php-web:
  build: .
  ports:
    - "80:80"
  volumes:
    - ./application:/var/www/html

application_webroot_index.php

<?php
phpinfo();

構築

$ docker-machine create --driver virtualbox --virtualbox-cpu-count 2 --virtualbox-memory 4096 php-local
$ docker-machine env php-local
$ eval "$(docker-machine env php-local)"
$ cd /path/to/workdir
$ docker-compose build
$ docker-compose up

あとは docker-machine env php-local で確認した IPにアクセス。 docker-compose.yml に他のミドルウェアとかを追記しつつ作業していく