Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Dockerfile 2.67 KiB
#
# PHP-FPM image for development of LAB3 applications.
#
# This version extends from the php:7.1-fpm-alpine and adds some tools and extensions
#
FROM php:7.4.27-fpm-alpine
MAINTAINER Felipe Weckx <felipe@lab3dvlp.com>
RUN apk --no-cache add \
autoconf \
build-base \
bzip2-dev \
curl-dev \
cyrus-sasl-dev \
freetype-dev \
gettext \
git \
openssh-client \
icu-dev \
imagemagick-dev \
libjpeg-turbo-dev \
libpng-dev \
libtool \
libxml2-dev \
libxslt-dev \
openssl-dev \
pcre-dev \
oniguruma \
oniguruma-dev \
postgresql-dev \
make \
openldap-dev \
zlib-dev \
libzip-dev \
&& docker-php-ext-install -j2 \
bcmath \
bz2 \
curl \
calendar \
gd \
iconv \
intl \
ldap \
mbstring \
mysqli \
opcache \
pcntl \
pdo_mysql \
pdo_pgsql \
pgsql \
xsl \
zip \
soap \
&& pecl install apcu && docker-php-ext-enable apcu \
&& pecl install redis && docker-php-ext-enable redis \
&& pecl install imagick && docker-php-ext-enable imagick \
&& rm -rf /tmp/pear ~/.pearrc \
&& apk --no-cache del \
autoconf \
build-base \
libtool \
make
# Install Composer and PHPUnit
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
&& curl -o /usr/local/bin/phpunit -L https://phar.phpunit.de/phpunit.phar \
&& chmod +x /usr/local/bin/phpunit
# Install Ioncube
RUN curl -o /tmp/ioncube-loader.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
&& cd /usr/local \
&& tar zxvf /tmp/ioncube-loader.tar.gz \
&& rm /tmp/ioncube-loader.tar.gz
# Run as root
RUN sed -i 's/www-data/root/' /usr/local/etc/php-fpm.d/www.conf
# Default environment
ENV PHP_ENVIRONMENT production
# Default PHP Settings
ENV PHP_MEMORY_LIMIT 128M
ENV PHP_TIMEZONE America/Sao_Paulo
ENV PHP_DISPLAY_ERRORS Off
ENV PHP_ERROR_REPORTING "E_ALL & ~E_DEPRECATED & ~E_STRICT"
ENV PHP_MAX_EXECUTION_TIME 30
ENV PHP_POST_MAX_SIZE 20M
ENV PHP_UPLOAD_MAX_FILESIZE 20M
ENV PHP_MAX_FILE_UPLOADS 20
ENV PHP_FPM_MAX_CHILDREN 15
ENV PHP_FPM_START_SERVERS 2
ENV PHP_FPM_MIN_SPARE_SERVERS 1
ENV PHP_FPM_MAX_SPARE_SERVERS 5
# Copy php.ini
COPY conf/php.ini.template /usr/local/etc/php/php.ini.template
# Copy www.conf
COPY conf/www.conf.template /usr/local/etc/php/www.conf.template
# Set entrypoint
COPY scripts/entrypoint.sh /usr/local/bin
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
# CMD
CMD ["php-fpm", "-R"]