c00fe5d7e0
* multiple-projects-improvement: updated env-example and removed .env.example complete missings Seperated mysqli and tokenizer as seperate options without putting them under code igniter Apache should just go to /var/www not /var/www/public when supporting multiple projects fixed example and docker-compose.yml Fixed php-fpm variables and example Split up mysqli and tokenizer Removed homestead entirely this time Removed homestead entirely this time Removed Homestead reference in all DB containers Removed reference to homestead Fixed timezone issue in docker-compose.yml Added NGINX from env file and updated env-example Updated PHP-FPM container to accept .env variables Added workspace from env file and updated env-example Removed .env file Added env-example and adjusted docker-compose yml to support new env file Updated gitignore
227 lines
6.2 KiB
Plaintext
227 lines
6.2 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:7.0--1.2
|
|
|
|
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 \
|
|
;fi
|
|
|
|
#####################################
|
|
# PHP REDIS EXTENSION FOR PHP 7.0
|
|
#####################################
|
|
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
|
|
|
|
# Copy xdebug configration for remote debugging
|
|
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
|
|
|
#####################################
|
|
# 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
|
|
pecl install zip && \
|
|
docker-php-ext-enable 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
|
|
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
|
|
&& mkdir -p memcached \
|
|
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
|
&& ( \
|
|
cd memcached \
|
|
&& phpize \
|
|
&& ./configure \
|
|
&& make -j$(nproc) \
|
|
&& make install \
|
|
) \
|
|
&& rm -r memcached \
|
|
&& rm /tmp/memcached.tar.gz \
|
|
&& 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 && \
|
|
docker-php-ext-enable 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 && \
|
|
docker-php-ext-enable opcache \
|
|
;fi
|
|
|
|
# Copy opcache configration
|
|
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
|
|
|
#####################################
|
|
# Mysqli Modifications:
|
|
#####################################
|
|
ARG INSTALL_MYSQLI=false
|
|
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
|
|
docker-php-ext-install mysqli \
|
|
;fi
|
|
|
|
#####################################
|
|
# Tokenizer Modifications:
|
|
#####################################
|
|
|
|
ARG INSTALL_TOKENIZER=false
|
|
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
|
|
docker-php-ext-install tokenizer \
|
|
;fi
|
|
|
|
#####################################
|
|
# GHOSTSCRIPT:
|
|
#####################################
|
|
|
|
ARG GHOSTSCRIPT=false
|
|
RUN if [ ${GHOSTSCRIPT} = true ]; then \
|
|
# Install the ghostscript extension
|
|
# for PDF editing
|
|
apt-get -y 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
|