diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 9f11b75..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.idea/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f19fbdf..c5ac100 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,196 +1,62 @@ -stages: - - build - variables: - REGISTRY: hub.alterway.fr - -before_script: - - if [[ "$CI_BUILD_REF_NAME" != master ]]; then REGISTRY="$REGISTRY/$CI_BUILD_REF_NAME"; fi - - NAMESPACE=$REGISTRY/library - -7.1-fpm: - stage: build - only: - - preprod - - master - script: - - docker build --pull -t $REGISTRY/php:7.1-fpm 7.1-fpm/ >> /dev/null - - docker push $REGISTRY/php:7.1-fpm > /dev/null - - docker tag $REGISTRY/php:7.1-fpm $NAMESPACE/php:7.1-fpm > /dev/null - - docker push $NAMESPACE/php:7.1-fpm > /dev/null - -7.1-apache: - stage: build - only: - - preprod - - master - script: - - docker build --pull -t $REGISTRY/php:7.1-apache 7.1-apache/ > /dev/null - - docker push $REGISTRY/php:7.1-apache > /dev/null - - docker tag $REGISTRY/php:7.1-apache $NAMESPACE/php:7.1-apache > /dev/null - - docker push $NAMESPACE/php:7.1-apache > /dev/null - -7.1-cli: - stage: build - only: - - preprod - - master - script: - - docker build --pull -t $REGISTRY/php:7.1-cli 7.1-cli/ > /dev/null - - docker push $REGISTRY/php:7.1-cli > /dev/null - - docker tag $REGISTRY/php:7.1-cli $NAMESPACE/php:7.1-cli > /dev/null - - docker push $NAMESPACE/php:7.1-cli > /dev/null - -7.0-fpm: - stage: build - only: - - preprod - - master - script: - - docker build --pull -t $REGISTRY/php:7.0-fpm 7.0-fpm/ >> /dev/null - - docker push $REGISTRY/php:7.0-fpm > /dev/null - - docker tag $REGISTRY/php:7.0-fpm $NAMESPACE/php:7.0-fpm > /dev/null - - docker push $NAMESPACE/php:7.0-fpm > /dev/null - -7.0-apache: - stage: build - only: - - preprod - - master - script: - - docker build --pull -t $REGISTRY/php:7.0-apache 7.0-apache/ > /dev/null - - docker push $REGISTRY/php:7.0-apache > /dev/null - - docker tag $REGISTRY/php:7.0-apache $NAMESPACE/php:7.0-apache > /dev/null - - docker push $NAMESPACE/php:7.0-apache > /dev/null + # Debug and tracing. + #CI_DEBUG_TRACE: "true" + #GIT_CURL_VERBOSE: "1" + #GIT_DEBUG_LOOKUP: "1" + #GIT_TRACE: "1" + #GIT_TRACE_PACKET: "1" + #GIT_TRANSLOOP_DEBUG: "1" + #GIT_TRANSPORT_HELPER_DEBUG: "1" -7.0-cli: - stage: build - only: - - preprod - - master - script: - - docker build --pull -t $REGISTRY/php:7.0-cli 7.0-cli/ > /dev/null - - docker push $REGISTRY/php:7.0-cli > /dev/null - - docker tag $REGISTRY/php:7.0-cli $NAMESPACE/php:7.0-cli > /dev/null - - docker push $NAMESPACE/php:7.0-cli > /dev/null -5.6-fpm: - stage: build - only: - - preprod - - master - script: - - docker build --pull -t $REGISTRY/php:5.6-fpm 5.6-fpm/ >> /dev/null - - docker push $REGISTRY/php:5.6-fpm > /dev/null - - docker tag $REGISTRY/php:5.6-fpm $NAMESPACE/php:5.6-fpm > /dev/null - - docker push $NAMESPACE/php:5.6-fpm > /dev/null - - docker tag $REGISTRY/php:5.6-fpm $REGISTRY/php:5.6-fpm-extra - - docker push $REGISTRY/php:5.6-fpm-extra - -5.6-apache: +stages: + - build + +.build_push_template: &build_push_definition stage: build only: - preprod - master script: - - docker build --pull -t $REGISTRY/php:5.6-apache 5.6-apache/ > /dev/null - - docker push $REGISTRY/php:5.6-apache > /dev/null - - docker tag $REGISTRY/php:5.6-apache $NAMESPACE/php:5.6-apache > /dev/null - - docker push $NAMESPACE/php:5.6-apache > /dev/null + - docker build --pull -t "$NAMESPACE/php:${CI_JOB_NAME}" "${CI_JOB_NAME}/" + - docker push "$NAMESPACE/php:${CI_JOB_NAME}" + - | + if [[ "$CI_BUILD_REF_NAME" = "master" ]]; then + docker tag "$NAMESPACE/php:${CI_JOB_NAME}" "$CI_REGISTRY_IMAGE:${CI_JOB_NAME}" + docker push "$CI_REGISTRY_IMAGE:${CI_JOB_NAME}" + fi -5.6-cli: - stage: build - only: - - preprod - - master - script: - - docker build --pull -t $REGISTRY/php:5.6-cli 5.6-cli/ > /dev/null - - docker push $REGISTRY/php:5.6-cli > /dev/null - - docker tag $REGISTRY/php:5.6-cli $NAMESPACE/php:5.6-cli > /dev/null - - docker push $NAMESPACE/php:5.6-cli > /dev/null +before_script: + #- if [[ "$CI_BUILD_REF_NAME" != master ]]; then echo $AW_REGISTRY_PASSWORD | docker login -u "$AW_REGISTRY_USER" --password-stdin $AW_REGISTRY; AW_REGISTRY="$AW_REGISTRY/$CI_BUILD_REF_NAME"; fi + #- if [[ "$CI_BUILD_REF_NAME" = "master" ]]; then docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY; fi + - echo $AW_REGISTRY_PASSWORD | docker login -u "$AW_REGISTRY_USER" --password-stdin $AW_REGISTRY + - echo $CI_REGISTRY_PASSWORD | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY -# 5.5-fpm: -# stage: build -# only: -# - preprod -# - master -# script: -# - docker build --pull -t $REGISTRY/php:5.5-fpm 5.5-fpm/ >> /dev/null -# - docker push $REGISTRY/php:5.5-fpm > /dev/null -# - docker tag $REGISTRY/php:5.5-fpm $NAMESPACE/php:5.5-fpm > /dev/null -# - docker push $NAMESPACE/php:5.5-fpm > /dev/null -# - docker tag $REGISTRY/php:5.5-fpm $REGISTRY/php:5.5-fpm-extra -# - docker push $REGISTRY/php:5.5-fpm-extra + - export NAMESPACE=$AW_REGISTRY/library -# 5.5-apache: -# stage: build -# only: -# - preprod -# - master -# script: -# - docker build --pull -t $REGISTRY/php:5.5-apache 5.5-apache/ > /dev/null -# - docker push $REGISTRY/php:5.5-apache > /dev/null -# - docker tag $REGISTRY/php:5.5-apache $NAMESPACE/php:5.5-apache > /dev/null -# - docker push $NAMESPACE/php:5.5-apache > /dev/null +8.1-fpm: + <<: *build_push_definition -# 5.5-cli: -# stage: build -# only: -# - preprod -# - master -# script: -# - docker build --pull -t $REGISTRY/php:5.5-cli 5.5-cli/ > /dev/null -# - docker push $REGISTRY/php:5.5-cli > /dev/null -# - docker tag $REGISTRY/php:5.5-cli $NAMESPACE/php:5.5-cli > /dev/null -# - docker push $NAMESPACE/php:5.5-cli > /dev/null +8.1-apache: + <<: *build_push_definition +8.1-cli: + <<: *build_push_definition +8.0-fpm: + <<: *build_push_definition -# 5.4-fpm: -# stage: build -# only: -# - preprod -# - master -# script: -# - docker build --pull -t $REGISTRY/php:5.4-fpm 5.4-fpm/ >> /dev/null -# - docker push $REGISTRY/php:5.4-fpm > /dev/null -# - docker tag $REGISTRY/php:5.4-fpm $NAMESPACE/php:5.4-fpm > /dev/null -# - docker push $NAMESPACE/php:5.4-fpm > /dev/null -# - docker tag $REGISTRY/php:5.4-fpm $REGISTRY/php:5.4-fpm-extra -# - docker push $REGISTRY/php:5.4-fpm-extra +8.0-apache: + <<: *build_push_definition -# 5.4-apache: -# stage: build -# only: -# - preprod -# - master -# script: -# - docker build --pull -t $REGISTRY/php:5.4-apache 5.4-apache/ > /dev/null -# - docker push $REGISTRY/php:5.4-apache > /dev/null -# - docker tag $REGISTRY/php:5.4-apache $NAMESPACE/php:5.4-apache > /dev/null -# - docker push $NAMESPACE/php:5.4-apache > /dev/null +8.0-cli: + <<: *build_push_definition -# 5.4-cli: -# stage: build -# only: -# - preprod -# - master -# script: -# - docker build --pull -t $REGISTRY/php:5.4-cli 5.4-cli/ > /dev/null -# - docker push $REGISTRY/php:5.4-cli > /dev/null -# - docker tag $REGISTRY/php:5.4-cli $NAMESPACE/php:5.4-cli > /dev/null -# - docker push $NAMESPACE/php:5.4-cli > /dev/null +7.4-fpm: + <<: *build_push_definition +7.4-apache: + <<: *build_push_definition -# 5.3-fpm: -# stage: build -# only: -# - preprod -# - master -# script: -# - docker build --pull -t $REGISTRY/php:5.3-fpm 5.3-fpm/ > /dev/null -# - docker push $REGISTRY/php:5.3-fpm > /dev/null -# - docker tag $REGISTRY/php:5.3-fpm $NAMESPACE/php:5.3-fpm > /dev/null -# - docker push $NAMESPACE/php:5.3-fpm > /dev/null -# - docker tag $REGISTRY/php:5.3-fpm $REGISTRY/php:5.3-fpm-extra -# - docker push $REGISTRY/php:5.3-fpm-extra +7.4-cli: + <<: *build_push_definition diff --git a/5.3-apache/Dockerfile b/5.3-apache/Dockerfile index 07f6fd2..84e4ef4 100644 --- a/5.3-apache/Dockerfile +++ b/5.3-apache/Dockerfile @@ -1,5 +1,5 @@ FROM debian:wheezy -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y ca-certificates curl librecode0 libsqlite3-0 libxml2 autoconf file g++ gcc libc-dev make pkg-config re2c apache2 apache2-mpm-prefork --no-install-recommends && \ diff --git a/5.3-fpm/Dockerfile b/5.3-fpm/Dockerfile index fd56af4..15b41e2 100644 --- a/5.3-fpm/Dockerfile +++ b/5.3-fpm/Dockerfile @@ -1,5 +1,5 @@ FROM debian:wheezy -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y ca-certificates curl libpcre3 librecode0 libsqlite3-0 libxml2 autoconf file g++ gcc libc-dev make pkg-config re2c --no-install-recommends && \ diff --git a/5.3-fpm/docker-entrypoint.sh b/5.3-fpm/docker-entrypoint.sh index fd1ad8d..0ddd888 100755 --- a/5.3-fpm/docker-entrypoint.sh +++ b/5.3-fpm/docker-entrypoint.sh @@ -77,4 +77,4 @@ fi # # Run -${*} \ No newline at end of file +exec "$@" \ No newline at end of file diff --git a/5.4-apache/Dockerfile b/5.4-apache/Dockerfile index 61ddb9d..e050e03 100644 --- a/5.4-apache/Dockerfile +++ b/5.4-apache/Dockerfile @@ -1,5 +1,5 @@ FROM php:5.4-apache -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ diff --git a/5.4-cli/Dockerfile b/5.4-cli/Dockerfile index 2976fc9..b14959c 100644 --- a/5.4-cli/Dockerfile +++ b/5.4-cli/Dockerfile @@ -1,5 +1,5 @@ FROM php:5.4-cli -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ diff --git a/5.4-fpm/Dockerfile b/5.4-fpm/Dockerfile index 1c24e99..899b175 100644 --- a/5.4-fpm/Dockerfile +++ b/5.4-fpm/Dockerfile @@ -1,5 +1,5 @@ FROM php:5.4-fpm -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ diff --git a/5.4-fpm/docker-entrypoint.sh b/5.4-fpm/docker-entrypoint.sh index ad9d2f3..0bd4472 100755 --- a/5.4-fpm/docker-entrypoint.sh +++ b/5.4-fpm/docker-entrypoint.sh @@ -76,4 +76,4 @@ fi # # Run -${*} \ No newline at end of file +exec "$@" \ No newline at end of file diff --git a/5.5-apache/Dockerfile b/5.5-apache/Dockerfile index 3486aad..4af904e 100644 --- a/5.5-apache/Dockerfile +++ b/5.5-apache/Dockerfile @@ -1,5 +1,5 @@ FROM php:5.5-apache -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ @@ -50,8 +50,8 @@ RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ docker-php-ext-install sockets && \ pecl install mongo && \ pecl install memcached-2.2.0 && \ - pecl install redis && \ - pecl install xdebug + pecl install redis-3.1.0 && \ + pecl install xdebug-2.5.5 ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/55 /tmp/blackfire-probe.tar.gz RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ diff --git a/5.5-cli/Dockerfile b/5.5-cli/Dockerfile index 8fcc4bb..861c21b 100644 --- a/5.5-cli/Dockerfile +++ b/5.5-cli/Dockerfile @@ -1,5 +1,5 @@ -FROM php:5.5-fpm -MAINTAINER Alterway +FROM php:5.5-cli +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ @@ -50,8 +50,9 @@ RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ docker-php-ext-install sockets && \ pecl install mongo && \ pecl install memcached-2.2.0 && \ - pecl install redis && \ - pecl install xdebug + pecl install redis-3.1.0 && \ + pecl install xdebug-2.5.0 + ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/55 /tmp/blackfire-probe.tar.gz RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ @@ -68,4 +69,4 @@ COPY docker-entrypoint.sh /entrypoint.sh WORKDIR /var/www -ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["/entrypoint.sh"] diff --git a/5.5-fpm/Dockerfile b/5.5-fpm/Dockerfile index 23b2f71..6750cdc 100644 --- a/5.5-fpm/Dockerfile +++ b/5.5-fpm/Dockerfile @@ -1,5 +1,5 @@ FROM php:5.5-fpm -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ @@ -50,8 +50,8 @@ RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ docker-php-ext-install sockets && \ pecl install mongo && \ pecl install memcached-2.2.0 && \ - pecl install redis && \ - pecl install xdebug + pecl install redis-3.1.0 && \ + pecl install xdebug-2.5.5 ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/55 /tmp/blackfire-probe.tar.gz RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ diff --git a/5.5-fpm/docker-entrypoint.sh b/5.5-fpm/docker-entrypoint.sh index ae9e30d..8b80326 100755 --- a/5.5-fpm/docker-entrypoint.sh +++ b/5.5-fpm/docker-entrypoint.sh @@ -75,4 +75,4 @@ fi # # Run -${*} \ No newline at end of file +exec "$@" \ No newline at end of file diff --git a/5.6-apache/Dockerfile b/5.6-apache/Dockerfile index e52cea9..8cf4bf5 100644 --- a/5.6-apache/Dockerfile +++ b/5.6-apache/Dockerfile @@ -1,14 +1,15 @@ FROM php:5.6-apache -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ - libpng12-dev \ + libpng-dev \ libgmp-dev \ libxml2-dev \ + libxslt-dev \ zlib1g-dev \ libncurses5-dev \ libldap2-dev \ @@ -17,7 +18,7 @@ RUN apt-get update && \ libcurl4-openssl-dev \ libssl-dev \ libsqlite3-dev \ - php-pear \ + exiftool \ curl \ ssmtp \ mysql-client \ @@ -25,7 +26,7 @@ RUN apt-get update && \ subversion \ wget && \ rm -rf /var/lib/apt/lists/* && \ - wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ chmod a+rx /usr/local/bin/composer RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ @@ -38,7 +39,7 @@ RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ docker-php-ext-install mysqli && \ docker-php-ext-install pdo_sqlite && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ docker-php-ext-install gd && \ docker-php-ext-install soap && \ docker-php-ext-install intl && \ @@ -46,14 +47,17 @@ RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ docker-php-ext-install gmp && \ docker-php-ext-install bcmath && \ docker-php-ext-install mbstring && \ + docker-php-ext-install exif && \ docker-php-ext-install zip && \ docker-php-ext-install pcntl && \ docker-php-ext-install ftp && \ docker-php-ext-install sockets && \ - pecl install mongo && \ + docker-php-ext-install xsl + +RUN pecl install mongo && \ pecl install memcached-2.2.0 && \ - pecl install redis && \ - pecl install xdebug + pecl install redis-4.3.0 && \ + pecl install xdebug-2.5.5 ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ diff --git a/5.6-cli/Dockerfile b/5.6-cli/Dockerfile index 21e1755..42506cf 100644 --- a/5.6-cli/Dockerfile +++ b/5.6-cli/Dockerfile @@ -1,12 +1,12 @@ FROM php:5.6-cli -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ - libpng12-dev \ + libpng-dev \ libgmp-dev \ libxml2-dev \ libxslt-dev \ @@ -18,7 +18,7 @@ RUN apt-get update && \ libcurl4-openssl-dev \ libssl-dev \ libsqlite3-dev \ - php-pear \ + exiftool \ curl \ ssmtp \ mysql-client \ @@ -26,7 +26,7 @@ RUN apt-get update && \ subversion \ wget && \ rm -rf /var/lib/apt/lists/* && \ - wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ chmod a+rx /usr/local/bin/composer RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ @@ -39,7 +39,7 @@ RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ docker-php-ext-install mysqli && \ docker-php-ext-install pdo_sqlite && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ docker-php-ext-install gd && \ docker-php-ext-install soap && \ docker-php-ext-install intl && \ @@ -47,15 +47,17 @@ RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ docker-php-ext-install gmp && \ docker-php-ext-install bcmath && \ docker-php-ext-install mbstring && \ + docker-php-ext-install exif && \ docker-php-ext-install zip && \ docker-php-ext-install pcntl && \ docker-php-ext-install ftp && \ docker-php-ext-install sockets && \ - docker-php-ext-install xsl && \ - pecl install mongo && \ + docker-php-ext-install xsl + +RUN pecl install mongo && \ pecl install memcached-2.2.0 && \ - pecl install redis && \ - pecl install xdebug + pecl install redis-4.3.0 && \ + pecl install xdebug-2.5.5 ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ diff --git a/5.6-fpm/Dockerfile b/5.6-fpm/Dockerfile index e31239b..7b55fa8 100644 --- a/5.6-fpm/Dockerfile +++ b/5.6-fpm/Dockerfile @@ -1,14 +1,15 @@ FROM php:5.6-fpm -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ - libpng12-dev \ + libpng-dev \ libgmp-dev \ libxml2-dev \ + libxslt-dev \ zlib1g-dev \ libncurses5-dev \ libldap2-dev \ @@ -17,7 +18,7 @@ RUN apt-get update && \ libcurl4-openssl-dev \ libssl-dev \ libsqlite3-dev \ - php-pear \ + exiftool \ curl \ ssmtp \ mysql-client \ @@ -25,7 +26,7 @@ RUN apt-get update && \ subversion \ wget && \ rm -rf /var/lib/apt/lists/* && \ - wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ chmod a+rx /usr/local/bin/composer RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ @@ -38,7 +39,7 @@ RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ docker-php-ext-install mysqli && \ docker-php-ext-install pdo_sqlite && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ docker-php-ext-install gd && \ docker-php-ext-install soap && \ docker-php-ext-install intl && \ @@ -46,14 +47,17 @@ RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ docker-php-ext-install gmp && \ docker-php-ext-install bcmath && \ docker-php-ext-install mbstring && \ + docker-php-ext-install exif && \ docker-php-ext-install zip && \ docker-php-ext-install pcntl && \ docker-php-ext-install ftp && \ docker-php-ext-install sockets && \ - pecl install mongo && \ - pecl install redis && \ - pecl install xdebug && \ - pecl install memcached-2.2.0 + docker-php-ext-install xsl + +RUN pecl install mongo && \ + pecl install memcached-2.2.0 && \ + pecl install redis-4.3.0 && \ + pecl install xdebug-2.5.5 ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ diff --git a/5.6-fpm/docker-entrypoint.sh b/5.6-fpm/docker-entrypoint.sh index c498cb3..4f1f929 100755 --- a/5.6-fpm/docker-entrypoint.sh +++ b/5.6-fpm/docker-entrypoint.sh @@ -80,4 +80,4 @@ fi # # Run -${*} \ No newline at end of file +exec "$@" \ No newline at end of file diff --git a/7.0-apache/Dockerfile b/7.0-apache/Dockerfile index fd209ba..85cd79c 100644 --- a/7.0-apache/Dockerfile +++ b/7.0-apache/Dockerfile @@ -1,12 +1,12 @@ FROM php:7.0-apache -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ - libpng12-dev \ + libpng-dev \ libgmp-dev \ libxml2-dev \ zlib1g-dev \ @@ -18,7 +18,6 @@ RUN apt-get update && \ libcurl4-openssl-dev \ libssl-dev \ libsqlite3-dev \ - php-pear \ curl \ ssmtp \ mysql-client \ @@ -26,24 +25,24 @@ RUN apt-get update && \ subversion \ wget && \ rm -rf /var/lib/apt/lists/* && \ - wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ chmod a+rx /usr/local/bin/composer RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ - docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ docker-php-ext-install mysqli && \ docker-php-ext-install pdo_sqlite && \ - docker-php-ext-install ldap && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ docker-php-ext-install soap && \ docker-php-ext-install intl && \ docker-php-ext-install mcrypt && \ - docker-php-ext-install gd && \ docker-php-ext-install gmp && \ docker-php-ext-install bcmath && \ docker-php-ext-install mbstring && \ @@ -64,7 +63,7 @@ RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ rm -Rf /tmp/zlib-1.2.11 && \ rm /tmp/zlib.tar.gz -ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/56 /tmp/blackfire-probe.tar.gz +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/70 /tmp/blackfire-probe.tar.gz RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ rm /tmp/blackfire-probe.tar.gz diff --git a/7.0-cli/Dockerfile b/7.0-cli/Dockerfile index 84f1135..333f178 100644 --- a/7.0-cli/Dockerfile +++ b/7.0-cli/Dockerfile @@ -1,12 +1,12 @@ FROM php:7.0-cli -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ - libpng12-dev \ + libpng-dev \ libgmp-dev \ libxml2-dev \ zlib1g-dev \ @@ -18,7 +18,6 @@ RUN apt-get update && \ libcurl4-openssl-dev \ libssl-dev \ libsqlite3-dev \ - php-pear \ curl \ ssmtp \ mysql-client \ @@ -26,24 +25,24 @@ RUN apt-get update && \ subversion \ wget && \ rm -rf /var/lib/apt/lists/* && \ - wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ chmod a+rx /usr/local/bin/composer RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ - docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ docker-php-ext-install mysqli && \ docker-php-ext-install pdo_sqlite && \ - docker-php-ext-install ldap && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ docker-php-ext-install soap && \ docker-php-ext-install intl && \ docker-php-ext-install mcrypt && \ - docker-php-ext-install gd && \ docker-php-ext-install gmp && \ docker-php-ext-install bcmath && \ docker-php-ext-install mbstring && \ @@ -65,7 +64,7 @@ RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ rm /tmp/zlib.tar.gz -ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/56 /tmp/blackfire-probe.tar.gz +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/70 /tmp/blackfire-probe.tar.gz RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ rm /tmp/blackfire-probe.tar.gz diff --git a/7.0-fpm/Dockerfile b/7.0-fpm/Dockerfile index 2247eae..3879681 100644 --- a/7.0-fpm/Dockerfile +++ b/7.0-fpm/Dockerfile @@ -1,12 +1,12 @@ FROM php:7.0-fpm -MAINTAINER Alterway +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ - libpng12-dev \ + libpng-dev \ libgmp-dev \ libxml2-dev \ zlib1g-dev \ @@ -18,7 +18,6 @@ RUN apt-get update && \ libcurl4-openssl-dev \ libssl-dev \ libsqlite3-dev \ - php-pear \ curl \ ssmtp \ mysql-client \ @@ -26,24 +25,24 @@ RUN apt-get update && \ subversion \ wget && \ rm -rf /var/lib/apt/lists/* && \ - wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ chmod a+rx /usr/local/bin/composer RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ - docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ docker-php-ext-install mysqli && \ docker-php-ext-install pdo_sqlite && \ - docker-php-ext-install ldap && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ docker-php-ext-install soap && \ docker-php-ext-install intl && \ docker-php-ext-install mcrypt && \ - docker-php-ext-install gd && \ docker-php-ext-install gmp && \ docker-php-ext-install bcmath && \ docker-php-ext-install mbstring && \ @@ -64,7 +63,7 @@ RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ rm -Rf /tmp/zlib-1.2.11 && \ rm /tmp/zlib.tar.gz -ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/56 /tmp/blackfire-probe.tar.gz +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/70 /tmp/blackfire-probe.tar.gz RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ rm /tmp/blackfire-probe.tar.gz diff --git a/7.0-fpm/docker-entrypoint.sh b/7.0-fpm/docker-entrypoint.sh index c498cb3..4f1f929 100755 --- a/7.0-fpm/docker-entrypoint.sh +++ b/7.0-fpm/docker-entrypoint.sh @@ -80,4 +80,4 @@ fi # # Run -${*} \ No newline at end of file +exec "$@" \ No newline at end of file diff --git a/7.1-apache/Dockerfile b/7.1-apache/Dockerfile index 53bc904..4d8fcb1 100644 --- a/7.1-apache/Dockerfile +++ b/7.1-apache/Dockerfile @@ -1,12 +1,12 @@ -FROM php:7.1-apache -MAINTAINER Alterway +FROM php:7.1-apache-stretch +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ - libpng12-dev \ + libpng-dev \ libgmp-dev \ libxml2-dev \ zlib1g-dev \ @@ -18,7 +18,6 @@ RUN apt-get update && \ libcurl4-openssl-dev \ libssl-dev \ libsqlite3-dev \ - php-pear \ curl \ ssmtp \ mysql-client \ @@ -26,24 +25,24 @@ RUN apt-get update && \ subversion \ wget && \ rm -rf /var/lib/apt/lists/* && \ - wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ chmod a+rx /usr/local/bin/composer RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ - docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ docker-php-ext-install mysqli && \ docker-php-ext-install pdo_sqlite && \ - docker-php-ext-install ldap && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ docker-php-ext-install soap && \ docker-php-ext-install intl && \ docker-php-ext-install mcrypt && \ - docker-php-ext-install gd && \ docker-php-ext-install gmp && \ docker-php-ext-install bcmath && \ docker-php-ext-install mbstring && \ @@ -64,7 +63,7 @@ RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ rm -Rf /tmp/zlib-1.2.11 && \ rm /tmp/zlib.tar.gz -ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/56 /tmp/blackfire-probe.tar.gz +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/71 /tmp/blackfire-probe.tar.gz RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ rm /tmp/blackfire-probe.tar.gz diff --git a/7.1-cli-alpine/Dockerfile b/7.1-cli-alpine/Dockerfile new file mode 100644 index 0000000..1357a23 --- /dev/null +++ b/7.1-cli-alpine/Dockerfile @@ -0,0 +1,81 @@ +FROM php:7.1-alpine +LABEL maintainer="Alterway " + +RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.6/community" >> /etc/apk/repositories && \ + echo "http://dl-cdn.alpinelinux.org/alpine/v3.6/main" >> /etc/apk/repositories && \ + apk add --update --no-cache \ + git \ + subversion \ + curl \ + wget \ + ssmtp \ + mysql-client \ + mariadb-dev \ + openldap-dev \ + libldap \ + libssl1.0 \ + libsasl \ + freetype-dev \ + libjpeg-turbo-dev \ + libmcrypt-dev \ + libpng-dev \ + libxml2-dev \ + zlib-dev \ + php7-sqlite3 \ + php7-pdo_sqlite \ + sqlite-dev \ + php7-gmp \ + gmp-dev \ + php7-pear \ + ncurses-dev \ + icu-dev \ + libmemcached-dev \ + libcurl && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ + chmod a+rx /usr/local/bin/composer + +RUN docker-php-ext-configure ldap && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install mcrypt && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + docker-php-ext-install gmp + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/71 /tmp/blackfire-probe.tar.gz +RUN apk add --update --no-cache tar gcc libc-dev make && \ + tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz && \ + tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz && \ + apk del --purge tar gcc libc-dev make + +ENV LOCALTIME Europe/Paris + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/7.1-cli-alpine/docker-entrypoint.sh b/7.1-cli-alpine/docker-entrypoint.sh new file mode 100755 index 0000000..a4aa7fc --- /dev/null +++ b/7.1-cli-alpine/docker-entrypoint.sh @@ -0,0 +1,78 @@ +#!/bin/sh +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set ssmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set ssmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf +fi + + +# +# Run + +if [[ ! -z "$1" ]]; then + exec php ${*} +else + exec php -h +fi diff --git a/7.1-cli/Dockerfile b/7.1-cli/Dockerfile index a2b4451..3660c6c 100644 --- a/7.1-cli/Dockerfile +++ b/7.1-cli/Dockerfile @@ -1,12 +1,12 @@ -FROM php:7.1-cli -MAINTAINER Alterway +FROM php:7.1-cli-stretch +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ - libpng12-dev \ + libpng-dev \ libgmp-dev \ libxml2-dev \ zlib1g-dev \ @@ -18,7 +18,6 @@ RUN apt-get update && \ libcurl4-openssl-dev \ libssl-dev \ libsqlite3-dev \ - php-pear \ curl \ ssmtp \ mysql-client \ @@ -26,24 +25,24 @@ RUN apt-get update && \ subversion \ wget && \ rm -rf /var/lib/apt/lists/* && \ - wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ chmod a+rx /usr/local/bin/composer RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ - docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ docker-php-ext-install mysqli && \ docker-php-ext-install pdo_sqlite && \ - docker-php-ext-install ldap && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ docker-php-ext-install soap && \ docker-php-ext-install intl && \ docker-php-ext-install mcrypt && \ - docker-php-ext-install gd && \ docker-php-ext-install gmp && \ docker-php-ext-install bcmath && \ docker-php-ext-install mbstring && \ @@ -64,7 +63,7 @@ RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ rm -Rf /tmp/zlib-1.2.11 && \ rm /tmp/zlib.tar.gz -ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/56 /tmp/blackfire-probe.tar.gz +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/71 /tmp/blackfire-probe.tar.gz RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ rm /tmp/blackfire-probe.tar.gz diff --git a/7.1-fpm-alpine/Dockerfile b/7.1-fpm-alpine/Dockerfile new file mode 100644 index 0000000..4c4fff4 --- /dev/null +++ b/7.1-fpm-alpine/Dockerfile @@ -0,0 +1,85 @@ +FROM php:7.1-fpm-alpine +LABEL maintainer="Alterway " + +RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.6/community" >> /etc/apk/repositories && \ + echo "http://dl-cdn.alpinelinux.org/alpine/v3.6/main" >> /etc/apk/repositories && \ + apk add --update --no-cache \ + git \ + subversion \ + curl \ + wget \ + ssmtp \ + mysql-client \ + mariadb-dev \ + openldap-dev \ + libldap \ + libssl1.0 \ + libsasl \ + freetype-dev \ + libjpeg-turbo-dev \ + libmcrypt-dev \ + libpng-dev \ + libxml2-dev \ + zlib-dev \ + php7-sqlite3 \ + php7-pdo_sqlite \ + sqlite-dev \ + php7-gmp \ + gmp-dev \ + php7-pear \ + ncurses-dev \ + icu-dev \ + libmemcached-dev \ + libcurl && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ + chmod a+rx /usr/local/bin/composer + +RUN docker-php-ext-configure ldap && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install mcrypt && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + docker-php-ext-install gmp + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/71 /tmp/blackfire-probe.tar.gz +RUN apk add --update --no-cache tar gcc libc-dev make && \ + tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz && \ + tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz && \ + apk del --purge tar gcc libc-dev make + +ENV LOCALTIME Europe/Paris +ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ + mkdir -p /usr/local/etc/php-fpm.d && \ + chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] diff --git a/7.1-fpm-alpine/docker-entrypoint.sh b/7.1-fpm-alpine/docker-entrypoint.sh new file mode 100755 index 0000000..ed41acc --- /dev/null +++ b/7.1-fpm-alpine/docker-entrypoint.sh @@ -0,0 +1,80 @@ +#!/bin/sh +set -e + + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ +fi + +# +# functions +function set_conf { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; + +# Set php.ini +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# Set phpfpm.conf +set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" +set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" +mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set ssmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set ssmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf +fi + + +# +# Run +${*} diff --git a/7.1-fpm/Dockerfile b/7.1-fpm/Dockerfile index 5bdb0d5..3f37fdd 100644 --- a/7.1-fpm/Dockerfile +++ b/7.1-fpm/Dockerfile @@ -1,12 +1,12 @@ -FROM php:7.1-fpm -MAINTAINER Alterway +FROM php:7.1-fpm-stretch +LABEL maintainer="Alterway " RUN apt-get update && \ apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ - libpng12-dev \ + libpng-dev \ libgmp-dev \ libxml2-dev \ zlib1g-dev \ @@ -18,7 +18,6 @@ RUN apt-get update && \ libcurl4-openssl-dev \ libssl-dev \ libsqlite3-dev \ - php-pear \ curl \ ssmtp \ mysql-client \ @@ -26,24 +25,24 @@ RUN apt-get update && \ subversion \ wget && \ rm -rf /var/lib/apt/lists/* && \ - wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ chmod a+rx /usr/local/bin/composer RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ - docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ - docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ docker-php-ext-install mysqli && \ docker-php-ext-install pdo_sqlite && \ - docker-php-ext-install ldap && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ docker-php-ext-install soap && \ docker-php-ext-install intl && \ docker-php-ext-install mcrypt && \ - docker-php-ext-install gd && \ docker-php-ext-install gmp && \ docker-php-ext-install bcmath && \ docker-php-ext-install mbstring && \ @@ -64,7 +63,7 @@ RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ rm -Rf /tmp/zlib-1.2.11 && \ rm /tmp/zlib.tar.gz -ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/56 /tmp/blackfire-probe.tar.gz +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/71 /tmp/blackfire-probe.tar.gz RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ rm /tmp/blackfire-probe.tar.gz diff --git a/7.1-fpm/docker-entrypoint.sh b/7.1-fpm/docker-entrypoint.sh index c498cb3..a018682 100755 --- a/7.1-fpm/docker-entrypoint.sh +++ b/7.1-fpm/docker-entrypoint.sh @@ -80,4 +80,4 @@ fi # # Run -${*} \ No newline at end of file +exec "$@" diff --git a/7.2-apache/Dockerfile b/7.2-apache/Dockerfile new file mode 100644 index 0000000..bba948a --- /dev/null +++ b/7.2-apache/Dockerfile @@ -0,0 +1,88 @@ +FROM php:7.2-apache +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/72 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV HTTPD_CONF_DIR /etc/apache2/conf-enabled/ +ENV HTTPD__DocumentRoot /var/www/html +ENV HTTPD__LogFormat '"%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + sed -i "s/DocumentRoot.*/DocumentRoot \${HTTPD__DocumentRoot}/" /etc/apache2/apache2.conf && \ + echo 'ServerName ${HOSTNAME}' > $HTTPD_CONF_DIR/00-default.conf && \ + echo 'ServerSignature Off' > /etc/apache2/conf-enabled/z-security.conf && \ + echo 'ServerTokens Minimal' >> /etc/apache2/conf-enabled/z-security.conf && \ + touch /etc/msmtprc && chmod a+w -R $HTTPD_CONF_DIR/ /etc/apache2/mods-enabled $PHP_INI_DIR/ /etc/msmtprc && \ + rm /etc/apache2/sites-enabled/000-default.conf + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/7.2-apache/docker-entrypoint.sh b/7.2-apache/docker-entrypoint.sh new file mode 100755 index 0000000..ef62ce5 --- /dev/null +++ b/7.2-apache/docker-entrypoint.sh @@ -0,0 +1,84 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# APACHE + +if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi +if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; +set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# +# Run + +if [[ ! -z "$1" ]]; then + exec ${*} +else + exec apache2-foreground +fi diff --git a/7.2-cli/Dockerfile b/7.2-cli/Dockerfile new file mode 100644 index 0000000..872c027 --- /dev/null +++ b/7.2-cli/Dockerfile @@ -0,0 +1,80 @@ +FROM php:7.2-cli +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/72 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/7.2-cli/docker-entrypoint.sh b/7.2-cli/docker-entrypoint.sh new file mode 100755 index 0000000..c77d805 --- /dev/null +++ b/7.2-cli/docker-entrypoint.sh @@ -0,0 +1,78 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run + +if [[ ! -z "$1" ]]; then + exec php ${*} +else + exec php -h +fi diff --git a/7.2-fpm/Dockerfile b/7.2-fpm/Dockerfile new file mode 100644 index 0000000..47bd9f1 --- /dev/null +++ b/7.2-fpm/Dockerfile @@ -0,0 +1,85 @@ +FROM php:7.2-fpm +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/72 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ + mkdir -p /usr/local/etc/php-fpm.d && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] + diff --git a/7.2-fpm/docker-entrypoint.sh b/7.2-fpm/docker-entrypoint.sh new file mode 100755 index 0000000..8ad787e --- /dev/null +++ b/7.2-fpm/docker-entrypoint.sh @@ -0,0 +1,83 @@ +#!/bin/bash +set -e + + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ +fi + +# +# functions +function set_conf { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; + +# Set php.ini +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# Set phpfpm.conf +set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" +set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" + +if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then + mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf +fi + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run +exec "$@" \ No newline at end of file diff --git a/7.3-apache-stretch/Dockerfile b/7.3-apache-stretch/Dockerfile new file mode 100644 index 0000000..9d310f8 --- /dev/null +++ b/7.3-apache-stretch/Dockerfile @@ -0,0 +1,89 @@ +FROM php:7.3-apache-stretch +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + curl \ + ssmtp \ + mysql-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV HTTPD_CONF_DIR /etc/apache2/conf-enabled/ +ENV HTTPD__DocumentRoot /var/www/html +ENV HTTPD__LogFormat '"%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + sed -i "s/DocumentRoot.*/DocumentRoot \${HTTPD__DocumentRoot}/" /etc/apache2/apache2.conf && \ + echo 'ServerName ${HOSTNAME}' > $HTTPD_CONF_DIR/00-default.conf && \ + echo 'ServerSignature Off' > /etc/apache2/conf-enabled/z-security.conf && \ + echo 'ServerTokens Minimal' >> /etc/apache2/conf-enabled/z-security.conf && \ + chmod a+w -R $HTTPD_CONF_DIR/ /etc/apache2/mods-enabled $PHP_INI_DIR/ && \ + rm /etc/apache2/sites-enabled/000-default.conf + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/7.3-apache-stretch/docker-entrypoint.sh b/7.3-apache-stretch/docker-entrypoint.sh new file mode 100755 index 0000000..e8f06d6 --- /dev/null +++ b/7.3-apache-stretch/docker-entrypoint.sh @@ -0,0 +1,84 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ /etc/ssmtp +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# APACHE + +if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi +if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; +set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set ssmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set ssmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf +fi + +# +# Run + +if [[ ! -z "$1" ]]; then + exec ${*} +else + exec apache2-foreground +fi diff --git a/7.3-apache/Dockerfile b/7.3-apache/Dockerfile new file mode 100644 index 0000000..dfe440b --- /dev/null +++ b/7.3-apache/Dockerfile @@ -0,0 +1,90 @@ +FROM php:7.3-apache +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV HTTPD_CONF_DIR /etc/apache2/conf-enabled/ +ENV HTTPD__DocumentRoot /var/www/html +ENV HTTPD__LogFormat '"%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + sed -i "s/DocumentRoot.*/DocumentRoot \${HTTPD__DocumentRoot}/" /etc/apache2/apache2.conf && \ + echo 'ServerName ${HOSTNAME}' > $HTTPD_CONF_DIR/00-default.conf && \ + echo 'ServerSignature Off' > /etc/apache2/conf-enabled/z-security.conf && \ + echo 'ServerTokens Minimal' >> /etc/apache2/conf-enabled/z-security.conf && \ + touch /etc/msmtprc && chmod a+w -R $HTTPD_CONF_DIR/ /etc/apache2/mods-enabled $PHP_INI_DIR/ /etc/msmtprc && \ + rm /etc/apache2/sites-enabled/000-default.conf + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/7.3-apache/docker-entrypoint.sh b/7.3-apache/docker-entrypoint.sh new file mode 100755 index 0000000..ef62ce5 --- /dev/null +++ b/7.3-apache/docker-entrypoint.sh @@ -0,0 +1,84 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# APACHE + +if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi +if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; +set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# +# Run + +if [[ ! -z "$1" ]]; then + exec ${*} +else + exec apache2-foreground +fi diff --git a/7.3-cli-stretch/Dockerfile b/7.3-cli-stretch/Dockerfile new file mode 100644 index 0000000..8b212d7 --- /dev/null +++ b/7.3-cli-stretch/Dockerfile @@ -0,0 +1,81 @@ +FROM php:7.3-cli-stretch +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + curl \ + ssmtp \ + mysql-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/7.3-cli-stretch/docker-entrypoint.sh b/7.3-cli-stretch/docker-entrypoint.sh new file mode 100755 index 0000000..8bb172d --- /dev/null +++ b/7.3-cli-stretch/docker-entrypoint.sh @@ -0,0 +1,78 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set ssmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set ssmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf +fi + + +# +# Run + +if [[ ! -z "$1" ]]; then + exec php ${*} +else + exec php -h +fi diff --git a/7.3-cli/Dockerfile b/7.3-cli/Dockerfile new file mode 100644 index 0000000..ad0d9b7 --- /dev/null +++ b/7.3-cli/Dockerfile @@ -0,0 +1,82 @@ +FROM php:7.3-cli +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/7.3-cli/docker-entrypoint.sh b/7.3-cli/docker-entrypoint.sh new file mode 100755 index 0000000..c77d805 --- /dev/null +++ b/7.3-cli/docker-entrypoint.sh @@ -0,0 +1,78 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run + +if [[ ! -z "$1" ]]; then + exec php ${*} +else + exec php -h +fi diff --git a/7.3-fpm-posix-stretch/Dockerfile b/7.3-fpm-posix-stretch/Dockerfile new file mode 100644 index 0000000..6890e90 --- /dev/null +++ b/7.3-fpm-posix-stretch/Dockerfile @@ -0,0 +1,86 @@ +FROM php:7.3-fpm-stretch +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + curl \ + ssmtp \ + mysql-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ + mkdir -p /usr/local/etc/php-fpm.d && \ + chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] + diff --git a/7.3-fpm-posix-stretch/docker-entrypoint.sh b/7.3-fpm-posix-stretch/docker-entrypoint.sh new file mode 100755 index 0000000..d66aba9 --- /dev/null +++ b/7.3-fpm-posix-stretch/docker-entrypoint.sh @@ -0,0 +1,107 @@ +#!/bin/bash +set -e + + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ +fi + +# +# functions + + +function set_conf { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + + IFS=$IFSO +} + +# Syntaxe Posix for Array and dot __env__ will do env[] and ___ will do . + +function set_conf_posix { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + + for c in `printenv|grep $1` + do + if [[ "${c,,}" == *"__env__"* ]] ;then + echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}' | awk -F"__" '{print $1 "[" $2 "]"'}` $3 `echo $c|cut -d "=" -f2`" >> $2 + elif [[ "${c,,}" == *"____"* ]] ;then + echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}' | awk -F"__" '{print $1 "[" $2 "]"'}` $3 `echo $c|cut -d "=" -f2`" >> $2 + else + echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2 + fi + done + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; + +# Set php.ini +set_conf_posix "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# Set phpfpm.conf +set_conf_posix "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" +set_conf_posix "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" + + + +if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then + mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf +fi + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set ssmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set ssmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf +fi + + +# +# Run +exec "$@" \ No newline at end of file diff --git a/7.3-fpm-posix/Dockerfile b/7.3-fpm-posix/Dockerfile new file mode 100644 index 0000000..20a71a5 --- /dev/null +++ b/7.3-fpm-posix/Dockerfile @@ -0,0 +1,87 @@ +FROM php:7.3-fpm +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ + mkdir -p /usr/local/etc/php-fpm.d && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] + diff --git a/7.3-fpm-posix/docker-entrypoint.sh b/7.3-fpm-posix/docker-entrypoint.sh new file mode 100755 index 0000000..07576c2 --- /dev/null +++ b/7.3-fpm-posix/docker-entrypoint.sh @@ -0,0 +1,107 @@ +#!/bin/bash +set -e + + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ +fi + +# +# functions + + +function set_conf { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + + IFS=$IFSO +} + +# Syntaxe Posix for Array and dot __env__ will do env[] and ___ will do . + +function set_conf_posix { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + + for c in `printenv|grep $1` + do + if [[ "${c,,}" == *"__env__"* ]] ;then + echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}' | awk -F"__" '{print $1 "[" $2 "]"'}` $3 `echo $c|cut -d "=" -f2`" >> $2 + elif [[ "${c,,}" == *"____"* ]] ;then + echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}' | awk -F"__" '{print $1 "[" $2 "]"'}` $3 `echo $c|cut -d "=" -f2`" >> $2 + else + echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2 + fi + done + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; + +# Set php.ini +set_conf_posix "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# Set phpfpm.conf +set_conf_posix "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" +set_conf_posix "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" + + + +if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then + mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf +fi + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run +exec "$@" \ No newline at end of file diff --git a/7.3-fpm-stretch/Dockerfile b/7.3-fpm-stretch/Dockerfile new file mode 100644 index 0000000..6890e90 --- /dev/null +++ b/7.3-fpm-stretch/Dockerfile @@ -0,0 +1,86 @@ +FROM php:7.3-fpm-stretch +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + curl \ + ssmtp \ + mysql-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ + mkdir -p /usr/local/etc/php-fpm.d && \ + chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] + diff --git a/7.3-fpm-stretch/docker-entrypoint.sh b/7.3-fpm-stretch/docker-entrypoint.sh new file mode 100755 index 0000000..4f1f929 --- /dev/null +++ b/7.3-fpm-stretch/docker-entrypoint.sh @@ -0,0 +1,83 @@ +#!/bin/bash +set -e + + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ +fi + +# +# functions +function set_conf { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; + +# Set php.ini +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# Set phpfpm.conf +set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" +set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" + +if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then + mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf +fi + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set ssmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set ssmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf +fi + + +# +# Run +exec "$@" \ No newline at end of file diff --git a/7.3-fpm/Dockerfile b/7.3-fpm/Dockerfile new file mode 100644 index 0000000..20a71a5 --- /dev/null +++ b/7.3-fpm/Dockerfile @@ -0,0 +1,87 @@ +FROM php:7.3-fpm +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.11 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.11 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ + mkdir -p /usr/local/etc/php-fpm.d && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] + diff --git a/7.3-fpm/docker-entrypoint.sh b/7.3-fpm/docker-entrypoint.sh new file mode 100755 index 0000000..8ad787e --- /dev/null +++ b/7.3-fpm/docker-entrypoint.sh @@ -0,0 +1,83 @@ +#!/bin/bash +set -e + + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ +fi + +# +# functions +function set_conf { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; + +# Set php.ini +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# Set phpfpm.conf +set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" +set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" + +if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then + mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf +fi + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run +exec "$@" \ No newline at end of file diff --git a/7.4-apache/Dockerfile b/7.4-apache/Dockerfile new file mode 100644 index 0000000..3e35f95 --- /dev/null +++ b/7.4-apache/Dockerfile @@ -0,0 +1,90 @@ +FROM php:7.4-apache +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.12 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.12 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/74 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV HTTPD_CONF_DIR /etc/apache2/conf-enabled/ +ENV HTTPD__DocumentRoot /var/www/html +ENV HTTPD__LogFormat '"%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + sed -i "s/DocumentRoot.*/DocumentRoot \${HTTPD__DocumentRoot}/" /etc/apache2/apache2.conf && \ + echo 'ServerName ${HOSTNAME}' > $HTTPD_CONF_DIR/00-default.conf && \ + echo 'ServerSignature Off' > /etc/apache2/conf-enabled/z-security.conf && \ + echo 'ServerTokens Minimal' >> /etc/apache2/conf-enabled/z-security.conf && \ + touch /etc/msmtprc && chmod a+w -R $HTTPD_CONF_DIR/ /etc/apache2/mods-enabled $PHP_INI_DIR/ /etc/msmtprc && \ + rm /etc/apache2/sites-enabled/000-default.conf + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/7.4-apache/docker-entrypoint.sh b/7.4-apache/docker-entrypoint.sh new file mode 100755 index 0000000..ef62ce5 --- /dev/null +++ b/7.4-apache/docker-entrypoint.sh @@ -0,0 +1,84 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# APACHE + +if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi +if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; +set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# +# Run + +if [[ ! -z "$1" ]]; then + exec ${*} +else + exec apache2-foreground +fi diff --git a/7.4-cli/Dockerfile b/7.4-cli/Dockerfile new file mode 100644 index 0000000..2bceba8 --- /dev/null +++ b/7.4-cli/Dockerfile @@ -0,0 +1,82 @@ +FROM php:7.4-cli +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.12 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.12 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/74 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/7.4-cli/docker-entrypoint.sh b/7.4-cli/docker-entrypoint.sh new file mode 100755 index 0000000..321dd55 --- /dev/null +++ b/7.4-cli/docker-entrypoint.sh @@ -0,0 +1,78 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run + +if [[ ! -z "$1" ]]; then + exec php ${*} +else + exec php -h +fi diff --git a/7.4-fpm/Dockerfile b/7.4-fpm/Dockerfile new file mode 100644 index 0000000..cd2aff4 --- /dev/null +++ b/7.4-fpm/Dockerfile @@ -0,0 +1,87 @@ +FROM php:7.4-fpm +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.12 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.12 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/74 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ + mkdir -p /usr/local/etc/php-fpm.d && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] + diff --git a/7.4-fpm/docker-entrypoint.sh b/7.4-fpm/docker-entrypoint.sh new file mode 100755 index 0000000..8ad787e --- /dev/null +++ b/7.4-fpm/docker-entrypoint.sh @@ -0,0 +1,83 @@ +#!/bin/bash +set -e + + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ +fi + +# +# functions +function set_conf { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; + +# Set php.ini +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# Set phpfpm.conf +set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" +set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" + +if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then + mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf +fi + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run +exec "$@" \ No newline at end of file diff --git a/8.0-apache/Dockerfile b/8.0-apache/Dockerfile new file mode 100644 index 0000000..7489ff7 --- /dev/null +++ b/8.0-apache/Dockerfile @@ -0,0 +1,90 @@ +FROM php:8.0-apache +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.17/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.7/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.12 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.12 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/80 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV HTTPD_CONF_DIR /etc/apache2/conf-enabled/ +ENV HTTPD__DocumentRoot /var/www/html +ENV HTTPD__LogFormat '"%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + sed -i "s/DocumentRoot.*/DocumentRoot \${HTTPD__DocumentRoot}/" /etc/apache2/apache2.conf && \ + echo 'ServerName ${HOSTNAME}' > $HTTPD_CONF_DIR/00-default.conf && \ + echo 'ServerSignature Off' > /etc/apache2/conf-enabled/z-security.conf && \ + echo 'ServerTokens Minimal' >> /etc/apache2/conf-enabled/z-security.conf && \ + touch /etc/msmtprc && chmod a+w -R $HTTPD_CONF_DIR/ /etc/apache2/mods-enabled $PHP_INI_DIR/ /etc/msmtprc && \ + rm /etc/apache2/sites-enabled/000-default.conf + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/8.0-apache/docker-entrypoint.sh b/8.0-apache/docker-entrypoint.sh new file mode 100755 index 0000000..ef62ce5 --- /dev/null +++ b/8.0-apache/docker-entrypoint.sh @@ -0,0 +1,84 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# APACHE + +if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi +if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; +set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# +# Run + +if [[ ! -z "$1" ]]; then + exec ${*} +else + exec apache2-foreground +fi diff --git a/8.0-cli/Dockerfile b/8.0-cli/Dockerfile new file mode 100644 index 0000000..1aa3787 --- /dev/null +++ b/8.0-cli/Dockerfile @@ -0,0 +1,82 @@ +FROM php:8.0-cli +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.17/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.7/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.12 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.12 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/80 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/8.0-cli/docker-entrypoint.sh b/8.0-cli/docker-entrypoint.sh new file mode 100755 index 0000000..321dd55 --- /dev/null +++ b/8.0-cli/docker-entrypoint.sh @@ -0,0 +1,78 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run + +if [[ ! -z "$1" ]]; then + exec php ${*} +else + exec php -h +fi diff --git a/8.0-fpm/Dockerfile b/8.0-fpm/Dockerfile new file mode 100644 index 0000000..44f4b19 --- /dev/null +++ b/8.0-fpm/Dockerfile @@ -0,0 +1,87 @@ +FROM php:8.0-fpm +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ + wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.12 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.12 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/80 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ + mkdir -p /usr/local/etc/php-fpm.d && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] + diff --git a/8.0-fpm/docker-entrypoint.sh b/8.0-fpm/docker-entrypoint.sh new file mode 100755 index 0000000..8ad787e --- /dev/null +++ b/8.0-fpm/docker-entrypoint.sh @@ -0,0 +1,83 @@ +#!/bin/bash +set -e + + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ +fi + +# +# functions +function set_conf { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; + +# Set php.ini +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# Set phpfpm.conf +set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" +set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" + +if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then + mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf +fi + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run +exec "$@" \ No newline at end of file diff --git a/8.1-apache/Dockerfile b/8.1-apache/Dockerfile new file mode 100644 index 0000000..0db7ba8 --- /dev/null +++ b/8.1-apache/Dockerfile @@ -0,0 +1,90 @@ +FROM php:8.1-apache +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.25/composer.phar -O /usr/local/bin/composer1 && \ + wget https://getcomposer.org/download/2.2.6/composer.phar -O /usr/local/bin/composer && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer1 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.12 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.12 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/81 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV HTTPD_CONF_DIR /etc/apache2/conf-enabled/ +ENV HTTPD__DocumentRoot /var/www/html +ENV HTTPD__LogFormat '"%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + sed -i "s/DocumentRoot.*/DocumentRoot \${HTTPD__DocumentRoot}/" /etc/apache2/apache2.conf && \ + echo 'ServerName ${HOSTNAME}' > $HTTPD_CONF_DIR/00-default.conf && \ + echo 'ServerSignature Off' > /etc/apache2/conf-enabled/z-security.conf && \ + echo 'ServerTokens Minimal' >> /etc/apache2/conf-enabled/z-security.conf && \ + touch /etc/msmtprc && chmod a+w -R $HTTPD_CONF_DIR/ /etc/apache2/mods-enabled $PHP_INI_DIR/ /etc/msmtprc && \ + rm /etc/apache2/sites-enabled/000-default.conf + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/8.1-apache/docker-entrypoint.sh b/8.1-apache/docker-entrypoint.sh new file mode 100755 index 0000000..ef62ce5 --- /dev/null +++ b/8.1-apache/docker-entrypoint.sh @@ -0,0 +1,84 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# APACHE + +if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi +if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; +set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# +# Run + +if [[ ! -z "$1" ]]; then + exec ${*} +else + exec apache2-foreground +fi diff --git a/8.1-cli/Dockerfile b/8.1-cli/Dockerfile new file mode 100644 index 0000000..7e4f73c --- /dev/null +++ b/8.1-cli/Dockerfile @@ -0,0 +1,82 @@ +FROM php:8.1-cli +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.25/composer.phar -O /usr/local/bin/composer1 && \ + wget https://getcomposer.org/download/2.2.6/composer.phar -O /usr/local/bin/composer && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer1 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.12 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.12 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/81 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/8.1-cli/docker-entrypoint.sh b/8.1-cli/docker-entrypoint.sh new file mode 100755 index 0000000..321dd55 --- /dev/null +++ b/8.1-cli/docker-entrypoint.sh @@ -0,0 +1,78 @@ +#!/bin/bash +set -e + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ +fi + +# +# functions + +function set_conf { + echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run + +if [[ ! -z "$1" ]]; then + exec php ${*} +else + exec php -h +fi diff --git a/8.1-fpm/Dockerfile b/8.1-fpm/Dockerfile new file mode 100644 index 0000000..f7c66bc --- /dev/null +++ b/8.1-fpm/Dockerfile @@ -0,0 +1,87 @@ +FROM php:8.1-fpm +LABEL maintainer="Alterway " + +RUN apt-get update && \ + apt-get install -y \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libpng-dev \ + libgmp-dev \ + libxml2-dev \ + zlib1g-dev \ + libncurses5-dev \ + libldb-dev \ + libldap2-dev \ + libicu-dev \ + libmemcached-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libsqlite3-dev \ + libzip-dev \ + libonig-dev \ + curl \ + msmtp \ + mariadb-client \ + git \ + subversion \ + wget && \ + rm -rf /var/lib/apt/lists/* && \ + wget https://getcomposer.org/download/1.10.25/composer.phar -O /usr/local/bin/composer1 && \ + wget https://getcomposer.org/download/2.2.6/composer.phar -O /usr/local/bin/composer && \ + chmod a+rx /usr/local/bin/composer /usr/local/bin/composer1 + +RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ + ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ + ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ + docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ + docker-php-ext-install ldap && \ + docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ + docker-php-ext-install pdo_mysql && \ + docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ + docker-php-ext-install mysqli && \ + docker-php-ext-install pdo_sqlite && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install gd && \ + docker-php-ext-install soap && \ + docker-php-ext-install intl && \ + docker-php-ext-install gmp && \ + docker-php-ext-install bcmath && \ + docker-php-ext-install mbstring && \ + docker-php-ext-install zip && \ + docker-php-ext-install pcntl && \ + docker-php-ext-install ftp && \ + docker-php-ext-install sockets && \ + pecl install mongodb && \ + pecl install memcached && \ + pecl install redis && \ + pecl install xdebug + +ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz +RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ + cd /tmp/zlib-1.2.12 && \ + ./configure --prefix=/usr/local/zlib && \ + make && make install && \ + rm -Rf /tmp/zlib-1.2.12 && \ + rm /tmp/zlib.tar.gz + +ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/81 /tmp/blackfire-probe.tar.gz +RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ + mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ + rm /tmp/blackfire-probe.tar.gz + +ENV LOCALTIME Europe/Paris +ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' + +RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ + echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ + mkdir -p /usr/local/etc/php-fpm.d && \ + touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ + +COPY docker-entrypoint.sh /entrypoint.sh + +WORKDIR /var/www + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["php-fpm"] + diff --git a/8.1-fpm/docker-entrypoint.sh b/8.1-fpm/docker-entrypoint.sh new file mode 100755 index 0000000..8ad787e --- /dev/null +++ b/8.1-fpm/docker-entrypoint.sh @@ -0,0 +1,83 @@ +#!/bin/bash +set -e + + +if [ "$USER" = "root" ]; then + + # set localtime + ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime + + # secure path + chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ +fi + +# +# functions +function set_conf { + echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") + for c in `printenv|grep $1`; do echo "`echo $c|cut -d "=" -f1|awk -F"$1" '{print $2}'` $3 `echo $c|cut -d "=" -f2`" >> $2; done; + IFS=$IFSO +} + +# +# PHP + +echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini +if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; + +# Set php.ini +set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" + +# Set phpfpm.conf +set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" +set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" + +if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then + mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf +fi + +# +# docker links + +# Deprecated - Set memcached server with link +if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini + echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini +elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then + rm $PHP_INI_DIR/conf.d/20-memcached.ini +fi + +# Deprecated - Set msmtp server with link +if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then + echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${$SMTP_PORT_25_TCP_ADDR} \nport ${$SMTP_PORT_25_TCP_PORT} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + +# Set memcached session save handle +if [ -n "$MEMCACHED" ]; then + if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi + + IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" + for BACKEND in "${BACKENDS[@]}"; do + SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," + done; IFS=$IFSO; + +cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini + session.save_handler = memcached + session.save_path = "${SAVE_PATH}" +EOF + +fi + +# Set msmtp server +if [ -n "$SMTP" ]; then + echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini + echo -e "defaults \nauth off \ntls off \nlogfile ~/.msmtp.log \naccount mailcatcher \nhost ${SMTP} \nport ${SMTP_PORT:-25} \nauto_from on \naccount default : mailcatcher" > /etc/msmtprc +fi + + +# +# Run +exec "$@" \ No newline at end of file diff --git a/README.md b/README.md index 00ec3bd..ae19000 100644 --- a/README.md +++ b/README.md @@ -6,20 +6,30 @@ Please see [README-php-cli.md](doc-php-cli.md) -- PHP-CLI 7.1 (docker tags: `7.1-cli`) - `docker pull alterway/php:7.1-cli` -- PHP-CLI 7.0 (docker tags: `7.0-cli`) - `docker pull alterway/php:7.0-cli` -- PHP-CLI 5.6 (docker tags: `5.6-cli`) - `docker pull alterway/php:5.6-cli` -- PHP-CLI 5.5 (docker tags: `5.5-cli`) - `docker pull alterway/php:5.5-cli` -- PHP-CLI 5.4 (docker tags: `5.4-cli`) - `docker pull alterway/php:5.4-cli` +- PHP-CLI 8.1 (docker tags: `8.1-cli`) - `docker pull alterway/php:8.1-cli` +- PHP-CLI 8.0 (docker tags: `8.0-cli`) - `docker pull alterway/php:8.0-cli` +- PHP-CLI 7.4 (docker tags: `7.4-cli`) - `docker pull alterway/php:7.4-cli` +- PHP-CLI 7.3 (docker tags: `7.3-cli`) - `docker pull alterway/php:7.3-cli` [DEPRECATED] +- PHP-CLI 7.2 (docker tags: `7.2-cli`) - `docker pull alterway/php:7.2-cli` [DEPRECATED] +- PHP-CLI 7.1 (docker tags: `7.1-cli`) - `docker pull alterway/php:7.1-cli` [DEPRECATED] +- PHP-CLI 7.0 (docker tags: `7.0-cli`) - `docker pull alterway/php:7.0-cli` [DEPRECATED] +- PHP-CLI 5.6 (docker tags: `5.6-cli`) - `docker pull alterway/php:5.6-cli` [DEPRECATED] +- PHP-CLI 5.5 (docker tags: `5.5-cli`) - `docker pull alterway/php:5.5-cli` [DEPRECATED] +- PHP-CLI 5.4 (docker tags: `5.4-cli`) - `docker pull alterway/php:5.4-cli` [DEPRECATED] ### PHP-FPM Please see [README-php-fpm.md](doc-php-fpm.md) -- PHP-FPM 7.1 (docker tags: `7.1-fpm`) - `docker pull alterway/php:7.1-fpm` -- PHP-FPM 7.0 (docker tags: `7.0-fpm`) - `docker pull alterway/php:7.0-fpm` -- PHP-FPM 5.6 (docker tags: `5.6-fpm`) - `docker pull alterway/php:5.6-fpm` -- PHP-FPM 5.5 (docker tags: `5.5-fpm`) - `docker pull alterway/php:5.5-fpm` +- PHP-FPM 8.1 (docker tags: `8.1-fpm`) - `docker pull alterway/php:8.1-fpm` +- PHP-FPM 8.0 (docker tags: `8.0-fpm`) - `docker pull alterway/php:8.0-fpm` +- PHP-FPM 7.4 (docker tags: `7.4-fpm`) - `docker pull alterway/php:7.4-fpm` +- PHP-FPM 7.3 (docker tags: `7.3-fpm`) - `docker pull alterway/php:7.3-fpm` [DEPRECATED] +- PHP-FPM 7.2 (docker tags: `7.2-fpm`) - `docker pull alterway/php:7.2-fpm` [DEPRECATED] +- PHP-FPM 7.1 (docker tags: `7.1-fpm`) - `docker pull alterway/php:7.1-fpm` [DEPRECATED] +- PHP-FPM 7.0 (docker tags: `7.0-fpm`) - `docker pull alterway/php:7.0-fpm` [DEPRECATED] +- PHP-FPM 5.6 (docker tags: `5.6-fpm`) - `docker pull alterway/php:5.6-fpm` [DEPRECATED] +- PHP-FPM 5.5 (docker tags: `5.5-fpm`) - `docker pull alterway/php:5.5-fpm` [DEPRECATED] - PHP-FPM 5.4 (docker tags: `5.4-fpm`) - `docker pull alterway/php:5.4-fpm` [DEPRECATED] - PHP-FPM 5.3.29 (docker tags: `5.3-fpm`) - `docker pull alterway/php:5.3-fpm` [DEPRECATED] @@ -27,10 +37,14 @@ Please see [README-php-fpm.md](doc-php-fpm.md) Please see [README-php-apache.md](doc-php-apache.md) -- Apache/2.4 - PHP/7.1 (docker tags: `7.1-apache`) - `docker pull alterway/php:7.1-apache` -- Apache/2.4 - PHP/7.0 (docker tags: `7.0-apache`) - `docker pull alterway/php:7.0-apache` -- Apache/2.4 - PHP/5.6 (docker tags: `5.6-apache`) - `docker pull alterway/php:5.6-apache` -- Apache/2.4 - PHP/5.5 (docker tags: `5.5-apache`) - `docker pull alterway/php:5.5-apache` +- Apache/2.4 - PHP/8.0 (docker tags: `8.0-apache`) - `docker pull alterway/php:8.0-apache` +- Apache/2.4 - PHP/7.4 (docker tags: `7.4-apache`) - `docker pull alterway/php:7.4-apache` +- Apache/2.4 - PHP/7.3 (docker tags: `7.3-apache`) - `docker pull alterway/php:7.3-apache` +- Apache/2.4 - PHP/7.2 (docker tags: `7.2-apache`) - `docker pull alterway/php:7.2-apache` [DEPRECATED] +- Apache/2.4 - PHP/7.1 (docker tags: `7.1-apache`) - `docker pull alterway/php:7.1-apache` [DEPRECATED] +- Apache/2.4 - PHP/7.0 (docker tags: `7.0-apache`) - `docker pull alterway/php:7.0-apache` [DEPRECATED] +- Apache/2.4 - PHP/5.6 (docker tags: `5.6-apache`) - `docker pull alterway/php:5.6-apache` [DEPRECATED] +- Apache/2.4 - PHP/5.5 (docker tags: `5.5-apache`) - `docker pull alterway/php:5.5-apache` [DEPRECATED] - Apache/2.4 - PHP/5.4 (docker tags: `5.4-apache`) - `docker pull alterway/php:5.4-apache` [DEPRECATED] - Apache/2.2 - PHP/5.3.29 (docker tags: `5.3-apache`) - `docker pull alterway/php:5.3-apache` [DEPRECATED] @@ -40,4 +54,4 @@ Please see [README-php-apache.md](doc-php-apache.md) ## License -View [LICENSE](LICENSE) for the software contained in this image. +View [LICENSE](LICENSE) for the software contained in this image. \ No newline at end of file diff --git a/doc-php-apache.md b/doc-php-apache.md index 517c8c7..7431480 100644 --- a/doc-php-apache.md +++ b/doc-php-apache.md @@ -2,10 +2,15 @@ ## Version available -- Apache/2.4 - PHP/7.1 (docker tags: `7.1-apache`) - `docker pull alterway/php:7.1-apache` -- Apache/2.4 - PHP/7.0 (docker tags: `7.0-apache`) - `docker pull alterway/php:7.0-apache` -- Apache/2.4 - PHP/5.6 (docker tags: `5.6-apache`) - `docker pull alterway/php:5.6-apache` -- Apache/2.4 - PHP/5.5 (docker tags: `5.5-apache`) - `docker pull alterway/php:5.5-apache` +- Apache/2.4 - PHP/8.1 (docker tags: `8.1-apache`) - `docker pull alterway/php:8.1-apache` +- Apache/2.4 - PHP/8.0 (docker tags: `8.0-apache`) - `docker pull alterway/php:8.0-apache` +- Apache/2.4 - PHP/7.4 (docker tags: `7.4-apache`) - `docker pull alterway/php:7.4-apache` +- Apache/2.4 - PHP/7.3 (docker tags: `7.3-apache`) - `docker pull alterway/php:7.3-apache` [DEPRECATED] +- Apache/2.4 - PHP/7.2 (docker tags: `7.2-apache`) - `docker pull alterway/php:7.2-apache` [DEPRECATED] +- Apache/2.4 - PHP/7.1 (docker tags: `7.1-apache`) - `docker pull alterway/php:7.1-apache` [DEPRECATED] +- Apache/2.4 - PHP/7.0 (docker tags: `7.0-apache`) - `docker pull alterway/php:7.0-apache` [DEPRECATED] +- Apache/2.4 - PHP/5.6 (docker tags: `5.6-apache`) - `docker pull alterway/php:5.6-apache` [DEPRECATED] +- Apache/2.4 - PHP/5.5 (docker tags: `5.5-apache`) - `docker pull alterway/php:5.5-apache` [DEPRECATED] - Apache/2.4 - PHP/5.4 (docker tags: `5.4-apache`) - `docker pull alterway/php:5.4-apache` [DEPRECATED] - Apache/2.2 - PHP/5.3.29 (docker tags: `5.3-apache`) - `docker pull alterway/php:5.3-apache` [DEPRECATED] @@ -41,11 +46,11 @@ Example with docker-compose : ... environment: - PHP_php5enmod: 'mcrypt memcached mysqli opcache' + PHP_php5enmod: 'memcached mysqli opcache' #### Extensions available -- php >= 5.3 : `bcmath gd gmp intl ldap mbstring mcrypt memcached mongo mysql mysqli pcntl pdo_mysql redis soap zip blackfire ftp sockets` +- php >= 5.3 : `bcmath gd gmp intl ldap mbstring memcached mongo mysql mysqli pcntl pdo_mysql redis soap zip blackfire ftp sockets` - php >= 5.4 : `xdebug` - php >= 5.5 : `opcache` - php >= 5.6 : `zlib` diff --git a/doc-php-cli.md b/doc-php-cli.md index d67e078..67ff248 100644 --- a/doc-php-cli.md +++ b/doc-php-cli.md @@ -2,11 +2,16 @@ ## Version available -- PHP 7.1 (docker tags: `7.1-cli`) - `docker pull alterway/php:7.1-cli` -- PHP 7.0 (docker tags: `7.0-cli`) - `docker pull alterway/php:7.0-cli` -- PHP 5.6 (docker tags: `5.6-cli`) - `docker pull alterway/php:5.6-cli` -- PHP 5.5 (docker tags: `5.5-cli`) - `docker pull alterway/php:5.5-cli` -- PHP 5.4 (docker tags: `5.4-cli`) - `docker pull alterway/php:5.4-cli` +- PHP 8.1 (docker tags: `8.1-cli`) - `docker pull alterway/php:8.1-cli` +- PHP 8.0 (docker tags: `8.0-cli`) - `docker pull alterway/php:8.0-cli` +- PHP 7.4 (docker tags: `7.4-cli`) - `docker pull alterway/php:7.4-cli` +- PHP 7.3 (docker tags: `7.3-cli`) - `docker pull alterway/php:7.3-cli` [DEPRECATED] +- PHP 7.2 (docker tags: `7.2-cli`) - `docker pull alterway/php:7.2-cli` [DEPRECATED] +- PHP 7.1 (docker tags: `7.1-cli`) - `docker pull alterway/php:7.1-cli` [DEPRECATED] +- PHP 7.0 (docker tags: `7.0-cli`) - `docker pull alterway/php:7.0-cli` [DEPRECATED] +- PHP 5.6 (docker tags: `5.6-cli`) - `docker pull alterway/php:5.6-cli` [DEPRECATED] +- PHP 5.5 (docker tags: `5.5-cli`) - `docker pull alterway/php:5.5-cli` [DEPRECATED] +- PHP 5.4 (docker tags: `5.4-cli`) - `docker pull alterway/php:5.4-cli` [DEPRECATED] ## Presentation @@ -56,10 +61,10 @@ Example with docker-compose : ... environment: - PHP_php5enmod: 'mcrypt memcached mysqli opcache' + PHP_php5enmod: 'memcached mysqli opcache' #### Extensions available -- php >= 5.3 : `bcmath gd gmp intl ldap mbstring mcrypt memcached mongo mysql mysqli pcntl pdo_mysql redis soap zip blackfire ftp sockets` +- php >= 5.3 : `bcmath gd gmp intl ldap mbstring memcached mongo mysql mysqli pcntl pdo_mysql redis soap zip blackfire ftp sockets` - php >= 5.4 : `xdebug` - php >= 5.5 : `opcache` - php >= 5.6 : `zlib` diff --git a/doc-php-fpm.md b/doc-php-fpm.md index da0b3dc..c3c6387 100644 --- a/doc-php-fpm.md +++ b/doc-php-fpm.md @@ -2,10 +2,15 @@ ## Version available -- PHP-FPM 7.1 (docker tags: `7.1-fpm`) - `docker pull alterway/php:7.1-fpm` -- PHP-FPM 7.0 (docker tags: `7.0-fpm`) - `docker pull alterway/php:7.0-fpm` -- PHP-FPM 5.6 (docker tags: `5.6-fpm`) - `docker pull alterway/php:5.6-fpm` -- PHP-FPM 5.5 (docker tags: `5.5-fpm`) - `docker pull alterway/php:5.5-fpm` +- PHP-FPM 8.1 (docker tags: `8.1-fpm`) - `docker pull alterway/php:8.1-fpm` +- PHP-FPM 8.0 (docker tags: `8.0-fpm`) - `docker pull alterway/php:8.0-fpm` +- PHP-FPM 7.4 (docker tags: `7.4-fpm`) - `docker pull alterway/php:7.4-fpm` +- PHP-FPM 7.3 (docker tags: `7.3-fpm`) - `docker pull alterway/php:7.3-fpm` [DEPRECATED] +- PHP-FPM 7.2 (docker tags: `7.2-fpm`) - `docker pull alterway/php:7.2-fpm` [DEPRECATED] +- PHP-FPM 7.1 (docker tags: `7.1-fpm`) - `docker pull alterway/php:7.1-fpm` [DEPRECATED] +- PHP-FPM 7.0 (docker tags: `7.0-fpm`) - `docker pull alterway/php:7.0-fpm` [DEPRECATED] +- PHP-FPM 5.6 (docker tags: `5.6-fpm`) - `docker pull alterway/php:5.6-fpm` [DEPRECATED] +- PHP-FPM 5.5 (docker tags: `5.5-fpm`) - `docker pull alterway/php:5.5-fpm` [DEPRECATED] - PHP-FPM 5.4 (docker tags: `5.4-fpm`) - `docker pull alterway/php:5.4-fpm` [DEPRECATED] - PHP-FPM 5.3.29 (docker tags: `5.3-fpm`) - `docker pull alterway/php:5.3-fpm` [DEPRECATED] @@ -41,10 +46,10 @@ Example with docker-compose : ... environment: - PHP_php5enmod: 'mcrypt memcached mysqli opcache' + PHP_php5enmod: 'memcached mysqli opcache' #### Extensions available -- php >= 5.3 : `bcmath gd gmp intl ldap mbstring mcrypt memcached mongo mysql mysqli pcntl pdo_mysql redis soap zip blackfire ftp sockets` +- php >= 5.3 : `bcmath gd gmp intl ldap mbstring memcached mongo mysql mysqli pcntl pdo_mysql redis soap zip blackfire ftp sockets` - php >= 5.4 : `xdebug` - php >= 5.5 : `opcache` - php >= 5.6 : `zlib`