summaryrefslogtreecommitdiff
path: root/php-fpm
diff options
context:
space:
mode:
Diffstat (limited to 'php-fpm')
-rw-r--r--php-fpm/Dockerfile-56171
-rw-r--r--php-fpm/Dockerfile-70205
-rw-r--r--php-fpm/aerospike.ini3
-rw-r--r--php-fpm/laravel.ini13
-rw-r--r--php-fpm/laravel.pool.conf76
-rw-r--r--php-fpm/opcache.ini7
-rw-r--r--php-fpm/xdebug.ini13
7 files changed, 488 insertions, 0 deletions
diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56
new file mode 100644
index 0000000..5cdb920
--- /dev/null
+++ b/php-fpm/Dockerfile-56
@@ -0,0 +1,171 @@
+#
+#--------------------------------------------------------------------------
+# 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:5.6--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
+
+# 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
+ pecl install memcached && \
+ docker-php-ext-enable memcached \
+;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 \
+;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
+
+#####################################
+# Codeigniter Modifications:
+#####################################
+
+ARG CODEIGNITER=false
+RUN if [ ${CODEIGNITER} = true ]; then \
+ # Install Codeigniter PHP extentions requirements
+ docker-php-ext-install mysqli && \
+ docker-php-ext-install tokenizer \
+;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
diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70
new file mode 100644
index 0000000..93deeae
--- /dev/null
+++ b/php-fpm/Dockerfile-70
@@ -0,0 +1,205 @@
+#
+#--------------------------------------------------------------------------
+# 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 \
+;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
+
+#####################################
+# Codeigniter Modifications:
+#####################################
+
+ARG CODEIGNITER=false
+RUN if [ ${CODEIGNITER} = true ]; then \
+ # Install Codeigniter PHP extentions requirements
+ docker-php-ext-install mysqli && \
+ docker-php-ext-install tokenizer \
+;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
diff --git a/php-fpm/aerospike.ini b/php-fpm/aerospike.ini
new file mode 100644
index 0000000..f9c8f61
--- /dev/null
+++ b/php-fpm/aerospike.ini
@@ -0,0 +1,3 @@
+extension=aerospike.so
+aerospike.udf.lua_system_path=/usr/local/aerospike/lua
+aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua \ No newline at end of file
diff --git a/php-fpm/laravel.ini b/php-fpm/laravel.ini
new file mode 100644
index 0000000..486a2ca
--- /dev/null
+++ b/php-fpm/laravel.ini
@@ -0,0 +1,13 @@
+date.timezone=UTC
+display_errors=Off
+log_errors=On
+
+; Maximum amount of memory a script may consume (128MB)
+; http://php.net/memory-limit
+memory_limit = 128M
+; Maximum allowed size for uploaded files.
+; http://php.net/upload-max-filesize
+upload_max_filesize = 20M
+; Sets max size of post data allowed.
+; http://php.net/post-max-size
+post_max_size = 20M
diff --git a/php-fpm/laravel.pool.conf b/php-fpm/laravel.pool.conf
new file mode 100644
index 0000000..ab2a4f1
--- /dev/null
+++ b/php-fpm/laravel.pool.conf
@@ -0,0 +1,76 @@
+; Unix user/group of processes
+; Note: The user is mandatory. If the group is not set, the default user's group
+; will be used.
+user = www-data
+group = www-data
+
+; The address on which to accept FastCGI requests.
+; Valid syntaxes are:
+; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on
+; a specific port;
+; 'port' - to listen on a TCP socket to all addresses on a
+; specific port;
+; '/path/to/unix/socket' - to listen on a unix socket.
+; Note: This value is mandatory.
+listen = 0.0.0.0:9000
+
+; Choose how the process manager will control the number of child processes.
+; Possible Values:
+; static - a fixed number (pm.max_children) of child processes;
+; dynamic - the number of child processes are set dynamically based on the
+; following directives. With this process management, there will be
+; always at least 1 children.
+; pm.max_children - the maximum number of children that can
+; be alive at the same time.
+; pm.start_servers - the number of children created on startup.
+; pm.min_spare_servers - the minimum number of children in 'idle'
+; state (waiting to process). If the number
+; of 'idle' processes is less than this
+; number then some children will be created.
+; pm.max_spare_servers - the maximum number of children in 'idle'
+; state (waiting to process). If the number
+; of 'idle' processes is greater than this
+; number then some children will be killed.
+; ondemand - no children are created at startup. Children will be forked when
+; new requests will connect. The following parameter are used:
+; pm.max_children - the maximum number of children that
+; can be alive at the same time.
+; pm.process_idle_timeout - The number of seconds after which
+; an idle process will be killed.
+; Note: This value is mandatory.
+pm = dynamic
+
+; The number of child processes to be created when pm is set to 'static' and the
+; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
+; This value sets the limit on the number of simultaneous requests that will be
+; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
+; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
+; CGI. The below defaults are based on a server without much resources. Don't
+; forget to tweak pm.* to fit your needs.
+; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
+; Note: This value is mandatory.
+pm.max_children = 20
+
+; The number of child processes created on startup.
+; Note: Used only when pm is set to 'dynamic'
+; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
+pm.start_servers = 2
+
+; The desired minimum number of idle server processes.
+; Note: Used only when pm is set to 'dynamic'
+; Note: Mandatory when pm is set to 'dynamic'
+pm.min_spare_servers = 1
+
+; The desired maximum number of idle server processes.
+; Note: Used only when pm is set to 'dynamic'
+; Note: Mandatory when pm is set to 'dynamic'
+pm.max_spare_servers = 3
+
+;---------------------
+
+; Make specific Docker environment variables available to PHP
+env[DB_1_ENV_MYSQL_DATABASE] = $DB_1_ENV_MYSQL_DATABASE
+env[DB_1_ENV_MYSQL_USER] = $DB_1_ENV_MYSQL_USER
+env[DB_1_ENV_MYSQL_PASSWORD] = $DB_1_ENV_MYSQL_PASSWORD
+
+catch_workers_output = yes
diff --git a/php-fpm/opcache.ini b/php-fpm/opcache.ini
new file mode 100644
index 0000000..dcc670d
--- /dev/null
+++ b/php-fpm/opcache.ini
@@ -0,0 +1,7 @@
+extension=opcache.so
+opcache.enable="1"
+opcache.memory_consumption="256"
+opcache.use_cwd="0"
+opcache.fast_shutdown="1"
+opcache.max_file_size="0"
+opcache.validate_timestamps="0"
diff --git a/php-fpm/xdebug.ini b/php-fpm/xdebug.ini
new file mode 100644
index 0000000..dfe2f10
--- /dev/null
+++ b/php-fpm/xdebug.ini
@@ -0,0 +1,13 @@
+; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
+
+xdebug.remote_autostart=0
+xdebug.remote_enable=0
+xdebug.remote_connect_back=0
+xdebug.cli_color=0
+xdebug.profiler_enable=0
+xdebug.remote_handler=dbgp
+xdebug.remote_mode=req
+
+xdebug.remote_port=9000
+xdebug.remote_host=dockerhost
+xdebug.idekey=PHPSTORM