dockerのphp:7-fpm-alpineイメージでCakePHP3を動かす
※この記事は私のブログでも掲載しています。
PHP7を試すためのdocker-compose.ymlを作って、CakePHPをいざ試そうとすると色々モジュールが足りなかったり、VirtualBoxでBoot2Dockerを動かしているために発生する問題があったので、その対処のためにイメージをカスタマイズしました。
このDockerfileで行っていることは、intlとpdo_mysqlモジュールの追加です。
あとVirtualBox固有の問題としてHost側の領域の所有者がvboxfs(user.id=1000, group.id=50)になるため、それに合わせるためにphp-fpmの実行ユーザーを作りなおしています。
(そうしないとCakePHPがtmp領域などに書き込めない)
FROM php:7-fpm-alpine
RUN set -x && \
apk add --no-cache icu-libs && \
apk add --no-cache --virtual build-dependencies icu-dev && \
NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) && \
docker-php-ext-install -j${NPROC} intl && \
docker-php-ext-install -j${NPROC} pdo_mysql && \
apk del --no-cache --purge build-dependencies && \
rm -rf /tmp/pear
RUN set -x && \
deluser www-data && \
addgroup -g 50 -S www-data && \
adduser -u 1000 -D -S -G www-data www-data
後は作成したdocker内に接続してcomposerを通してCakePHP3を展開します。
それ以降はCakePHPのチュートリアルに則って試すことができます。
$ docker exec -it cakephp3_phpfpm_1 /bin/sh
/var/www/html # curl -s https://getcomposer.org/installer | php
/var/www/html # php composer.phar create-project --prefer-dist cakephp/app bookmarker