クリエイター:メタボ兔

ウェブやアプリの開発者で利用する色な技術やサーバーや開発環境の設定について共有する場

PHPのバージョン別のDockerfile:バージョン202104

対応概要

ローカル開発環境用で作成したdocker-composeの改善のためにエラーの対応やintlモジュールを追加するためにphp-fpm用のDockefileを修正したので、まとめてみました。

dockerfile

php:7.1-fpm

使用しているphp-fpmのベースにあるOSがバージョンアップされた影響で7.1をサポートしてないxdebugのバージョンがインストールされるのが原因でした。

FROM php:7.1-fpm

RUN apt-get update
RUN apt-get install -y wget libjpeg-dev libfreetype6-dev unzip
RUN apt-get install -y gcc make libjpeg-dev zlib1g-dev mariadb-client libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmcrypt-dev libzip-dev libwebp-dev \
  && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/ \
  && docker-php-ext-configure intl \
  && docker-php-ext-install -j$(nproc) gd zip mysqli pdo_mysql bcmath exif intl

RUN pecl install xdebug-2.9.0 \
  && docker-php-ext-enable xdebug exif

#Composer install
COPY --from=composer /usr/bin/composer /usr/bin/composer

COPY php.ini /usr/local/etc/php/

ENV COMPOSER_ALLOW_SUPERUSER 1

ENV COMPOSER_HOME /composer

ENV PATH $PATH:/composer/vendor/bin

php:7.2-fpm

FROM php:7.2-fpm

RUN apt-get update
RUN apt-get install -y gcc make libjpeg-dev zlib1g-dev mariadb-client libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmcrypt-dev libzip-dev unzip libwebp-dev \
  && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/ \
  && docker-php-ext-configure intl \
  && docker-php-ext-install -j$(nproc) gd zip mysqli pdo_mysql bcmath exif intl

RUN pecl install xdebug \
  && docker-php-ext-enable xdebug exif

#Composer install
COPY --from=composer /usr/bin/composer /usr/bin/composer

COPY php.ini /usr/local/etc/php/

ENV COMPOSER_ALLOW_SUPERUSER 1

ENV COMPOSER_HOME /composer

ENV PATH $PATH:/composer/vendor/bin

php:7.3-fpm

FROM php:7.3-fpm

RUN apt-get update
RUN apt-get install -y gcc make libjpeg-dev zlib1g-dev mariadb-client libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmcrypt-dev libzip-dev unzip libwebp-dev \
  && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/ \
  && docker-php-ext-configure intl \
  && docker-php-ext-install -j$(nproc) gd zip mysqli pdo_mysql bcmath exif intl

RUN pecl install xdebug \
  && docker-php-ext-enable xdebug exif

#Composer install
COPY --from=composer /usr/bin/composer /usr/bin/composer

COPY php.ini /usr/local/etc/php/

ENV COMPOSER_ALLOW_SUPERUSER 1

ENV COMPOSER_HOME /composer

ENV PATH $PATH:/composer/vendor/bin

php:7.4-fpm

FROM php:7.4-fpm

RUN apt-get update \
  && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmcrypt-dev zlib1g-dev libicu-dev g++ zip libzip-dev unzip libonig-dev libwebp-dev \
  && docker-php-ext-configure gd --with-freetype --with-webp --with-jpeg \
  && docker-php-ext-configure intl \
  && docker-php-ext-install gd pdo_mysql mysqli mbstring iconv opcache exif intl

RUN pecl install xdebug grpc \
  && docker-php-ext-enable xdebug exif

#Composer install
COPY --from=composer /usr/bin/composer /usr/bin/composer

COPY php.ini /usr/local/etc/php/

ENV COMPOSER_ALLOW_SUPERUSER 1

ENV COMPOSER_HOME /composer

ENV PATH $PATH:/composer/vendor/bin