4ce1d7f64a
These duplicated Dockerfiles will be merged onto single Dockerfile later. The same Dockerfile will check for the PHP version variable and install the necessary softwar's accordingly.
242 lines
7.1 KiB
Plaintext
242 lines
7.1 KiB
Plaintext
#
|
|
#--------------------------------------------------------------------------
|
|
# Image Setup
|
|
#--------------------------------------------------------------------------
|
|
#
|
|
# To edit the 'php-fpm' base Image, visit its repository on Github
|
|
# https://github.com/LaraDock/php-fpm
|
|
#
|
|
# To change its version, see the available Tags on the Docker Hub:
|
|
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
|
#
|
|
|
|
FROM laradock/php-fpm:1.4-v5.6
|
|
|
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|
|
|
#
|
|
#--------------------------------------------------------------------------
|
|
# Mandatory Software's Installation
|
|
#--------------------------------------------------------------------------
|
|
#
|
|
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
|
|
# are installed on the base image 'laradock/php-fpm' image. If you want
|
|
# to add more Software's or remove existing one, you need to edit the
|
|
# base image (https://github.com/LaraDock/php-fpm).
|
|
#
|
|
|
|
#
|
|
#--------------------------------------------------------------------------
|
|
# Optional Software's Installation
|
|
#--------------------------------------------------------------------------
|
|
#
|
|
# Optional Software's will only be installed if you set them to `true`
|
|
# in the `docker-compose.yml` before the build.
|
|
# Example:
|
|
# - INSTALL_ZIP_ARCHIVE=true
|
|
#
|
|
|
|
#####################################
|
|
# SOAP:
|
|
#####################################
|
|
|
|
ARG INSTALL_SOAP=false
|
|
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
|
# Install the soap extension
|
|
apt-get -y update && \
|
|
apt-get -y install libxml2-dev php-soap && \
|
|
docker-php-ext-install soap \
|
|
;fi
|
|
|
|
#####################################
|
|
# xDebug:
|
|
#####################################
|
|
|
|
ARG INSTALL_XDEBUG=false
|
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
|
# Install the xdebug extension
|
|
# pecl install xdebug && docker-php-ext-enable xdebug \
|
|
# workaround for https://github.com/docker-library/php/issues/133
|
|
# - Xdebug breaks on access to class static property
|
|
apt-get install -y php5-xdebug && \
|
|
echo "zend_extension=/usr/lib/php5/20131226/xdebug.so" > /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
|
|
;fi
|
|
|
|
# Copy xdebug configration for remote debugging
|
|
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
|
|
|
#####################################
|
|
# Blackfire:
|
|
#####################################
|
|
|
|
ARG INSTALL_BLACKFIRE=false
|
|
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
|
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
|
|
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
|
|
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
|
|
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
|
|
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
|
|
;fi
|
|
|
|
#####################################
|
|
# PHP REDIS EXTENSION FOR PHP 5
|
|
#####################################
|
|
|
|
ARG INSTALL_PHPREDIS=false
|
|
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
|
# Install Php Redis Extension
|
|
pecl install -o -f redis \
|
|
&& rm -rf /tmp/pear \
|
|
&& docker-php-ext-enable redis \
|
|
;fi
|
|
|
|
#####################################
|
|
# MongoDB:
|
|
#####################################
|
|
|
|
ARG INSTALL_MONGO=false
|
|
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
|
# Install the mongodb extension
|
|
pecl install mongodb && \
|
|
docker-php-ext-enable mongodb \
|
|
;fi
|
|
|
|
#####################################
|
|
# ZipArchive:
|
|
#####################################
|
|
|
|
ARG INSTALL_ZIP_ARCHIVE=false
|
|
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
|
# Install the zip extension
|
|
docker-php-ext-install zip \
|
|
;fi
|
|
|
|
#####################################
|
|
# bcmath:
|
|
#####################################
|
|
|
|
ARG INSTALL_BCMATH=false
|
|
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
|
# Install the bcmath extension
|
|
docker-php-ext-install bcmath \
|
|
;fi
|
|
|
|
#####################################
|
|
# PHP Memcached:
|
|
#####################################
|
|
|
|
ARG INSTALL_MEMCACHED=false
|
|
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
|
# Install the php memcached extension
|
|
pecl install memcached-2.2.0 && \
|
|
docker-php-ext-enable memcached \
|
|
;fi
|
|
|
|
#####################################
|
|
# Exif:
|
|
#####################################
|
|
|
|
ARG INSTALL_EXIF=false
|
|
RUN if [ ${INSTALL_EXIF} = true ]; then \
|
|
# Enable Exif PHP extentions requirements
|
|
docker-php-ext-install exif \
|
|
;fi
|
|
|
|
#####################################
|
|
# PHP Aerospike:
|
|
#####################################
|
|
|
|
ARG INSTALL_AEROSPIKE_EXTENSION=false
|
|
ENV INSTALL_AEROSPIKE_EXTENSION ${INSTALL_AEROSPIKE_EXTENSION}
|
|
# Copy aerospike configration for remote debugging
|
|
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
|
|
RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \
|
|
# Install the php aerospike extension
|
|
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/luciano-jr/aerospike-client-php/archive/master.tar.gz" \
|
|
&& mkdir -p aerospike-client-php \
|
|
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
|
&& ( \
|
|
cd aerospike-client-php/src/aerospike \
|
|
&& phpize \
|
|
&& ./build.sh \
|
|
&& make install \
|
|
) \
|
|
&& rm /tmp/aerospike-client-php.tar.gz \
|
|
&& docker-php-ext-enable aerospike \
|
|
;fi
|
|
|
|
#####################################
|
|
# Opcache:
|
|
#####################################
|
|
|
|
ARG INSTALL_OPCACHE=false
|
|
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
|
docker-php-ext-install opcache \
|
|
;fi
|
|
|
|
# Copy opcache configration
|
|
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
|
|
|
#####################################
|
|
# Mysqli Modifications:
|
|
#####################################
|
|
|
|
ARG INSTALL_MYSQLI=false
|
|
# MySQL extenstion is available for Php5.6 and lower only
|
|
COPY ./mysql.ini /usr/local/etc/php/conf.d/mysql.ini
|
|
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
|
|
docker-php-ext-install mysql && \
|
|
docker-php-ext-install mysqli \
|
|
;fi
|
|
|
|
#####################################
|
|
# Tokenizer Modifications:
|
|
#####################################
|
|
|
|
ARG INSTALL_TOKENIZER=false
|
|
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
|
|
docker-php-ext-install tokenizer \
|
|
;fi
|
|
|
|
#####################################
|
|
# Human Language and Character Encoding Support:
|
|
#####################################
|
|
|
|
ARG INSTALL_INTL=false
|
|
RUN if [ ${INSTALL_INTL} = true ]; then \
|
|
# Install intl and requirements
|
|
apt-get install -y zlib1g-dev libicu-dev g++ && \
|
|
docker-php-ext-configure intl && \
|
|
docker-php-ext-install intl \
|
|
;fi
|
|
|
|
#####################################
|
|
# GHOSTSCRIPT:
|
|
#####################################
|
|
|
|
ARG INSTALL_GHOSTSCRIPT=false
|
|
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
|
|
# Install the ghostscript extension for PDF editing
|
|
apt-get update && \
|
|
apt-get install -y poppler-utils ghostscript \
|
|
;fi
|
|
|
|
#
|
|
#--------------------------------------------------------------------------
|
|
# Final Touch
|
|
#--------------------------------------------------------------------------
|
|
#
|
|
|
|
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
|
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
|
|
|
#RUN rm -r /var/lib/apt/lists/*
|
|
|
|
RUN usermod -u 1000 www-data
|
|
|
|
WORKDIR /var/www
|
|
|
|
CMD ["php-fpm"]
|
|
|
|
EXPOSE 9000
|