diff --git a/php/5.6/Dockerfile b/php/5.6/Dockerfile new file mode 100644 index 0000000..16ce34e --- /dev/null +++ b/php/5.6/Dockerfile @@ -0,0 +1,96 @@ +FROM php:5.6-fpm + +LABEL maintainer="Abhijit Rakas " +LABEL org.label-schema.schema-version="1.0.0-rc1" +LABEL org.label-schema.vendor="EasyEngine" +LABEL org.label-schema.name="php5.6" + +RUN set -ex; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + imagemagick \ + less \ + libc-client-dev \ + libfreetype6-dev \ + libjpeg-dev \ + libjpeg62-turbo-dev \ + libkrb5-dev \ + libmagickwand-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libxml2-dev \ + libpng-dev \ + libzip-dev \ + mysql-client \ + ssmtp \ + unzip \ + vim \ + zip + +RUN pecl install imagick memcached-2.2.0; \ + printf "\n" | pecl install mcrypt-1.0.1; \ + printf "\n" | pecl install redis; \ + docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \ + docker-php-ext-configure zip --with-libzip; \ + docker-php-ext-configure --with-php-config=/usr/local/bin/php-config; \ + docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \ + docker-php-ext-install gd imap mysqli opcache soap zip; \ + docker-php-ext-enable imagick mcrypt redis; \ + echo "extension=memcached.so" >> /usr/local/etc/php/conf.d/memcached.ini; \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/*; + +RUN mkdir -p /usr/src/php/ext; \ + cd /usr/src/php/ext/; \ + curl -sSL -o php7.zip https://github.com/websupport-sk/pecl-memcache/archive/NON_BLOCKING_IO_php7.zip; \ + unzip php7.zip; \ + mv pecl-memcache-NON_BLOCKING_IO_php7 memcache; \ + rm -rf /tmp/pecl-memcache-php7 /usr/src/php/ext/php7.zip; \ + docker-php-ext-configure memcache --with-php-config=/usr/local/bin/php-config; \ + docker-php-ext-install memcache; + +# set recommended PHP.ini settings +# see https://secure.php.net/manual/en/opcache.installation.php +RUN { \ + echo 'opcache.memory_consumption=128'; \ + echo 'opcache.interned_strings_buffer=8'; \ + echo 'opcache.max_accelerated_files=4000'; \ + echo 'opcache.revalidate_freq=2'; \ + echo 'opcache.fast_shutdown=1'; \ + echo 'opcache.enable_cli=1'; \ + } > /usr/local/etc/php/conf.d/opcache-recommended.ini + +# Donwload and install composer +RUN curl -sSL "https://getcomposer.org/installer" | php \ + && mv composer.phar /usr/local/bin/composer + +# Install wp-cli +RUN curl -O "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ + && chmod +x wp-cli.phar \ + && mv wp-cli.phar /usr/local/bin/wp + +# Setup a config file +RUN mkdir -p /etc/wp-cli +RUN { \ + echo 'path: /var/www/htdocs'; \ + } > /etc/wp-cli/config.yml + +RUN echo "mailhub=postfix\nUseTLS=NO\nFromLineOverride=YES" > /etc/ssmtp/ssmtp.conf + +# Setup logs +RUN mkdir -p /var/log/php; \ + chown -R www-data: /var/log/php; \ + rm /usr/local/etc/php-fpm.d/*; \ + mv /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini +COPY easyengine.conf /usr/local/etc/php-fpm.d/easyengine.conf + +COPY expose_off.ini /usr/local/etc/php/conf.d/expose_off.ini +COPY bashrc /root/.bashrc +COPY bashrc /var/www/.bashrc +COPY docker-entrypoint.sh /usr/local/bin/ + +WORKDIR /var/www/htdocs +USER www-data + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["php-fpm"] diff --git a/php/bashrc b/php/5.6/bashrc similarity index 100% rename from php/bashrc rename to php/5.6/bashrc diff --git a/php/docker-entrypoint.sh b/php/5.6/docker-entrypoint.sh similarity index 100% rename from php/docker-entrypoint.sh rename to php/5.6/docker-entrypoint.sh diff --git a/php/easyengine.conf b/php/5.6/easyengine.conf similarity index 100% rename from php/easyengine.conf rename to php/5.6/easyengine.conf diff --git a/php/expose_off.ini b/php/5.6/expose_off.ini similarity index 100% rename from php/expose_off.ini rename to php/5.6/expose_off.ini diff --git a/php/Dockerfile b/php/7.2/Dockerfile similarity index 95% rename from php/Dockerfile rename to php/7.2/Dockerfile index 34aca70..05094e7 100644 --- a/php/Dockerfile +++ b/php/7.2/Dockerfile @@ -30,7 +30,7 @@ RUN set -ex; \ RUN pecl install imagick memcached; \ printf "\n" | pecl install mcrypt-1.0.1; \ printf "\n" | pecl install redis; \ - docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \ + docker-php-ext-configure gd --enable-gd-native-ttf --with-freetype-dir=/usr/include/freetype2 --with-png-dir=/usr/include --with-jpeg-dir=/usr/include \ docker-php-ext-configure zip --with-libzip; \ docker-php-ext-configure --with-php-config=/usr/local/bin/php-config; \ docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \ diff --git a/php/7.2/bashrc b/php/7.2/bashrc new file mode 100644 index 0000000..76ae8e6 --- /dev/null +++ b/php/7.2/bashrc @@ -0,0 +1,2 @@ +PS1="\`if [ \$? = 0 ]; then echo \[\e[37m\]^_^[\u@$VIRTUAL_HOST:\w]\\$ \[\e[0m\]; else echo \[\e[31m\]O_O[\u@$VIRTUAL_HOST:\w]\\$ \[\e[0m\]; fi\`" +export HISTTIMEFORMAT="%d/%m/%y %T " \ No newline at end of file diff --git a/php/7.2/docker-entrypoint.sh b/php/7.2/docker-entrypoint.sh new file mode 100755 index 0000000..bdc74b0 --- /dev/null +++ b/php/7.2/docker-entrypoint.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -euo pipefail + +exec "$@" diff --git a/php/7.2/easyengine.conf b/php/7.2/easyengine.conf new file mode 100644 index 0000000..085d39c --- /dev/null +++ b/php/7.2/easyengine.conf @@ -0,0 +1,20 @@ +[global] +error_log = /var/log/php/error.log +daemonize = no + +[www] +ping.path = /ee-admin/ping +pm.status_path = /ee-admin/status +request_terminate_timeout = 300 +user = www-data +group = www-data +pm = ondemand +pm.max_children = 20 +listen = 9000 +; if we send this to /proc/self/fd/1, it never appears +access.log = /var/log/php/access.log + +clear_env = no + +; Ensure worker stdout and stderr are sent to the main error log. +catch_workers_output = yes \ No newline at end of file diff --git a/php/7.2/expose_off.ini b/php/7.2/expose_off.ini new file mode 100644 index 0000000..1bcbd7a --- /dev/null +++ b/php/7.2/expose_off.ini @@ -0,0 +1 @@ +expose_php = Off \ No newline at end of file