PHP Conference Japan 2021にて、今こそ深堀りする、PHPのDockerイメージを視聴した。その時のメモ。(資料:https://speakerdeck.com/rukiadia/understand-php-docker)
公式イメージを利用すべし
まずは公式イメージを利用すること。
公式イメージタグ一覧から、イメージ選定ポイントは以下となる。
ベースイメージをどうするか
Debian / Alpine Linuxの選択肢があるが Debian が無難。
Alpine Linuxは busybox (組み込み系ディストリビューション)をもとに作成された。イメージサイズは小さいが、他のディストリビューションと比較すると挙動が違ったり互換性に欠ける面があるため、入念な検証が必要。
Webサーバが必要かどうか
Webサーバが不要であれば
※nginxは公式提供されいていないため。その場合は nginx + php-fpm とコンテナが複数必要となる。
PHP-FPMを利用するかどうか
CakePHPを動作させるDockefile例
CakePHPを動かす手順のDockerfileについて
FROM php:8.0-fpm RUN apt update # 拡張モジュールのビルドに必要なためインストールする。 RUN apt install -y git zip unzip libicu-dev # 公式の拡張モジュール操作ツールでインストールする。インストールできない拡張モジュールも存在する。 RUN docker-php-ext-install pdo_mysql intl # install composer COPY --from=composer:2.0.12 /usr/bin/composer /usr/bin/composer