読者です 読者をやめる 読者になる 読者になる

nmtysh.log

Tech系のネタや日々の独り言などを書いています。

dockerのphp:7-fpm-alpineイメージでCakePHP3を動かす

※この記事はQiitaにも掲載しています。

nmtysh.hatenablog.com

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
関連