|
ARG PHP_VERSION |
|
|
|
FROM composer:latest as composer |
|
FROM php:${PHP_VERSION}-fpm as php-fpm |
|
|
|
ARG HOME_DIR='/home/docker' |
|
ARG TOOL_COMPOSER_NORMALIZE |
|
ARG TOOL_PHP_CS_FIXER |
|
|
|
RUN apt-get update && \ |
|
apt-get install -y --no-install-recommends \ |
|
gnupg2 \ |
|
libz-dev \ |
|
libcurl4-openssl-dev \ |
|
libzip-dev \ |
|
unzip \ |
|
vim \ |
|
wget \ |
|
zip |
|
|
|
RUN docker-php-ext-configure zip |
|
RUN docker-php-ext-install opcache zip |
|
RUN pecl install pcov xdebug-3.1.6 # PHP 7.2 support |
|
RUN docker-php-ext-enable opcache pcov |
|
|
|
RUN echo "xdebug.mode=develop,debug,coverage" >> /usr/local/etc/php/conf.d/xdebug.ini && \ |
|
echo "xdebug.start_with_request = trigger" >> /usr/local/etc/php/conf.d/xdebug.ini && \ |
|
echo "xdebug.client_host = 172.17.0.1" >> /usr/local/etc/php/conf.d/xdebug.ini && \ |
|
echo "xdebug.client_port = 9003" >> /usr/local/etc/php/conf.d/xdebug.ini && \ |
|
echo "xdebug.discover_client_host = 0" >> /usr/local/etc/php/conf.d/xdebug.ini && \ |
|
echo "xdebug.idekey = PHPSTORM" >> /usr/local/etc/php/conf.d/xdebug.ini |
|
|
|
RUN echo "pcov.enabled = 1" >> /usr/local/etc/php/conf.d/pcov.ini && \ |
|
echo "pcov.directory = /app/src" >> /usr/local/etc/php/conf.d/pcov.ini && \ |
|
echo "pcov.initial.memory = 1000000" >> /usr/local/etc/php/conf.d/pcov.ini && \ |
|
echo "pcov.initial.files = 100000" >> /usr/local/etc/php/conf.d/pcov.ini |
|
|
|
# 0.14.5 compatible with php ^7.2 || ^8.0 |
|
RUN wget -O phive.phar https://github.com/phar-io/phive/releases/download/0.14.5/phive-0.14.5.phar && \ |
|
wget -O phive.phar.asc https://github.com/phar-io/phive/releases/download/0.14.5/phive-0.14.5.phar.asc && \ |
|
gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79 && \ |
|
gpg --verify phive.phar.asc phive.phar && \ |
|
chmod +x phive.phar && \ |
|
mv phive.phar /usr/local/bin/phive |
|
|
|
RUN phive install --global --trust-gpg-keys E82B2FB314E9906E php-cs-fixer:$TOOL_PHP_CS_FIXER |
|
RUN phive install --global --trust-gpg-keys C00543248C87FB13 ergebnis/composer-normalize:$TOOL_COMPOSER_NORMALIZE |
|
|
|
RUN addgroup docker && \ |
|
adduser --ingroup docker --home ${HOME_DIR} --shell /bin/sh --disabled-password --gecos "" docker && \ |
|
mkdir -p $HOME_DIR/.local/bin |
|
|
|
ENV PATH $HOME_DIR/.local/bin:$PATH |
|
COPY --from=composer /usr/bin/composer $HOME_DIR/.local/bin |
|
|
|
USER docker |
|
|
|
RUN touch ${HOME_DIR}/.bash_aliases && \ |
|
echo 'alias phpx="php -dzend_extension=xdebug.so"' >> ${HOME_DIR}/.bash_aliases |
|
|
|
WORKDIR /app |