├── .gitlab-ci.yml ├── 5.3-apache ├── Dockerfile ├── apache2-foreground ├── apache2.conf ├── docker-entrypoint.sh ├── docker-php-ext-configure ├── docker-php-ext-enable └── docker-php-ext-install ├── 5.3-fpm ├── Dockerfile ├── docker-entrypoint.sh ├── docker-php-ext-configure ├── docker-php-ext-enable ├── docker-php-ext-install └── php-fpm.conf ├── 5.4-apache ├── Dockerfile └── docker-entrypoint.sh ├── 5.4-cli ├── Dockerfile └── docker-entrypoint.sh ├── 5.4-fpm ├── Dockerfile └── docker-entrypoint.sh ├── 5.5-apache ├── Dockerfile └── docker-entrypoint.sh ├── 5.5-cli ├── Dockerfile └── docker-entrypoint.sh ├── 5.5-fpm ├── Dockerfile └── docker-entrypoint.sh ├── 5.6-apache ├── Dockerfile └── docker-entrypoint.sh ├── 5.6-cli ├── Dockerfile └── docker-entrypoint.sh ├── 5.6-fpm ├── Dockerfile └── docker-entrypoint.sh ├── 7.0-apache ├── Dockerfile └── docker-entrypoint.sh ├── 7.0-cli ├── Dockerfile └── docker-entrypoint.sh ├── 7.0-fpm ├── Dockerfile └── docker-entrypoint.sh ├── 7.1-apache ├── Dockerfile └── docker-entrypoint.sh ├── 7.1-cli-alpine ├── Dockerfile └── docker-entrypoint.sh ├── 7.1-cli ├── Dockerfile └── docker-entrypoint.sh ├── 7.1-fpm-alpine ├── Dockerfile └── docker-entrypoint.sh ├── 7.1-fpm ├── Dockerfile └── docker-entrypoint.sh ├── 7.2-apache ├── Dockerfile └── docker-entrypoint.sh ├── 7.2-cli ├── Dockerfile └── docker-entrypoint.sh ├── 7.2-fpm ├── Dockerfile └── docker-entrypoint.sh ├── 7.3-apache-stretch ├── Dockerfile └── docker-entrypoint.sh ├── 7.3-apache ├── Dockerfile └── docker-entrypoint.sh ├── 7.3-cli-stretch ├── Dockerfile └── docker-entrypoint.sh ├── 7.3-cli ├── Dockerfile └── docker-entrypoint.sh ├── 7.3-fpm-posix-stretch ├── Dockerfile └── docker-entrypoint.sh ├── 7.3-fpm-posix ├── Dockerfile └── docker-entrypoint.sh ├── 7.3-fpm-stretch ├── Dockerfile └── docker-entrypoint.sh ├── 7.3-fpm ├── Dockerfile └── docker-entrypoint.sh ├── 7.4-apache ├── Dockerfile └── docker-entrypoint.sh ├── 7.4-cli ├── Dockerfile └── docker-entrypoint.sh ├── 7.4-fpm ├── Dockerfile └── docker-entrypoint.sh ├── 8.0-apache ├── Dockerfile └── docker-entrypoint.sh ├── 8.0-cli ├── Dockerfile └── docker-entrypoint.sh ├── 8.0-fpm ├── Dockerfile └── docker-entrypoint.sh ├── 8.1-apache ├── Dockerfile └── docker-entrypoint.sh ├── 8.1-cli ├── Dockerfile └── docker-entrypoint.sh ├── 8.1-fpm ├── Dockerfile └── docker-entrypoint.sh ├── LICENSE ├── README.md ├── doc-php-apache.md ├── doc-php-cli.md └── doc-php-fpm.md /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | variables: 2 | # Debug and tracing. 3 | #CI_DEBUG_TRACE: "true" 4 | #GIT_CURL_VERBOSE: "1" 5 | #GIT_DEBUG_LOOKUP: "1" 6 | #GIT_TRACE: "1" 7 | #GIT_TRACE_PACKET: "1" 8 | #GIT_TRANSLOOP_DEBUG: "1" 9 | #GIT_TRANSPORT_HELPER_DEBUG: "1" 10 | 11 | 12 | stages: 13 | - build 14 | 15 | .build_push_template: &build_push_definition 16 | stage: build 17 | only: 18 | - preprod 19 | - master 20 | script: 21 | - docker build --pull -t "$NAMESPACE/php:${CI_JOB_NAME}" "${CI_JOB_NAME}/" 22 | - docker push "$NAMESPACE/php:${CI_JOB_NAME}" 23 | - | 24 | if [[ "$CI_BUILD_REF_NAME" = "master" ]]; then 25 | docker tag "$NAMESPACE/php:${CI_JOB_NAME}" "$CI_REGISTRY_IMAGE:${CI_JOB_NAME}" 26 | docker push "$CI_REGISTRY_IMAGE:${CI_JOB_NAME}" 27 | fi 28 | 29 | before_script: 30 | #- 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 31 | #- if [[ "$CI_BUILD_REF_NAME" = "master" ]]; then docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY; fi 32 | - echo $AW_REGISTRY_PASSWORD | docker login -u "$AW_REGISTRY_USER" --password-stdin $AW_REGISTRY 33 | - echo $CI_REGISTRY_PASSWORD | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY 34 | 35 | - export NAMESPACE=$AW_REGISTRY/library 36 | 37 | 8.1-fpm: 38 | <<: *build_push_definition 39 | 40 | 8.1-apache: 41 | <<: *build_push_definition 42 | 43 | 8.1-cli: 44 | <<: *build_push_definition 45 | 46 | 8.0-fpm: 47 | <<: *build_push_definition 48 | 49 | 8.0-apache: 50 | <<: *build_push_definition 51 | 52 | 8.0-cli: 53 | <<: *build_push_definition 54 | 55 | 7.4-fpm: 56 | <<: *build_push_definition 57 | 58 | 7.4-apache: 59 | <<: *build_push_definition 60 | 61 | 7.4-cli: 62 | <<: *build_push_definition 63 | -------------------------------------------------------------------------------- /5.3-apache/apache2-foreground: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | # Apache gets grumpy about PID files pre-existing 5 | rm -f /var/run/apache2/apache2.pid 6 | 7 | exec apache2 -DFOREGROUND -------------------------------------------------------------------------------- /5.3-apache/apache2.conf: -------------------------------------------------------------------------------- 1 | # see http://sources.debian.net/src/apache2/2.4.10-1/debian/config-dir/apache2.conf 2 | 3 | PidFile /var/run/apache2/apache2.pid 4 | Timeout 300 5 | KeepAlive On 6 | MaxKeepAliveRequests 100 7 | KeepAliveTimeout 5 8 | User www-data 9 | Group www-data 10 | HostnameLookups Off 11 | ErrorLog /proc/self/fd/2 12 | LogLevel warn 13 | 14 | Include mods-enabled/*.load 15 | Include mods-enabled/*.conf 16 | 17 | # ports.conf 18 | Listen 80 19 | 20 | Listen 443 21 | 22 | 23 | Listen 443 24 | 25 | 26 | 27 | Options FollowSymLinks 28 | AllowOverride None 29 | deny from all 30 | 31 | 32 | 33 | AllowOverride All 34 | Allow from all 35 | 36 | 37 | DocumentRoot /var/www/html 38 | 39 | AccessFileName .htaccess 40 | 41 | Order allow,deny 42 | Deny from all 43 | Satisfy all 44 | 45 | 46 | LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined 47 | LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined 48 | LogFormat "%h %l %u %t \"%r\" %>s %O" common 49 | LogFormat "%{Referer}i -> %U" referer 50 | LogFormat "%{User-agent}i" agent 51 | 52 | CustomLog /proc/self/fd/1 combined 53 | 54 | 55 | SetHandler application/x-httpd-php 56 | 57 | 58 | # Include generic snippets of statements 59 | #Include conf.d/ 60 | Include conf-enabled/*.conf 61 | Include sites-enabled/*.conf -------------------------------------------------------------------------------- /5.3-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set ssmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set ssmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /5.3-apache/docker-php-ext-configure: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | ext="$1" 5 | extDir="/usr/src/php/ext/$ext" 6 | if [ -z "$ext" -o ! -d "$extDir" ]; then 7 | echo >&2 "usage: $0 ext-name [configure flags]" 8 | echo >&2 " ie: $0 gd --with-jpeg-dir=/usr/local/something" 9 | echo >&2 10 | echo >&2 'Possible values for ext-name:' 11 | echo >&2 $(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | cut -d/ -f6 | sort) 12 | exit 1 13 | fi 14 | shift 15 | 16 | set -x 17 | cd "$extDir" 18 | phpize 19 | ./configure "$@" 20 | -------------------------------------------------------------------------------- /5.3-apache/docker-php-ext-enable: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd "$(php -r 'echo ini_get("extension_dir");')" 5 | 6 | usage() { 7 | echo "usage: $0 module-name [module-name ...]" 8 | echo " ie: $0 gd mysqli" 9 | echo " $0 pdo pdo_mysql" 10 | echo 11 | echo 'Possible values for module-name:' 12 | echo $(find -maxdepth 1 -type f -name '*.so' -exec basename '{}' ';' | sort) 13 | } 14 | 15 | modules=() 16 | while [ $# -gt 0 ]; do 17 | module="$1" 18 | shift 19 | if [ -z "$module" ]; then 20 | continue 21 | fi 22 | if [ -f "$module.so" -a ! -f "$module" ]; then 23 | # allow ".so" to be optional 24 | module+='.so' 25 | fi 26 | if [ ! -f "$module" ]; then 27 | echo >&2 "error: $(readlink -f "$module") does not exist" 28 | echo >&2 29 | usage >&2 30 | exit 1 31 | fi 32 | modules+=( "$module" ) 33 | done 34 | 35 | if [ "${#modules[@]}" -eq 0 ]; then 36 | usage >&2 37 | exit 1 38 | fi 39 | 40 | for module in "${modules[@]}"; do 41 | if grep -q zend_extension_entry "$module"; then 42 | # https://wiki.php.net/internals/extensions#loading_zend_extensions 43 | line="zend_extension=$(readlink -f "$module")" 44 | else 45 | line="extension=$module" 46 | fi 47 | 48 | ext="$(basename "$module")" 49 | ext="${ext%.*}" 50 | if php -r 'exit(extension_loaded("'"$ext"'") ? 0 : 1);'; then 51 | # this isn't perfect, but it's better than nothing 52 | # (for example, 'opcache.so' presents inside PHP as 'Zend OPcache', not 'opcache') 53 | echo >&2 54 | echo >&2 "warning: $ext ($module) is already loaded!" 55 | echo >&2 56 | continue 57 | fi 58 | 59 | ini="/usr/local/etc/php/conf.d/docker-php-ext-$ext.ini" 60 | if ! grep -q "$line" "$ini" 2>/dev/null; then 61 | echo "$line" >> "$ini" 62 | fi 63 | done 64 | -------------------------------------------------------------------------------- /5.3-apache/docker-php-ext-install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd /usr/src/php/ext 5 | 6 | usage() { 7 | echo "usage: $0 ext-name [ext-name ...]" 8 | echo " ie: $0 gd mysqli" 9 | echo " $0 pdo pdo_mysql" 10 | echo 11 | echo 'if custom ./configure arguments are necessary, see docker-php-ext-configure' 12 | echo 13 | echo 'Possible values for ext-name:' 14 | echo $(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | cut -d/ -f6 | sort) 15 | } 16 | 17 | exts=() 18 | while [ $# -gt 0 ]; do 19 | ext="$1" 20 | shift 21 | if [ -z "$ext" ]; then 22 | continue 23 | fi 24 | if [ ! -d "$ext" ]; then 25 | echo >&2 "error: $(pwd -P)/$ext does not exist" 26 | echo >&2 27 | usage >&2 28 | exit 1 29 | fi 30 | exts+=( "$ext" ) 31 | done 32 | 33 | if [ "${#exts[@]}" -eq 0 ]; then 34 | usage >&2 35 | exit 1 36 | fi 37 | 38 | for ext in "${exts[@]}"; do 39 | ( 40 | cd "$ext" 41 | [ -e Makefile ] || docker-php-ext-configure "$ext" 42 | make 43 | make install 44 | find modules -maxdepth 1 -name '*.so' -exec basename '{}' ';' | xargs --no-run-if-empty --verbose docker-php-ext-enable 45 | make clean 46 | ) 47 | done 48 | -------------------------------------------------------------------------------- /5.3-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | # 36 | # docker links 37 | 38 | # Deprecated - Set memcached server with link 39 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 40 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 41 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 42 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 43 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 44 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 45 | fi 46 | 47 | # Deprecated - Set ssmtp server with link 48 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 49 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 50 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 51 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 52 | fi 53 | 54 | # Set memcached session save handle 55 | if [ -n "$MEMCACHED" ]; then 56 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 57 | 58 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 59 | for BACKEND in "${BACKENDS[@]}"; do 60 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 61 | done; IFS=$IFSO; 62 | 63 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 64 | session.save_handler = memcached 65 | session.save_path = "${SAVE_PATH}" 66 | EOF 67 | 68 | fi 69 | 70 | # Set ssmtp server 71 | if [ -n "$SMTP" ]; then 72 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 73 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 74 | fi 75 | 76 | 77 | 78 | # 79 | # Run 80 | exec "$@" -------------------------------------------------------------------------------- /5.3-fpm/docker-php-ext-configure: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | ext="$1" 5 | extDir="/usr/src/php/ext/$ext" 6 | if [ -z "$ext" -o ! -d "$extDir" ]; then 7 | echo >&2 "usage: $0 ext-name [configure flags]" 8 | echo >&2 " ie: $0 gd --with-jpeg-dir=/usr/local/something" 9 | echo >&2 10 | echo >&2 'Possible values for ext-name:' 11 | echo >&2 $(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | cut -d/ -f6 | sort) 12 | exit 1 13 | fi 14 | shift 15 | 16 | set -x 17 | cd "$extDir" 18 | phpize 19 | ./configure "$@" 20 | -------------------------------------------------------------------------------- /5.3-fpm/docker-php-ext-enable: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd "$(php -r 'echo ini_get("extension_dir");')" 5 | 6 | usage() { 7 | echo "usage: $0 module-name [module-name ...]" 8 | echo " ie: $0 gd mysqli" 9 | echo " $0 pdo pdo_mysql" 10 | echo 11 | echo 'Possible values for module-name:' 12 | echo $(find -maxdepth 1 -type f -name '*.so' -exec basename '{}' ';' | sort) 13 | } 14 | 15 | modules=() 16 | while [ $# -gt 0 ]; do 17 | module="$1" 18 | shift 19 | if [ -z "$module" ]; then 20 | continue 21 | fi 22 | if [ -f "$module.so" -a ! -f "$module" ]; then 23 | # allow ".so" to be optional 24 | module+='.so' 25 | fi 26 | if [ ! -f "$module" ]; then 27 | echo >&2 "error: $(readlink -f "$module") does not exist" 28 | echo >&2 29 | usage >&2 30 | exit 1 31 | fi 32 | modules+=( "$module" ) 33 | done 34 | 35 | if [ "${#modules[@]}" -eq 0 ]; then 36 | usage >&2 37 | exit 1 38 | fi 39 | 40 | for module in "${modules[@]}"; do 41 | if grep -q zend_extension_entry "$module"; then 42 | # https://wiki.php.net/internals/extensions#loading_zend_extensions 43 | line="zend_extension=$(readlink -f "$module")" 44 | else 45 | line="extension=$module" 46 | fi 47 | 48 | ext="$(basename "$module")" 49 | ext="${ext%.*}" 50 | if php -r 'exit(extension_loaded("'"$ext"'") ? 0 : 1);'; then 51 | # this isn't perfect, but it's better than nothing 52 | # (for example, 'opcache.so' presents inside PHP as 'Zend OPcache', not 'opcache') 53 | echo >&2 54 | echo >&2 "warning: $ext ($module) is already loaded!" 55 | echo >&2 56 | continue 57 | fi 58 | 59 | ini="/usr/local/etc/php/conf.d/docker-php-ext-$ext.ini" 60 | if ! grep -q "$line" "$ini" 2>/dev/null; then 61 | echo "$line" >> "$ini" 62 | fi 63 | done 64 | -------------------------------------------------------------------------------- /5.3-fpm/docker-php-ext-install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | cd /usr/src/php/ext 5 | 6 | usage() { 7 | echo "usage: $0 ext-name [ext-name ...]" 8 | echo " ie: $0 gd mysqli" 9 | echo " $0 pdo pdo_mysql" 10 | echo 11 | echo 'if custom ./configure arguments are necessary, see docker-php-ext-configure' 12 | echo 13 | echo 'Possible values for ext-name:' 14 | echo $(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | cut -d/ -f6 | sort) 15 | } 16 | 17 | exts=() 18 | while [ $# -gt 0 ]; do 19 | ext="$1" 20 | shift 21 | if [ -z "$ext" ]; then 22 | continue 23 | fi 24 | if [ ! -d "$ext" ]; then 25 | echo >&2 "error: $(pwd -P)/$ext does not exist" 26 | echo >&2 27 | usage >&2 28 | exit 1 29 | fi 30 | exts+=( "$ext" ) 31 | done 32 | 33 | if [ "${#exts[@]}" -eq 0 ]; then 34 | usage >&2 35 | exit 1 36 | fi 37 | 38 | for ext in "${exts[@]}"; do 39 | ( 40 | cd "$ext" 41 | [ -e Makefile ] || docker-php-ext-configure "$ext" 42 | make 43 | make install 44 | find modules -maxdepth 1 -name '*.so' -exec basename '{}' ';' | xargs --no-run-if-empty --verbose docker-php-ext-enable 45 | make clean 46 | ) 47 | done 48 | -------------------------------------------------------------------------------- /5.3-fpm/php-fpm.conf: -------------------------------------------------------------------------------- 1 | ; This file was initially adapated from the output of: (on PHP 5.3) 2 | ; grep -vE '^;|^ *$' /usr/local/etc/php-fpm.conf.default 3 | 4 | [global] 5 | 6 | error_log = /proc/self/fd/2 7 | daemonize = no 8 | 9 | [www] 10 | 11 | ; if we send this to /proc/self/fd/1, it never appears 12 | access.log = /proc/self/fd/2 13 | 14 | user = www-data 15 | group = www-data 16 | 17 | listen = 9000 18 | 19 | pm = dynamic 20 | pm.max_children = 5 21 | pm.start_servers = 2 22 | pm.min_spare_servers = 1 23 | pm.max_spare_servers = 3 24 | 25 | ;clear_env = no 26 | -------------------------------------------------------------------------------- /5.4-apache/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.4-apache 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng12-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | php-pear \ 20 | curl \ 21 | ssmtp \ 22 | mysql-client \ 23 | git \ 24 | subversion \ 25 | wget && \ 26 | rm -rf /var/lib/apt/lists/* && \ 27 | wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ 28 | chmod a+rx /usr/local/bin/composer 29 | 30 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 31 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \ 32 | docker-php-ext-install ldap && \ 33 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 34 | docker-php-ext-install pdo_mysql && \ 35 | docker-php-ext-configure mysql --with-mysql=mysqlnd && \ 36 | docker-php-ext-install mysql && \ 37 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 38 | docker-php-ext-install mysqli && \ 39 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ 40 | docker-php-ext-install gd && \ 41 | docker-php-ext-install soap && \ 42 | docker-php-ext-install intl && \ 43 | docker-php-ext-install mcrypt && \ 44 | docker-php-ext-install gmp && \ 45 | docker-php-ext-install bcmath && \ 46 | docker-php-ext-install mbstring && \ 47 | docker-php-ext-install zip && \ 48 | docker-php-ext-install pcntl && \ 49 | docker-php-ext-install ftp && \ 50 | docker-php-ext-install sockets && \ 51 | pecl install mongo && \ 52 | pecl install memcached-2.2.0 && \ 53 | pecl install redis && \ 54 | pecl install xdebug-2.4.1 55 | 56 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/54 /tmp/blackfire-probe.tar.gz 57 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 58 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 59 | rm /tmp/blackfire-probe.tar.gz 60 | 61 | ENV LOCALTIME Europe/Paris 62 | 63 | ENV HTTPD_CONF_DIR /etc/apache2/conf-enabled/ 64 | ENV HTTPD__DocumentRoot /var/www/html 65 | ENV HTTPD__LogFormat '"%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common' 66 | 67 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 68 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 69 | sed -i "s/DocumentRoot.*/DocumentRoot \${HTTPD__DocumentRoot}/" /etc/apache2/apache2.conf && \ 70 | echo 'ServerName ${HOSTNAME}' > $HTTPD_CONF_DIR/00-default.conf && \ 71 | chmod a+w -R $HTTPD_CONF_DIR/ /etc/apache2/mods-enabled/ $PHP_INI_DIR/ 72 | 73 | COPY docker-entrypoint.sh /entrypoint.sh 74 | 75 | WORKDIR /var/www 76 | 77 | ENTRYPOINT ["/entrypoint.sh"] -------------------------------------------------------------------------------- /5.4-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set ssmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set ssmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /5.4-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.4-cli 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng12-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | php-pear \ 20 | curl \ 21 | ssmtp \ 22 | mysql-client \ 23 | git \ 24 | subversion \ 25 | wget && \ 26 | rm -rf /var/lib/apt/lists/* && \ 27 | wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ 28 | chmod a+rx /usr/local/bin/composer 29 | 30 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 31 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \ 32 | docker-php-ext-install ldap && \ 33 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 34 | docker-php-ext-install pdo_mysql && \ 35 | docker-php-ext-configure mysql --with-mysql=mysqlnd && \ 36 | docker-php-ext-install mysql && \ 37 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 38 | docker-php-ext-install mysqli && \ 39 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ 40 | docker-php-ext-install gd && \ 41 | docker-php-ext-install soap && \ 42 | docker-php-ext-install intl && \ 43 | docker-php-ext-install mcrypt && \ 44 | docker-php-ext-install gmp && \ 45 | docker-php-ext-install bcmath && \ 46 | docker-php-ext-install mbstring && \ 47 | docker-php-ext-install zip && \ 48 | docker-php-ext-install pcntl && \ 49 | docker-php-ext-install ftp && \ 50 | docker-php-ext-install sockets && \ 51 | pecl install mongo && \ 52 | pecl install memcached-2.2.0 && \ 53 | pecl install redis && \ 54 | pecl install xdebug-2.4.1 55 | 56 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/54 /tmp/blackfire-probe.tar.gz 57 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 58 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 59 | rm /tmp/blackfire-probe.tar.gz 60 | 61 | ENV LOCALTIME Europe/Paris 62 | 63 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 64 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 65 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 66 | 67 | COPY docker-entrypoint.sh /entrypoint.sh 68 | 69 | WORKDIR /var/www 70 | 71 | ENTRYPOINT ["/entrypoint.sh"] -------------------------------------------------------------------------------- /5.4-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set ssmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set ssmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 68 | fi 69 | 70 | 71 | 72 | # 73 | # Run 74 | 75 | if [[ ! -z "$1" ]]; then 76 | exec php ${*} 77 | else 78 | exec php -h 79 | fi 80 | 81 | -------------------------------------------------------------------------------- /5.4-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.4-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng12-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | php-pear \ 20 | curl \ 21 | ssmtp \ 22 | mysql-client \ 23 | git \ 24 | subversion \ 25 | wget && \ 26 | rm -rf /var/lib/apt/lists/* && \ 27 | wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ 28 | chmod a+rx /usr/local/bin/composer 29 | 30 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 31 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \ 32 | docker-php-ext-install ldap && \ 33 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 34 | docker-php-ext-install pdo_mysql && \ 35 | docker-php-ext-configure mysql --with-mysql=mysqlnd && \ 36 | docker-php-ext-install mysql && \ 37 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 38 | docker-php-ext-install mysqli && \ 39 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ 40 | docker-php-ext-install gd && \ 41 | docker-php-ext-install soap && \ 42 | docker-php-ext-install intl && \ 43 | docker-php-ext-install mcrypt && \ 44 | docker-php-ext-install gmp && \ 45 | docker-php-ext-install bcmath && \ 46 | docker-php-ext-install mbstring && \ 47 | docker-php-ext-install zip && \ 48 | docker-php-ext-install pcntl && \ 49 | docker-php-ext-install ftp && \ 50 | docker-php-ext-install sockets && \ 51 | pecl install mongo && \ 52 | pecl install memcached-2.2.0 && \ 53 | pecl install redis && \ 54 | pecl install xdebug-2.4.1 55 | 56 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/54 /tmp/blackfire-probe.tar.gz 57 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 58 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 59 | rm /tmp/blackfire-probe.tar.gz 60 | 61 | ENV LOCALTIME Europe/Paris 62 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 63 | 64 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 65 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 66 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 67 | mkdir -p /usr/local/etc/php-fpm.d && \ 68 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d 69 | 70 | COPY docker-entrypoint.sh /entrypoint.sh 71 | 72 | WORKDIR /var/www 73 | 74 | ENTRYPOINT ["/entrypoint.sh"] 75 | CMD ["php-fpm"] -------------------------------------------------------------------------------- /5.4-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | # 36 | # docker links 37 | 38 | # Deprecated - Set memcached server with link 39 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 40 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 41 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 42 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 43 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 44 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 45 | fi 46 | 47 | # Deprecated - Set ssmtp server with link 48 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 49 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 50 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 51 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 52 | fi 53 | 54 | # Set memcached session save handle 55 | if [ -n "$MEMCACHED" ]; then 56 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 57 | 58 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 59 | for BACKEND in "${BACKENDS[@]}"; do 60 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 61 | done; IFS=$IFSO; 62 | 63 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 64 | session.save_handler = memcached 65 | session.save_path = "${SAVE_PATH}" 66 | EOF 67 | 68 | fi 69 | 70 | # Set ssmtp server 71 | if [ -n "$SMTP" ]; then 72 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 73 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 74 | fi 75 | 76 | 77 | # 78 | # Run 79 | exec "$@" -------------------------------------------------------------------------------- /5.5-apache/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.5-apache 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng12-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | php-pear \ 20 | curl \ 21 | ssmtp \ 22 | mysql-client \ 23 | git \ 24 | subversion \ 25 | wget && \ 26 | rm -rf /var/lib/apt/lists/* && \ 27 | wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ 28 | chmod a+rx /usr/local/bin/composer 29 | 30 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 31 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \ 32 | docker-php-ext-install ldap && \ 33 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 34 | docker-php-ext-install pdo_mysql && \ 35 | docker-php-ext-configure mysql --with-mysql=mysqlnd && \ 36 | docker-php-ext-install mysql && \ 37 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 38 | docker-php-ext-install mysqli && \ 39 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ 40 | docker-php-ext-install gd && \ 41 | docker-php-ext-install soap && \ 42 | docker-php-ext-install intl && \ 43 | docker-php-ext-install mcrypt && \ 44 | docker-php-ext-install gmp && \ 45 | docker-php-ext-install bcmath && \ 46 | docker-php-ext-install mbstring && \ 47 | docker-php-ext-install zip && \ 48 | docker-php-ext-install pcntl && \ 49 | docker-php-ext-install ftp && \ 50 | docker-php-ext-install sockets && \ 51 | pecl install mongo && \ 52 | pecl install memcached-2.2.0 && \ 53 | pecl install redis-3.1.0 && \ 54 | pecl install xdebug-2.5.5 55 | 56 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/55 /tmp/blackfire-probe.tar.gz 57 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 58 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 59 | rm /tmp/blackfire-probe.tar.gz 60 | 61 | ENV LOCALTIME Europe/Paris 62 | 63 | ENV HTTPD_CONF_DIR /etc/apache2/conf-enabled/ 64 | ENV HTTPD__DocumentRoot /var/www/html 65 | ENV HTTPD__LogFormat '"%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common' 66 | 67 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 68 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 69 | sed -i "s/DocumentRoot.*/DocumentRoot \${HTTPD__DocumentRoot}/" /etc/apache2/apache2.conf && \ 70 | echo 'ServerName ${HOSTNAME}' > $HTTPD_CONF_DIR/00-default.conf && \ 71 | chmod a+w -R $HTTPD_CONF_DIR/ /etc/apache2/mods-enabled/ $PHP_INI_DIR/ 72 | 73 | COPY docker-entrypoint.sh /entrypoint.sh 74 | 75 | WORKDIR /var/www 76 | 77 | ENTRYPOINT ["/entrypoint.sh"] -------------------------------------------------------------------------------- /5.5-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set ssmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set ssmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /5.5-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.5-cli 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng12-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | php-pear \ 20 | curl \ 21 | ssmtp \ 22 | mysql-client \ 23 | git \ 24 | subversion \ 25 | wget && \ 26 | rm -rf /var/lib/apt/lists/* && \ 27 | wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ 28 | chmod a+rx /usr/local/bin/composer 29 | 30 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 31 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \ 32 | docker-php-ext-install ldap && \ 33 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 34 | docker-php-ext-install pdo_mysql && \ 35 | docker-php-ext-configure mysql --with-mysql=mysqlnd && \ 36 | docker-php-ext-install mysql && \ 37 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 38 | docker-php-ext-install mysqli && \ 39 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ 40 | docker-php-ext-install gd && \ 41 | docker-php-ext-install soap && \ 42 | docker-php-ext-install intl && \ 43 | docker-php-ext-install mcrypt && \ 44 | docker-php-ext-install gmp && \ 45 | docker-php-ext-install bcmath && \ 46 | docker-php-ext-install mbstring && \ 47 | docker-php-ext-install zip && \ 48 | docker-php-ext-install pcntl && \ 49 | docker-php-ext-install ftp && \ 50 | docker-php-ext-install sockets && \ 51 | pecl install mongo && \ 52 | pecl install memcached-2.2.0 && \ 53 | pecl install redis-3.1.0 && \ 54 | pecl install xdebug-2.5.0 55 | 56 | 57 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/55 /tmp/blackfire-probe.tar.gz 58 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 59 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 60 | rm /tmp/blackfire-probe.tar.gz 61 | 62 | ENV LOCALTIME Europe/Paris 63 | 64 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 65 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 66 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 67 | 68 | COPY docker-entrypoint.sh /entrypoint.sh 69 | 70 | WORKDIR /var/www 71 | 72 | ENTRYPOINT ["/entrypoint.sh"] 73 | -------------------------------------------------------------------------------- /5.5-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set ssmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set ssmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 68 | fi 69 | 70 | # 71 | # Run 72 | 73 | if [[ ! -z "$1" ]]; then 74 | exec php ${*} 75 | else 76 | exec php -h 77 | fi 78 | -------------------------------------------------------------------------------- /5.5-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.5-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng12-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | php-pear \ 20 | curl \ 21 | ssmtp \ 22 | mysql-client \ 23 | git \ 24 | subversion \ 25 | wget && \ 26 | rm -rf /var/lib/apt/lists/* && \ 27 | wget https://getcomposer.org/download/1.2.4/composer.phar -O /usr/local/bin/composer && \ 28 | chmod a+rx /usr/local/bin/composer 29 | 30 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 31 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \ 32 | docker-php-ext-install ldap && \ 33 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 34 | docker-php-ext-install pdo_mysql && \ 35 | docker-php-ext-configure mysql --with-mysql=mysqlnd && \ 36 | docker-php-ext-install mysql && \ 37 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 38 | docker-php-ext-install mysqli && \ 39 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/lib && \ 40 | docker-php-ext-install gd && \ 41 | docker-php-ext-install soap && \ 42 | docker-php-ext-install intl && \ 43 | docker-php-ext-install mcrypt && \ 44 | docker-php-ext-install gmp && \ 45 | docker-php-ext-install bcmath && \ 46 | docker-php-ext-install mbstring && \ 47 | docker-php-ext-install zip && \ 48 | docker-php-ext-install pcntl && \ 49 | docker-php-ext-install ftp && \ 50 | docker-php-ext-install sockets && \ 51 | pecl install mongo && \ 52 | pecl install memcached-2.2.0 && \ 53 | pecl install redis-3.1.0 && \ 54 | pecl install xdebug-2.5.5 55 | 56 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/55 /tmp/blackfire-probe.tar.gz 57 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 58 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 59 | rm /tmp/blackfire-probe.tar.gz 60 | 61 | ENV LOCALTIME Europe/Paris 62 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 63 | 64 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 65 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 66 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 67 | mkdir -p /usr/local/etc/php-fpm.d && \ 68 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d 69 | 70 | COPY docker-entrypoint.sh /entrypoint.sh 71 | 72 | WORKDIR /var/www 73 | 74 | ENTRYPOINT ["/entrypoint.sh"] 75 | CMD ["php-fpm"] -------------------------------------------------------------------------------- /5.5-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | # 36 | # docker links 37 | 38 | # Deprecated - Set memcached server with link 39 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 40 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 41 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 42 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 43 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 44 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 45 | fi 46 | 47 | # Deprecated - Set ssmtp server with link 48 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 49 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 50 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 51 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 52 | fi 53 | 54 | # Set memcached session save handle 55 | if [ -n "$MEMCACHED" ]; then 56 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 57 | 58 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 59 | for BACKEND in "${BACKENDS[@]}"; do 60 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 61 | done; IFS=$IFSO; 62 | 63 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 64 | session.save_handler = memcached 65 | session.save_path = "${SAVE_PATH}" 66 | EOF 67 | 68 | fi 69 | 70 | # Set ssmtp server 71 | if [ -n "$SMTP" ]; then 72 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 73 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 74 | fi 75 | 76 | # 77 | # Run 78 | exec "$@" -------------------------------------------------------------------------------- /5.6-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set ssmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set ssmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /5.6-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.6-cli 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | zlib1g-dev \ 14 | libncurses5-dev \ 15 | libldap2-dev \ 16 | libicu-dev \ 17 | libmemcached-dev \ 18 | libcurl4-openssl-dev \ 19 | libssl-dev \ 20 | libsqlite3-dev \ 21 | exiftool \ 22 | curl \ 23 | ssmtp \ 24 | mysql-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ 30 | chmod a+rx /usr/local/bin/composer 31 | 32 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 33 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \ 34 | docker-php-ext-install ldap && \ 35 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 36 | docker-php-ext-install pdo_mysql && \ 37 | docker-php-ext-configure mysql --with-mysql=mysqlnd && \ 38 | docker-php-ext-install mysql && \ 39 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 40 | docker-php-ext-install mysqli && \ 41 | docker-php-ext-install pdo_sqlite && \ 42 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 43 | docker-php-ext-install gd && \ 44 | docker-php-ext-install soap && \ 45 | docker-php-ext-install intl && \ 46 | docker-php-ext-install mcrypt && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install exif && \ 51 | docker-php-ext-install zip && \ 52 | docker-php-ext-install pcntl && \ 53 | docker-php-ext-install ftp && \ 54 | docker-php-ext-install sockets && \ 55 | docker-php-ext-install xsl 56 | 57 | RUN pecl install mongo && \ 58 | pecl install memcached-2.2.0 && \ 59 | pecl install redis-4.3.0 && \ 60 | pecl install xdebug-2.5.5 61 | 62 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 63 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 64 | cd /tmp/zlib-1.2.11 && \ 65 | ./configure --prefix=/usr/local/zlib && \ 66 | make && make install && \ 67 | rm -Rf /tmp/zlib-1.2.11 && \ 68 | rm /tmp/zlib.tar.gz 69 | 70 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/56 /tmp/blackfire-probe.tar.gz 71 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 72 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 73 | rm /tmp/blackfire-probe.tar.gz 74 | 75 | ENV LOCALTIME Europe/Paris 76 | 77 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 78 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 79 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 80 | 81 | COPY docker-entrypoint.sh /entrypoint.sh 82 | 83 | WORKDIR /var/www 84 | 85 | ENTRYPOINT ["/entrypoint.sh"] 86 | -------------------------------------------------------------------------------- /5.6-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set ssmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set ssmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /5.6-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:5.6-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | libxslt-dev \ 13 | zlib1g-dev \ 14 | libncurses5-dev \ 15 | libldap2-dev \ 16 | libicu-dev \ 17 | libmemcached-dev \ 18 | libcurl4-openssl-dev \ 19 | libssl-dev \ 20 | libsqlite3-dev \ 21 | exiftool \ 22 | curl \ 23 | ssmtp \ 24 | mysql-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ 30 | chmod a+rx /usr/local/bin/composer 31 | 32 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 33 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \ 34 | docker-php-ext-install ldap && \ 35 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 36 | docker-php-ext-install pdo_mysql && \ 37 | docker-php-ext-configure mysql --with-mysql=mysqlnd && \ 38 | docker-php-ext-install mysql && \ 39 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 40 | docker-php-ext-install mysqli && \ 41 | docker-php-ext-install pdo_sqlite && \ 42 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 43 | docker-php-ext-install gd && \ 44 | docker-php-ext-install soap && \ 45 | docker-php-ext-install intl && \ 46 | docker-php-ext-install mcrypt && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install exif && \ 51 | docker-php-ext-install zip && \ 52 | docker-php-ext-install pcntl && \ 53 | docker-php-ext-install ftp && \ 54 | docker-php-ext-install sockets && \ 55 | docker-php-ext-install xsl 56 | 57 | RUN pecl install mongo && \ 58 | pecl install memcached-2.2.0 && \ 59 | pecl install redis-4.3.0 && \ 60 | pecl install xdebug-2.5.5 61 | 62 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 63 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 64 | cd /tmp/zlib-1.2.11 && \ 65 | ./configure --prefix=/usr/local/zlib && \ 66 | make && make install && \ 67 | rm -Rf /tmp/zlib-1.2.11 && \ 68 | rm /tmp/zlib.tar.gz 69 | 70 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/56 /tmp/blackfire-probe.tar.gz 71 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 72 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 73 | rm /tmp/blackfire-probe.tar.gz 74 | 75 | ENV LOCALTIME Europe/Paris 76 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 77 | 78 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 79 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 80 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 81 | mkdir -p /usr/local/etc/php-fpm.d && \ 82 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 83 | 84 | COPY docker-entrypoint.sh /entrypoint.sh 85 | 86 | WORKDIR /var/www 87 | 88 | ENTRYPOINT ["/entrypoint.sh"] 89 | CMD ["php-fpm"] 90 | 91 | -------------------------------------------------------------------------------- /5.6-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then 36 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 37 | fi 38 | 39 | # 40 | # docker links 41 | 42 | # Deprecated - Set memcached server with link 43 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 44 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 45 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 46 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 47 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 48 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 49 | fi 50 | 51 | # Deprecated - Set ssmtp server with link 52 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 53 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 54 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 55 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 56 | fi 57 | 58 | # Set memcached session save handle 59 | if [ -n "$MEMCACHED" ]; then 60 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 61 | 62 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 63 | for BACKEND in "${BACKENDS[@]}"; do 64 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 65 | done; IFS=$IFSO; 66 | 67 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 68 | session.save_handler = memcached 69 | session.save_path = "${SAVE_PATH}" 70 | EOF 71 | 72 | fi 73 | 74 | # Set ssmtp server 75 | if [ -n "$SMTP" ]; then 76 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 77 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 78 | fi 79 | 80 | 81 | # 82 | # Run 83 | exec "$@" -------------------------------------------------------------------------------- /7.0-apache/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.0-apache 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldb-dev \ 15 | libldap2-dev \ 16 | libicu-dev \ 17 | libmemcached-dev \ 18 | libcurl4-openssl-dev \ 19 | libssl-dev \ 20 | libsqlite3-dev \ 21 | curl \ 22 | ssmtp \ 23 | mysql-client \ 24 | git \ 25 | subversion \ 26 | wget && \ 27 | rm -rf /var/lib/apt/lists/* && \ 28 | wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ 29 | chmod a+rx /usr/local/bin/composer 30 | 31 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 32 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 34 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 35 | docker-php-ext-install ldap && \ 36 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 37 | docker-php-ext-install pdo_mysql && \ 38 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 39 | docker-php-ext-install mysqli && \ 40 | docker-php-ext-install pdo_sqlite && \ 41 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 42 | docker-php-ext-install gd && \ 43 | docker-php-ext-install soap && \ 44 | docker-php-ext-install intl && \ 45 | docker-php-ext-install mcrypt && \ 46 | docker-php-ext-install gmp && \ 47 | docker-php-ext-install bcmath && \ 48 | docker-php-ext-install mbstring && \ 49 | docker-php-ext-install zip && \ 50 | docker-php-ext-install pcntl && \ 51 | docker-php-ext-install ftp && \ 52 | docker-php-ext-install sockets && \ 53 | pecl install mongodb && \ 54 | pecl install memcached && \ 55 | pecl install redis && \ 56 | pecl install xdebug 57 | 58 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 59 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 60 | cd /tmp/zlib-1.2.11 && \ 61 | ./configure --prefix=/usr/local/zlib && \ 62 | make && make install && \ 63 | rm -Rf /tmp/zlib-1.2.11 && \ 64 | rm /tmp/zlib.tar.gz 65 | 66 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/70 /tmp/blackfire-probe.tar.gz 67 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 68 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 69 | rm /tmp/blackfire-probe.tar.gz 70 | 71 | ENV LOCALTIME Europe/Paris 72 | ENV HTTPD_CONF_DIR /etc/apache2/conf-enabled/ 73 | ENV HTTPD__DocumentRoot /var/www/html 74 | ENV HTTPD__LogFormat '"%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" common' 75 | 76 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 77 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 78 | sed -i "s/DocumentRoot.*/DocumentRoot \${HTTPD__DocumentRoot}/" /etc/apache2/apache2.conf && \ 79 | echo 'ServerName ${HOSTNAME}' > $HTTPD_CONF_DIR/00-default.conf && \ 80 | echo 'ServerSignature Off' > /etc/apache2/conf-enabled/z-security.conf && \ 81 | echo 'ServerTokens Minimal' >> /etc/apache2/conf-enabled/z-security.conf && \ 82 | chmod a+w -R $HTTPD_CONF_DIR/ /etc/apache2/mods-enabled $PHP_INI_DIR/ && \ 83 | rm /etc/apache2/sites-enabled/000-default.conf 84 | 85 | COPY docker-entrypoint.sh /entrypoint.sh 86 | 87 | WORKDIR /var/www 88 | 89 | ENTRYPOINT ["/entrypoint.sh"] 90 | -------------------------------------------------------------------------------- /7.0-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set ssmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set ssmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /7.0-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.0-cli 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldb-dev \ 15 | libldap2-dev \ 16 | libicu-dev \ 17 | libmemcached-dev \ 18 | libcurl4-openssl-dev \ 19 | libssl-dev \ 20 | libsqlite3-dev \ 21 | curl \ 22 | ssmtp \ 23 | mysql-client \ 24 | git \ 25 | subversion \ 26 | wget && \ 27 | rm -rf /var/lib/apt/lists/* && \ 28 | wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ 29 | chmod a+rx /usr/local/bin/composer 30 | 31 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 32 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 34 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 35 | docker-php-ext-install ldap && \ 36 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 37 | docker-php-ext-install pdo_mysql && \ 38 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 39 | docker-php-ext-install mysqli && \ 40 | docker-php-ext-install pdo_sqlite && \ 41 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 42 | docker-php-ext-install gd && \ 43 | docker-php-ext-install soap && \ 44 | docker-php-ext-install intl && \ 45 | docker-php-ext-install mcrypt && \ 46 | docker-php-ext-install gmp && \ 47 | docker-php-ext-install bcmath && \ 48 | docker-php-ext-install mbstring && \ 49 | docker-php-ext-install zip && \ 50 | docker-php-ext-install pcntl && \ 51 | docker-php-ext-install ftp && \ 52 | docker-php-ext-install sockets && \ 53 | pecl install mongodb && \ 54 | pecl install memcached && \ 55 | pecl install redis && \ 56 | pecl install xdebug 57 | 58 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 59 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 60 | cd /tmp/zlib-1.2.11 && \ 61 | ./configure --prefix=/usr/local/zlib && \ 62 | make && make install && \ 63 | rm -Rf /tmp/zlib-1.2.11 && \ 64 | rm /tmp/zlib.tar.gz 65 | 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/70 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 77 | 78 | COPY docker-entrypoint.sh /entrypoint.sh 79 | 80 | WORKDIR /var/www 81 | 82 | ENTRYPOINT ["/entrypoint.sh"] 83 | -------------------------------------------------------------------------------- /7.0-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set ssmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set ssmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /7.0-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.0-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldb-dev \ 15 | libldap2-dev \ 16 | libicu-dev \ 17 | libmemcached-dev \ 18 | libcurl4-openssl-dev \ 19 | libssl-dev \ 20 | libsqlite3-dev \ 21 | curl \ 22 | ssmtp \ 23 | mysql-client \ 24 | git \ 25 | subversion \ 26 | wget && \ 27 | rm -rf /var/lib/apt/lists/* && \ 28 | wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ 29 | chmod a+rx /usr/local/bin/composer 30 | 31 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 32 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 34 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 35 | docker-php-ext-install ldap && \ 36 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 37 | docker-php-ext-install pdo_mysql && \ 38 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 39 | docker-php-ext-install mysqli && \ 40 | docker-php-ext-install pdo_sqlite && \ 41 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 42 | docker-php-ext-install gd && \ 43 | docker-php-ext-install soap && \ 44 | docker-php-ext-install intl && \ 45 | docker-php-ext-install mcrypt && \ 46 | docker-php-ext-install gmp && \ 47 | docker-php-ext-install bcmath && \ 48 | docker-php-ext-install mbstring && \ 49 | docker-php-ext-install zip && \ 50 | docker-php-ext-install pcntl && \ 51 | docker-php-ext-install ftp && \ 52 | docker-php-ext-install sockets && \ 53 | pecl install mongodb && \ 54 | pecl install memcached && \ 55 | pecl install redis && \ 56 | pecl install xdebug 57 | 58 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 59 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 60 | cd /tmp/zlib-1.2.11 && \ 61 | ./configure --prefix=/usr/local/zlib && \ 62 | make && make install && \ 63 | rm -Rf /tmp/zlib-1.2.11 && \ 64 | rm /tmp/zlib.tar.gz 65 | 66 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/70 /tmp/blackfire-probe.tar.gz 67 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 68 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 69 | rm /tmp/blackfire-probe.tar.gz 70 | 71 | ENV LOCALTIME Europe/Paris 72 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 77 | mkdir -p /usr/local/etc/php-fpm.d && \ 78 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 79 | 80 | COPY docker-entrypoint.sh /entrypoint.sh 81 | 82 | WORKDIR /var/www 83 | 84 | ENTRYPOINT ["/entrypoint.sh"] 85 | CMD ["php-fpm"] 86 | 87 | -------------------------------------------------------------------------------- /7.0-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then 36 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 37 | fi 38 | 39 | # 40 | # docker links 41 | 42 | # Deprecated - Set memcached server with link 43 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 44 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 45 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 46 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 47 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 48 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 49 | fi 50 | 51 | # Deprecated - Set ssmtp server with link 52 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 53 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 54 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 55 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 56 | fi 57 | 58 | # Set memcached session save handle 59 | if [ -n "$MEMCACHED" ]; then 60 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 61 | 62 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 63 | for BACKEND in "${BACKENDS[@]}"; do 64 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 65 | done; IFS=$IFSO; 66 | 67 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 68 | session.save_handler = memcached 69 | session.save_path = "${SAVE_PATH}" 70 | EOF 71 | 72 | fi 73 | 74 | # Set ssmtp server 75 | if [ -n "$SMTP" ]; then 76 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 77 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 78 | fi 79 | 80 | 81 | # 82 | # Run 83 | exec "$@" -------------------------------------------------------------------------------- /7.1-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set ssmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set ssmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /7.1-cli-alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-alpine 2 | LABEL maintainer="Alterway " 3 | 4 | RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.6/community" >> /etc/apk/repositories && \ 5 | echo "http://dl-cdn.alpinelinux.org/alpine/v3.6/main" >> /etc/apk/repositories && \ 6 | apk add --update --no-cache \ 7 | git \ 8 | subversion \ 9 | curl \ 10 | wget \ 11 | ssmtp \ 12 | mysql-client \ 13 | mariadb-dev \ 14 | openldap-dev \ 15 | libldap \ 16 | libssl1.0 \ 17 | libsasl \ 18 | freetype-dev \ 19 | libjpeg-turbo-dev \ 20 | libmcrypt-dev \ 21 | libpng-dev \ 22 | libxml2-dev \ 23 | zlib-dev \ 24 | php7-sqlite3 \ 25 | php7-pdo_sqlite \ 26 | sqlite-dev \ 27 | php7-gmp \ 28 | gmp-dev \ 29 | php7-pear \ 30 | ncurses-dev \ 31 | icu-dev \ 32 | libmemcached-dev \ 33 | libcurl && \ 34 | wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ 35 | chmod a+rx /usr/local/bin/composer 36 | 37 | RUN docker-php-ext-configure ldap && \ 38 | docker-php-ext-install ldap && \ 39 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 40 | docker-php-ext-install pdo_mysql && \ 41 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 42 | docker-php-ext-install mysqli && \ 43 | docker-php-ext-install pdo_sqlite && \ 44 | docker-php-ext-configure gd && \ 45 | docker-php-ext-install gd && \ 46 | docker-php-ext-install soap && \ 47 | docker-php-ext-install intl && \ 48 | docker-php-ext-install mcrypt && \ 49 | docker-php-ext-install bcmath && \ 50 | docker-php-ext-install mbstring && \ 51 | docker-php-ext-install zip && \ 52 | docker-php-ext-install pcntl && \ 53 | docker-php-ext-install ftp && \ 54 | docker-php-ext-install sockets && \ 55 | docker-php-ext-install gmp 56 | 57 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 58 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/71 /tmp/blackfire-probe.tar.gz 59 | RUN apk add --update --no-cache tar gcc libc-dev make && \ 60 | tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.11 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.11 && \ 65 | rm /tmp/zlib.tar.gz && \ 66 | tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 67 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 68 | rm /tmp/blackfire-probe.tar.gz && \ 69 | apk del --purge tar gcc libc-dev make 70 | 71 | ENV LOCALTIME Europe/Paris 72 | 73 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 74 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 75 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 76 | 77 | COPY docker-entrypoint.sh /entrypoint.sh 78 | 79 | WORKDIR /var/www 80 | 81 | ENTRYPOINT ["/entrypoint.sh"] 82 | -------------------------------------------------------------------------------- /7.1-cli-alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set ssmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set ssmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /7.1-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-cli-stretch 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldb-dev \ 15 | libldap2-dev \ 16 | libicu-dev \ 17 | libmemcached-dev \ 18 | libcurl4-openssl-dev \ 19 | libssl-dev \ 20 | libsqlite3-dev \ 21 | curl \ 22 | ssmtp \ 23 | mysql-client \ 24 | git \ 25 | subversion \ 26 | wget && \ 27 | rm -rf /var/lib/apt/lists/* && \ 28 | wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ 29 | chmod a+rx /usr/local/bin/composer 30 | 31 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 32 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 34 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 35 | docker-php-ext-install ldap && \ 36 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 37 | docker-php-ext-install pdo_mysql && \ 38 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 39 | docker-php-ext-install mysqli && \ 40 | docker-php-ext-install pdo_sqlite && \ 41 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 42 | docker-php-ext-install gd && \ 43 | docker-php-ext-install soap && \ 44 | docker-php-ext-install intl && \ 45 | docker-php-ext-install mcrypt && \ 46 | docker-php-ext-install gmp && \ 47 | docker-php-ext-install bcmath && \ 48 | docker-php-ext-install mbstring && \ 49 | docker-php-ext-install zip && \ 50 | docker-php-ext-install pcntl && \ 51 | docker-php-ext-install ftp && \ 52 | docker-php-ext-install sockets && \ 53 | pecl install mongodb && \ 54 | pecl install memcached && \ 55 | pecl install redis && \ 56 | pecl install xdebug 57 | 58 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 59 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 60 | cd /tmp/zlib-1.2.11 && \ 61 | ./configure --prefix=/usr/local/zlib && \ 62 | make && make install && \ 63 | rm -Rf /tmp/zlib-1.2.11 && \ 64 | rm /tmp/zlib.tar.gz 65 | 66 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/71 /tmp/blackfire-probe.tar.gz 67 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 68 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 69 | rm /tmp/blackfire-probe.tar.gz 70 | 71 | ENV LOCALTIME Europe/Paris 72 | 73 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 74 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 75 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 76 | 77 | COPY docker-entrypoint.sh /entrypoint.sh 78 | 79 | WORKDIR /var/www 80 | 81 | ENTRYPOINT ["/entrypoint.sh"] 82 | -------------------------------------------------------------------------------- /7.1-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set ssmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set ssmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /7.1-fpm-alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-fpm-alpine 2 | LABEL maintainer="Alterway " 3 | 4 | RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.6/community" >> /etc/apk/repositories && \ 5 | echo "http://dl-cdn.alpinelinux.org/alpine/v3.6/main" >> /etc/apk/repositories && \ 6 | apk add --update --no-cache \ 7 | git \ 8 | subversion \ 9 | curl \ 10 | wget \ 11 | ssmtp \ 12 | mysql-client \ 13 | mariadb-dev \ 14 | openldap-dev \ 15 | libldap \ 16 | libssl1.0 \ 17 | libsasl \ 18 | freetype-dev \ 19 | libjpeg-turbo-dev \ 20 | libmcrypt-dev \ 21 | libpng-dev \ 22 | libxml2-dev \ 23 | zlib-dev \ 24 | php7-sqlite3 \ 25 | php7-pdo_sqlite \ 26 | sqlite-dev \ 27 | php7-gmp \ 28 | gmp-dev \ 29 | php7-pear \ 30 | ncurses-dev \ 31 | icu-dev \ 32 | libmemcached-dev \ 33 | libcurl && \ 34 | wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ 35 | chmod a+rx /usr/local/bin/composer 36 | 37 | RUN docker-php-ext-configure ldap && \ 38 | docker-php-ext-install ldap && \ 39 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 40 | docker-php-ext-install pdo_mysql && \ 41 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 42 | docker-php-ext-install mysqli && \ 43 | docker-php-ext-install pdo_sqlite && \ 44 | docker-php-ext-configure gd && \ 45 | docker-php-ext-install gd && \ 46 | docker-php-ext-install soap && \ 47 | docker-php-ext-install intl && \ 48 | docker-php-ext-install mcrypt && \ 49 | docker-php-ext-install bcmath && \ 50 | docker-php-ext-install mbstring && \ 51 | docker-php-ext-install zip && \ 52 | docker-php-ext-install pcntl && \ 53 | docker-php-ext-install ftp && \ 54 | docker-php-ext-install sockets && \ 55 | docker-php-ext-install gmp 56 | 57 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 58 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/71 /tmp/blackfire-probe.tar.gz 59 | RUN apk add --update --no-cache tar gcc libc-dev make && \ 60 | tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.11 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.11 && \ 65 | rm /tmp/zlib.tar.gz && \ 66 | tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 67 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 68 | rm /tmp/blackfire-probe.tar.gz && \ 69 | apk del --purge tar gcc libc-dev make 70 | 71 | ENV LOCALTIME Europe/Paris 72 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 77 | mkdir -p /usr/local/etc/php-fpm.d && \ 78 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 79 | 80 | COPY docker-entrypoint.sh /entrypoint.sh 81 | 82 | WORKDIR /var/www 83 | 84 | ENTRYPOINT ["/entrypoint.sh"] 85 | CMD ["php-fpm"] 86 | -------------------------------------------------------------------------------- /7.1-fpm-alpine/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set ssmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set ssmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 75 | fi 76 | 77 | 78 | # 79 | # Run 80 | ${*} 81 | -------------------------------------------------------------------------------- /7.1-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-fpm-stretch 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libmcrypt-dev \ 9 | libpng-dev \ 10 | libgmp-dev \ 11 | libxml2-dev \ 12 | zlib1g-dev \ 13 | libncurses5-dev \ 14 | libldb-dev \ 15 | libldap2-dev \ 16 | libicu-dev \ 17 | libmemcached-dev \ 18 | libcurl4-openssl-dev \ 19 | libssl-dev \ 20 | libsqlite3-dev \ 21 | curl \ 22 | ssmtp \ 23 | mysql-client \ 24 | git \ 25 | subversion \ 26 | wget && \ 27 | rm -rf /var/lib/apt/lists/* && \ 28 | wget https://getcomposer.org/download/1.8.5/composer.phar -O /usr/local/bin/composer && \ 29 | chmod a+rx /usr/local/bin/composer 30 | 31 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 32 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 34 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 35 | docker-php-ext-install ldap && \ 36 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 37 | docker-php-ext-install pdo_mysql && \ 38 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 39 | docker-php-ext-install mysqli && \ 40 | docker-php-ext-install pdo_sqlite && \ 41 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 42 | docker-php-ext-install gd && \ 43 | docker-php-ext-install soap && \ 44 | docker-php-ext-install intl && \ 45 | docker-php-ext-install mcrypt && \ 46 | docker-php-ext-install gmp && \ 47 | docker-php-ext-install bcmath && \ 48 | docker-php-ext-install mbstring && \ 49 | docker-php-ext-install zip && \ 50 | docker-php-ext-install pcntl && \ 51 | docker-php-ext-install ftp && \ 52 | docker-php-ext-install sockets && \ 53 | pecl install mongodb && \ 54 | pecl install memcached && \ 55 | pecl install redis && \ 56 | pecl install xdebug 57 | 58 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 59 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 60 | cd /tmp/zlib-1.2.11 && \ 61 | ./configure --prefix=/usr/local/zlib && \ 62 | make && make install && \ 63 | rm -Rf /tmp/zlib-1.2.11 && \ 64 | rm /tmp/zlib.tar.gz 65 | 66 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/71 /tmp/blackfire-probe.tar.gz 67 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 68 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 69 | rm /tmp/blackfire-probe.tar.gz 70 | 71 | ENV LOCALTIME Europe/Paris 72 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 77 | mkdir -p /usr/local/etc/php-fpm.d && \ 78 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 79 | 80 | COPY docker-entrypoint.sh /entrypoint.sh 81 | 82 | WORKDIR /var/www 83 | 84 | ENTRYPOINT ["/entrypoint.sh"] 85 | CMD ["php-fpm"] 86 | 87 | -------------------------------------------------------------------------------- /7.1-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then 36 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 37 | fi 38 | 39 | # 40 | # docker links 41 | 42 | # Deprecated - Set memcached server with link 43 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 44 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 45 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 46 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 47 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 48 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 49 | fi 50 | 51 | # Deprecated - Set ssmtp server with link 52 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 53 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 54 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 55 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 56 | fi 57 | 58 | # Set memcached session save handle 59 | if [ -n "$MEMCACHED" ]; then 60 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 61 | 62 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 63 | for BACKEND in "${BACKENDS[@]}"; do 64 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 65 | done; IFS=$IFSO; 66 | 67 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 68 | session.save_handler = memcached 69 | session.save_path = "${SAVE_PATH}" 70 | EOF 71 | 72 | fi 73 | 74 | # Set ssmtp server 75 | if [ -n "$SMTP" ]; then 76 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 77 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 78 | fi 79 | 80 | 81 | # 82 | # Run 83 | exec "$@" 84 | -------------------------------------------------------------------------------- /7.2-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set msmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | 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 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set msmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | 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 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /7.2-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.2-cli 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | curl \ 21 | msmtp \ 22 | mariadb-client \ 23 | git \ 24 | subversion \ 25 | wget && \ 26 | rm -rf /var/lib/apt/lists/* && \ 27 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 28 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 29 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 30 | 31 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 32 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 34 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 35 | docker-php-ext-install ldap && \ 36 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 37 | docker-php-ext-install pdo_mysql && \ 38 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 39 | docker-php-ext-install mysqli && \ 40 | docker-php-ext-install pdo_sqlite && \ 41 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 42 | docker-php-ext-install gd && \ 43 | docker-php-ext-install soap && \ 44 | docker-php-ext-install intl && \ 45 | docker-php-ext-install gmp && \ 46 | docker-php-ext-install bcmath && \ 47 | docker-php-ext-install mbstring && \ 48 | docker-php-ext-install zip && \ 49 | docker-php-ext-install pcntl && \ 50 | docker-php-ext-install ftp && \ 51 | docker-php-ext-install sockets && \ 52 | pecl install mongodb && \ 53 | pecl install memcached && \ 54 | pecl install redis && \ 55 | pecl install xdebug 56 | 57 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 58 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 59 | cd /tmp/zlib-1.2.11 && \ 60 | ./configure --prefix=/usr/local/zlib && \ 61 | make && make install && \ 62 | rm -Rf /tmp/zlib-1.2.11 && \ 63 | rm /tmp/zlib.tar.gz 64 | 65 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/72 /tmp/blackfire-probe.tar.gz 66 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 67 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 68 | rm /tmp/blackfire-probe.tar.gz 69 | 70 | ENV LOCALTIME Europe/Paris 71 | 72 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 73 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 74 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc 75 | 76 | COPY docker-entrypoint.sh /entrypoint.sh 77 | 78 | WORKDIR /var/www 79 | 80 | ENTRYPOINT ["/entrypoint.sh"] 81 | -------------------------------------------------------------------------------- /7.2-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set msmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | 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 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set msmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | 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 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /7.2-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.2-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | curl \ 21 | msmtp \ 22 | mariadb-client \ 23 | git \ 24 | subversion \ 25 | wget && \ 26 | rm -rf /var/lib/apt/lists/* && \ 27 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 28 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 29 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 30 | 31 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 32 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 34 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 35 | docker-php-ext-install ldap && \ 36 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 37 | docker-php-ext-install pdo_mysql && \ 38 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 39 | docker-php-ext-install mysqli && \ 40 | docker-php-ext-install pdo_sqlite && \ 41 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 42 | docker-php-ext-install gd && \ 43 | docker-php-ext-install soap && \ 44 | docker-php-ext-install intl && \ 45 | docker-php-ext-install gmp && \ 46 | docker-php-ext-install bcmath && \ 47 | docker-php-ext-install mbstring && \ 48 | docker-php-ext-install zip && \ 49 | docker-php-ext-install pcntl && \ 50 | docker-php-ext-install ftp && \ 51 | docker-php-ext-install sockets && \ 52 | pecl install mongodb && \ 53 | pecl install memcached && \ 54 | pecl install redis && \ 55 | pecl install xdebug 56 | 57 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 58 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 59 | cd /tmp/zlib-1.2.11 && \ 60 | ./configure --prefix=/usr/local/zlib && \ 61 | make && make install && \ 62 | rm -Rf /tmp/zlib-1.2.11 && \ 63 | rm /tmp/zlib.tar.gz 64 | 65 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/72 /tmp/blackfire-probe.tar.gz 66 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 67 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 68 | rm /tmp/blackfire-probe.tar.gz 69 | 70 | ENV LOCALTIME Europe/Paris 71 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 72 | 73 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 74 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 75 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 76 | mkdir -p /usr/local/etc/php-fpm.d && \ 77 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ 78 | 79 | COPY docker-entrypoint.sh /entrypoint.sh 80 | 81 | WORKDIR /var/www 82 | 83 | ENTRYPOINT ["/entrypoint.sh"] 84 | CMD ["php-fpm"] 85 | 86 | -------------------------------------------------------------------------------- /7.2-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then 36 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 37 | fi 38 | 39 | # 40 | # docker links 41 | 42 | # Deprecated - Set memcached server with link 43 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 44 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 45 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 46 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 47 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 48 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 49 | fi 50 | 51 | # Deprecated - Set msmtp server with link 52 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 53 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 54 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 55 | 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 56 | fi 57 | 58 | # Set memcached session save handle 59 | if [ -n "$MEMCACHED" ]; then 60 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 61 | 62 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 63 | for BACKEND in "${BACKENDS[@]}"; do 64 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 65 | done; IFS=$IFSO; 66 | 67 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 68 | session.save_handler = memcached 69 | session.save_path = "${SAVE_PATH}" 70 | EOF 71 | 72 | fi 73 | 74 | # Set msmtp server 75 | if [ -n "$SMTP" ]; then 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 77 | 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 78 | fi 79 | 80 | 81 | # 82 | # Run 83 | exec "$@" -------------------------------------------------------------------------------- /7.3-apache-stretch/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set ssmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set ssmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /7.3-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set msmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | 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 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set msmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | 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 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /7.3-cli-stretch/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.3-cli-stretch 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | curl \ 22 | ssmtp \ 23 | mysql-client \ 24 | git \ 25 | subversion \ 26 | wget && \ 27 | rm -rf /var/lib/apt/lists/* && \ 28 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 29 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 30 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 31 | 32 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 35 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 36 | docker-php-ext-install ldap && \ 37 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 38 | docker-php-ext-install pdo_mysql && \ 39 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 40 | docker-php-ext-install mysqli && \ 41 | docker-php-ext-install pdo_sqlite && \ 42 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 43 | docker-php-ext-install gd && \ 44 | docker-php-ext-install soap && \ 45 | docker-php-ext-install intl && \ 46 | docker-php-ext-install gmp && \ 47 | docker-php-ext-install bcmath && \ 48 | docker-php-ext-install mbstring && \ 49 | docker-php-ext-install zip && \ 50 | docker-php-ext-install pcntl && \ 51 | docker-php-ext-install ftp && \ 52 | docker-php-ext-install sockets && \ 53 | pecl install mongodb && \ 54 | pecl install memcached && \ 55 | pecl install redis && \ 56 | pecl install xdebug 57 | 58 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 59 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 60 | cd /tmp/zlib-1.2.11 && \ 61 | ./configure --prefix=/usr/local/zlib && \ 62 | make && make install && \ 63 | rm -Rf /tmp/zlib-1.2.11 && \ 64 | rm /tmp/zlib.tar.gz 65 | 66 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz 67 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 68 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 69 | rm /tmp/blackfire-probe.tar.gz 70 | 71 | ENV LOCALTIME Europe/Paris 72 | 73 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 74 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 75 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 76 | 77 | COPY docker-entrypoint.sh /entrypoint.sh 78 | 79 | WORKDIR /var/www 80 | 81 | ENTRYPOINT ["/entrypoint.sh"] 82 | -------------------------------------------------------------------------------- /7.3-cli-stretch/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set ssmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set ssmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /7.3-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.3-cli 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | libonig-dev \ 22 | curl \ 23 | msmtp \ 24 | mariadb-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 30 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 31 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 32 | 33 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 35 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 36 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 37 | docker-php-ext-install ldap && \ 38 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 39 | docker-php-ext-install pdo_mysql && \ 40 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 41 | docker-php-ext-install mysqli && \ 42 | docker-php-ext-install pdo_sqlite && \ 43 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 44 | docker-php-ext-install gd && \ 45 | docker-php-ext-install soap && \ 46 | docker-php-ext-install intl && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install zip && \ 51 | docker-php-ext-install pcntl && \ 52 | docker-php-ext-install ftp && \ 53 | docker-php-ext-install sockets && \ 54 | pecl install mongodb && \ 55 | pecl install memcached && \ 56 | pecl install redis && \ 57 | pecl install xdebug 58 | 59 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 60 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.11 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.11 && \ 65 | rm /tmp/zlib.tar.gz 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc 77 | 78 | COPY docker-entrypoint.sh /entrypoint.sh 79 | 80 | WORKDIR /var/www 81 | 82 | ENTRYPOINT ["/entrypoint.sh"] 83 | -------------------------------------------------------------------------------- /7.3-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set msmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | 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 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set msmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | 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 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /7.3-fpm-posix-stretch/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.3-fpm-stretch 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | curl \ 22 | ssmtp \ 23 | mysql-client \ 24 | git \ 25 | subversion \ 26 | wget && \ 27 | rm -rf /var/lib/apt/lists/* && \ 28 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 29 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 30 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 31 | 32 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 35 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 36 | docker-php-ext-install ldap && \ 37 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 38 | docker-php-ext-install pdo_mysql && \ 39 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 40 | docker-php-ext-install mysqli && \ 41 | docker-php-ext-install pdo_sqlite && \ 42 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 43 | docker-php-ext-install gd && \ 44 | docker-php-ext-install soap && \ 45 | docker-php-ext-install intl && \ 46 | docker-php-ext-install gmp && \ 47 | docker-php-ext-install bcmath && \ 48 | docker-php-ext-install mbstring && \ 49 | docker-php-ext-install zip && \ 50 | docker-php-ext-install pcntl && \ 51 | docker-php-ext-install ftp && \ 52 | docker-php-ext-install sockets && \ 53 | pecl install mongodb && \ 54 | pecl install memcached && \ 55 | pecl install redis && \ 56 | pecl install xdebug 57 | 58 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 59 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 60 | cd /tmp/zlib-1.2.11 && \ 61 | ./configure --prefix=/usr/local/zlib && \ 62 | make && make install && \ 63 | rm -Rf /tmp/zlib-1.2.11 && \ 64 | rm /tmp/zlib.tar.gz 65 | 66 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz 67 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 68 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 69 | rm /tmp/blackfire-probe.tar.gz 70 | 71 | ENV LOCALTIME Europe/Paris 72 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 77 | mkdir -p /usr/local/etc/php-fpm.d && \ 78 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 79 | 80 | COPY docker-entrypoint.sh /entrypoint.sh 81 | 82 | WORKDIR /var/www 83 | 84 | ENTRYPOINT ["/entrypoint.sh"] 85 | CMD ["php-fpm"] 86 | 87 | -------------------------------------------------------------------------------- /7.3-fpm-posix/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.3-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | libonig-dev \ 22 | curl \ 23 | msmtp \ 24 | mariadb-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 30 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 31 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 32 | 33 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 35 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 36 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 37 | docker-php-ext-install ldap && \ 38 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 39 | docker-php-ext-install pdo_mysql && \ 40 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 41 | docker-php-ext-install mysqli && \ 42 | docker-php-ext-install pdo_sqlite && \ 43 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 44 | docker-php-ext-install gd && \ 45 | docker-php-ext-install soap && \ 46 | docker-php-ext-install intl && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install zip && \ 51 | docker-php-ext-install pcntl && \ 52 | docker-php-ext-install ftp && \ 53 | docker-php-ext-install sockets && \ 54 | pecl install mongodb && \ 55 | pecl install memcached && \ 56 | pecl install redis && \ 57 | pecl install xdebug 58 | 59 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 60 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.11 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.11 && \ 65 | rm /tmp/zlib.tar.gz 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 74 | 75 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 77 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 78 | mkdir -p /usr/local/etc/php-fpm.d && \ 79 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ 80 | 81 | COPY docker-entrypoint.sh /entrypoint.sh 82 | 83 | WORKDIR /var/www 84 | 85 | ENTRYPOINT ["/entrypoint.sh"] 86 | CMD ["php-fpm"] 87 | 88 | -------------------------------------------------------------------------------- /7.3-fpm-stretch/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.3-fpm-stretch 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | curl \ 22 | ssmtp \ 23 | mysql-client \ 24 | git \ 25 | subversion \ 26 | wget && \ 27 | rm -rf /var/lib/apt/lists/* && \ 28 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 29 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 30 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 31 | 32 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 33 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 35 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 36 | docker-php-ext-install ldap && \ 37 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 38 | docker-php-ext-install pdo_mysql && \ 39 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 40 | docker-php-ext-install mysqli && \ 41 | docker-php-ext-install pdo_sqlite && \ 42 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 43 | docker-php-ext-install gd && \ 44 | docker-php-ext-install soap && \ 45 | docker-php-ext-install intl && \ 46 | docker-php-ext-install gmp && \ 47 | docker-php-ext-install bcmath && \ 48 | docker-php-ext-install mbstring && \ 49 | docker-php-ext-install zip && \ 50 | docker-php-ext-install pcntl && \ 51 | docker-php-ext-install ftp && \ 52 | docker-php-ext-install sockets && \ 53 | pecl install mongodb && \ 54 | pecl install memcached && \ 55 | pecl install redis && \ 56 | pecl install xdebug 57 | 58 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 59 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 60 | cd /tmp/zlib-1.2.11 && \ 61 | ./configure --prefix=/usr/local/zlib && \ 62 | make && make install && \ 63 | rm -Rf /tmp/zlib-1.2.11 && \ 64 | rm /tmp/zlib.tar.gz 65 | 66 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz 67 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 68 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 69 | rm /tmp/blackfire-probe.tar.gz 70 | 71 | ENV LOCALTIME Europe/Paris 72 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 77 | mkdir -p /usr/local/etc/php-fpm.d && \ 78 | chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 79 | 80 | COPY docker-entrypoint.sh /entrypoint.sh 81 | 82 | WORKDIR /var/www 83 | 84 | ENTRYPOINT ["/entrypoint.sh"] 85 | CMD ["php-fpm"] 86 | 87 | -------------------------------------------------------------------------------- /7.3-fpm-stretch/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /etc/ssmtp /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then 36 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 37 | fi 38 | 39 | # 40 | # docker links 41 | 42 | # Deprecated - Set memcached server with link 43 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 44 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 45 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 46 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 47 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 48 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 49 | fi 50 | 51 | # Deprecated - Set ssmtp server with link 52 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 53 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 54 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 55 | sed -i "s/mailhub=.*/mailhub=$SMTP_PORT_25_TCP_ADDR:$SMTP_PORT_25_TCP_PORT/" /etc/ssmtp/ssmtp.conf 56 | fi 57 | 58 | # Set memcached session save handle 59 | if [ -n "$MEMCACHED" ]; then 60 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 61 | 62 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 63 | for BACKEND in "${BACKENDS[@]}"; do 64 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 65 | done; IFS=$IFSO; 66 | 67 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 68 | session.save_handler = memcached 69 | session.save_path = "${SAVE_PATH}" 70 | EOF 71 | 72 | fi 73 | 74 | # Set ssmtp server 75 | if [ -n "$SMTP" ]; then 76 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 77 | sed -i "s/mailhub=.*/mailhub=${SMTP}/" /etc/ssmtp/ssmtp.conf 78 | fi 79 | 80 | 81 | # 82 | # Run 83 | exec "$@" -------------------------------------------------------------------------------- /7.3-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.3-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | libonig-dev \ 22 | curl \ 23 | msmtp \ 24 | mariadb-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 30 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 31 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 32 | 33 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 35 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 36 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 37 | docker-php-ext-install ldap && \ 38 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 39 | docker-php-ext-install pdo_mysql && \ 40 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 41 | docker-php-ext-install mysqli && \ 42 | docker-php-ext-install pdo_sqlite && \ 43 | docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \ 44 | docker-php-ext-install gd && \ 45 | docker-php-ext-install soap && \ 46 | docker-php-ext-install intl && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install zip && \ 51 | docker-php-ext-install pcntl && \ 52 | docker-php-ext-install ftp && \ 53 | docker-php-ext-install sockets && \ 54 | pecl install mongodb && \ 55 | pecl install memcached && \ 56 | pecl install redis && \ 57 | pecl install xdebug 58 | 59 | ADD http://www.zlib.net/zlib-1.2.11.tar.gz /tmp/zlib.tar.gz 60 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.11 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.11 && \ 65 | rm /tmp/zlib.tar.gz 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/73 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 74 | 75 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 77 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 78 | mkdir -p /usr/local/etc/php-fpm.d && \ 79 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ 80 | 81 | COPY docker-entrypoint.sh /entrypoint.sh 82 | 83 | WORKDIR /var/www 84 | 85 | ENTRYPOINT ["/entrypoint.sh"] 86 | CMD ["php-fpm"] 87 | 88 | -------------------------------------------------------------------------------- /7.3-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then 36 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 37 | fi 38 | 39 | # 40 | # docker links 41 | 42 | # Deprecated - Set memcached server with link 43 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 44 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 45 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 46 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 47 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 48 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 49 | fi 50 | 51 | # Deprecated - Set msmtp server with link 52 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 53 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 54 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 55 | 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 56 | fi 57 | 58 | # Set memcached session save handle 59 | if [ -n "$MEMCACHED" ]; then 60 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 61 | 62 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 63 | for BACKEND in "${BACKENDS[@]}"; do 64 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 65 | done; IFS=$IFSO; 66 | 67 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 68 | session.save_handler = memcached 69 | session.save_path = "${SAVE_PATH}" 70 | EOF 71 | 72 | fi 73 | 74 | # Set msmtp server 75 | if [ -n "$SMTP" ]; then 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 77 | 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 78 | fi 79 | 80 | 81 | # 82 | # Run 83 | exec "$@" -------------------------------------------------------------------------------- /7.4-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set msmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | 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 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set msmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | 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 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /7.4-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.4-cli 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | libonig-dev \ 22 | curl \ 23 | msmtp \ 24 | mariadb-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 30 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 31 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 32 | 33 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 35 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 36 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 37 | docker-php-ext-install ldap && \ 38 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 39 | docker-php-ext-install pdo_mysql && \ 40 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 41 | docker-php-ext-install mysqli && \ 42 | docker-php-ext-install pdo_sqlite && \ 43 | docker-php-ext-configure gd --with-freetype --with-jpeg && \ 44 | docker-php-ext-install gd && \ 45 | docker-php-ext-install soap && \ 46 | docker-php-ext-install intl && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install zip && \ 51 | docker-php-ext-install pcntl && \ 52 | docker-php-ext-install ftp && \ 53 | docker-php-ext-install sockets && \ 54 | pecl install mongodb && \ 55 | pecl install memcached && \ 56 | pecl install redis && \ 57 | pecl install xdebug 58 | 59 | ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz 60 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.12 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.12 && \ 65 | rm /tmp/zlib.tar.gz 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/74 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc 77 | 78 | COPY docker-entrypoint.sh /entrypoint.sh 79 | 80 | WORKDIR /var/www 81 | 82 | ENTRYPOINT ["/entrypoint.sh"] 83 | -------------------------------------------------------------------------------- /7.4-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set msmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | 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 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set msmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | 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 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /7.4-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.4-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | libonig-dev \ 22 | curl \ 23 | msmtp \ 24 | mariadb-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 30 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 31 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 32 | 33 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 35 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 36 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 37 | docker-php-ext-install ldap && \ 38 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 39 | docker-php-ext-install pdo_mysql && \ 40 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 41 | docker-php-ext-install mysqli && \ 42 | docker-php-ext-install pdo_sqlite && \ 43 | docker-php-ext-configure gd --with-freetype --with-jpeg && \ 44 | docker-php-ext-install gd && \ 45 | docker-php-ext-install soap && \ 46 | docker-php-ext-install intl && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install zip && \ 51 | docker-php-ext-install pcntl && \ 52 | docker-php-ext-install ftp && \ 53 | docker-php-ext-install sockets && \ 54 | pecl install mongodb && \ 55 | pecl install memcached && \ 56 | pecl install redis && \ 57 | pecl install xdebug 58 | 59 | ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz 60 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.12 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.12 && \ 65 | rm /tmp/zlib.tar.gz 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/74 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 74 | 75 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 77 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 78 | mkdir -p /usr/local/etc/php-fpm.d && \ 79 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ 80 | 81 | COPY docker-entrypoint.sh /entrypoint.sh 82 | 83 | WORKDIR /var/www 84 | 85 | ENTRYPOINT ["/entrypoint.sh"] 86 | CMD ["php-fpm"] 87 | 88 | -------------------------------------------------------------------------------- /7.4-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then 36 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 37 | fi 38 | 39 | # 40 | # docker links 41 | 42 | # Deprecated - Set memcached server with link 43 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 44 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 45 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 46 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 47 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 48 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 49 | fi 50 | 51 | # Deprecated - Set msmtp server with link 52 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 53 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 54 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 55 | 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 56 | fi 57 | 58 | # Set memcached session save handle 59 | if [ -n "$MEMCACHED" ]; then 60 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 61 | 62 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 63 | for BACKEND in "${BACKENDS[@]}"; do 64 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 65 | done; IFS=$IFSO; 66 | 67 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 68 | session.save_handler = memcached 69 | session.save_path = "${SAVE_PATH}" 70 | EOF 71 | 72 | fi 73 | 74 | # Set msmtp server 75 | if [ -n "$SMTP" ]; then 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 77 | 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 78 | fi 79 | 80 | 81 | # 82 | # Run 83 | exec "$@" -------------------------------------------------------------------------------- /8.0-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set msmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | 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 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set msmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | 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 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /8.0-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.0-cli 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | libonig-dev \ 22 | curl \ 23 | msmtp \ 24 | mariadb-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.10.17/composer.phar -O /usr/local/bin/composer && \ 30 | wget https://getcomposer.org/download/2.0.7/composer.phar -O /usr/local/bin/composer2 && \ 31 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 32 | 33 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 35 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 36 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 37 | docker-php-ext-install ldap && \ 38 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 39 | docker-php-ext-install pdo_mysql && \ 40 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 41 | docker-php-ext-install mysqli && \ 42 | docker-php-ext-install pdo_sqlite && \ 43 | docker-php-ext-configure gd --with-freetype --with-jpeg && \ 44 | docker-php-ext-install gd && \ 45 | docker-php-ext-install soap && \ 46 | docker-php-ext-install intl && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install zip && \ 51 | docker-php-ext-install pcntl && \ 52 | docker-php-ext-install ftp && \ 53 | docker-php-ext-install sockets && \ 54 | pecl install mongodb && \ 55 | pecl install memcached && \ 56 | pecl install redis && \ 57 | pecl install xdebug 58 | 59 | ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz 60 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.12 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.12 && \ 65 | rm /tmp/zlib.tar.gz 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/80 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc 77 | 78 | COPY docker-entrypoint.sh /entrypoint.sh 79 | 80 | WORKDIR /var/www 81 | 82 | ENTRYPOINT ["/entrypoint.sh"] 83 | -------------------------------------------------------------------------------- /8.0-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set msmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | 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 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set msmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | 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 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /8.0-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.0-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | libonig-dev \ 22 | curl \ 23 | msmtp \ 24 | mariadb-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.10.16/composer.phar -O /usr/local/bin/composer && \ 30 | wget https://getcomposer.org/download/2.0.3/composer.phar -O /usr/local/bin/composer2 && \ 31 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer2 32 | 33 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 35 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 36 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 37 | docker-php-ext-install ldap && \ 38 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 39 | docker-php-ext-install pdo_mysql && \ 40 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 41 | docker-php-ext-install mysqli && \ 42 | docker-php-ext-install pdo_sqlite && \ 43 | docker-php-ext-configure gd --with-freetype --with-jpeg && \ 44 | docker-php-ext-install gd && \ 45 | docker-php-ext-install soap && \ 46 | docker-php-ext-install intl && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install zip && \ 51 | docker-php-ext-install pcntl && \ 52 | docker-php-ext-install ftp && \ 53 | docker-php-ext-install sockets && \ 54 | pecl install mongodb && \ 55 | pecl install memcached && \ 56 | pecl install redis && \ 57 | pecl install xdebug 58 | 59 | ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz 60 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.12 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.12 && \ 65 | rm /tmp/zlib.tar.gz 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/80 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 74 | 75 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 77 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 78 | mkdir -p /usr/local/etc/php-fpm.d && \ 79 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ 80 | 81 | COPY docker-entrypoint.sh /entrypoint.sh 82 | 83 | WORKDIR /var/www 84 | 85 | ENTRYPOINT ["/entrypoint.sh"] 86 | CMD ["php-fpm"] 87 | 88 | -------------------------------------------------------------------------------- /8.0-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then 36 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 37 | fi 38 | 39 | # 40 | # docker links 41 | 42 | # Deprecated - Set memcached server with link 43 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 44 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 45 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 46 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 47 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 48 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 49 | fi 50 | 51 | # Deprecated - Set msmtp server with link 52 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 53 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 54 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 55 | 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 56 | fi 57 | 58 | # Set memcached session save handle 59 | if [ -n "$MEMCACHED" ]; then 60 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 61 | 62 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 63 | for BACKEND in "${BACKENDS[@]}"; do 64 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 65 | done; IFS=$IFSO; 66 | 67 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 68 | session.save_handler = memcached 69 | session.save_path = "${SAVE_PATH}" 70 | EOF 71 | 72 | fi 73 | 74 | # Set msmtp server 75 | if [ -n "$SMTP" ]; then 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 77 | 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 78 | fi 79 | 80 | 81 | # 82 | # Run 83 | exec "$@" -------------------------------------------------------------------------------- /8.1-apache/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R /etc/apache2/ $PHP_INI_DIR/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # APACHE 24 | 25 | if [ ! -d "$HTTPD__DocumentRoot" ]; then echo >&2 "[Error] Document Root Directory not exist (please create $HTTPD__DocumentRoot)"; exit 1; fi 26 | if [ "$HTTPD_a2enmod" != "" ]; then a2enmod $HTTPD_a2enmod > /dev/null; fi; 27 | set_conf "HTTPD__" "$HTTPD_CONF_DIR/40-user.conf" "" 28 | 29 | # 30 | # PHP 31 | 32 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 33 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 34 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 35 | 36 | # 37 | # docker links 38 | 39 | # Deprecated - Set memcached server with link 40 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 41 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 42 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 43 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 44 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 45 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 46 | fi 47 | 48 | # Deprecated - Set msmtp server with link 49 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 50 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 51 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 52 | 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 53 | fi 54 | 55 | # Set memcached session save handle 56 | if [ -n "$MEMCACHED" ]; then 57 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 58 | 59 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 60 | for BACKEND in "${BACKENDS[@]}"; do 61 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 62 | done; IFS=$IFSO; 63 | 64 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 65 | session.save_handler = memcached 66 | session.save_path = "${SAVE_PATH}" 67 | EOF 68 | 69 | fi 70 | 71 | # Set msmtp server 72 | if [ -n "$SMTP" ]; then 73 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 74 | 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 75 | fi 76 | 77 | # 78 | # Run 79 | 80 | if [[ ! -z "$1" ]]; then 81 | exec ${*} 82 | else 83 | exec apache2-foreground 84 | fi 85 | -------------------------------------------------------------------------------- /8.1-cli/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.1-cli 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | libonig-dev \ 22 | curl \ 23 | msmtp \ 24 | mariadb-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.10.25/composer.phar -O /usr/local/bin/composer1 && \ 30 | wget https://getcomposer.org/download/2.2.6/composer.phar -O /usr/local/bin/composer && \ 31 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer1 32 | 33 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 35 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 36 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 37 | docker-php-ext-install ldap && \ 38 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 39 | docker-php-ext-install pdo_mysql && \ 40 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 41 | docker-php-ext-install mysqli && \ 42 | docker-php-ext-install pdo_sqlite && \ 43 | docker-php-ext-configure gd --with-freetype --with-jpeg && \ 44 | docker-php-ext-install gd && \ 45 | docker-php-ext-install soap && \ 46 | docker-php-ext-install intl && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install zip && \ 51 | docker-php-ext-install pcntl && \ 52 | docker-php-ext-install ftp && \ 53 | docker-php-ext-install sockets && \ 54 | pecl install mongodb && \ 55 | pecl install memcached && \ 56 | pecl install redis && \ 57 | pecl install xdebug 58 | 59 | ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz 60 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.12 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.12 && \ 65 | rm /tmp/zlib.tar.gz 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/81 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | 74 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 75 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 76 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc 77 | 78 | COPY docker-entrypoint.sh /entrypoint.sh 79 | 80 | WORKDIR /var/www 81 | 82 | ENTRYPOINT ["/entrypoint.sh"] 83 | -------------------------------------------------------------------------------- /8.1-cli/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if [ "$USER" = "root" ]; then 5 | 6 | # set localtime 7 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 8 | 9 | # secure path 10 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ 11 | fi 12 | 13 | # 14 | # functions 15 | 16 | function set_conf { 17 | echo ''>$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 28 | 29 | # 30 | # docker links 31 | 32 | # Deprecated - Set memcached server with link 33 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 34 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 35 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 36 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 37 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 38 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 39 | fi 40 | 41 | # Deprecated - Set msmtp server with link 42 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 43 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 44 | echo 'sendmail_path = /usr/sbin/ssmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 45 | 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 46 | fi 47 | 48 | # Set memcached session save handle 49 | if [ -n "$MEMCACHED" ]; then 50 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 51 | 52 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 53 | for BACKEND in "${BACKENDS[@]}"; do 54 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 55 | done; IFS=$IFSO; 56 | 57 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 58 | session.save_handler = memcached 59 | session.save_path = "${SAVE_PATH}" 60 | EOF 61 | 62 | fi 63 | 64 | # Set msmtp server 65 | if [ -n "$SMTP" ]; then 66 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 67 | 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 68 | fi 69 | 70 | 71 | # 72 | # Run 73 | 74 | if [[ ! -z "$1" ]]; then 75 | exec php ${*} 76 | else 77 | exec php -h 78 | fi 79 | -------------------------------------------------------------------------------- /8.1-fpm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:8.1-fpm 2 | LABEL maintainer="Alterway " 3 | 4 | RUN apt-get update && \ 5 | apt-get install -y \ 6 | libfreetype6-dev \ 7 | libjpeg62-turbo-dev \ 8 | libpng-dev \ 9 | libgmp-dev \ 10 | libxml2-dev \ 11 | zlib1g-dev \ 12 | libncurses5-dev \ 13 | libldb-dev \ 14 | libldap2-dev \ 15 | libicu-dev \ 16 | libmemcached-dev \ 17 | libcurl4-openssl-dev \ 18 | libssl-dev \ 19 | libsqlite3-dev \ 20 | libzip-dev \ 21 | libonig-dev \ 22 | curl \ 23 | msmtp \ 24 | mariadb-client \ 25 | git \ 26 | subversion \ 27 | wget && \ 28 | rm -rf /var/lib/apt/lists/* && \ 29 | wget https://getcomposer.org/download/1.10.25/composer.phar -O /usr/local/bin/composer1 && \ 30 | wget https://getcomposer.org/download/2.2.6/composer.phar -O /usr/local/bin/composer && \ 31 | chmod a+rx /usr/local/bin/composer /usr/local/bin/composer1 32 | 33 | RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \ 34 | ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so && \ 35 | ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so && \ 36 | docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \ 37 | docker-php-ext-install ldap && \ 38 | docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd && \ 39 | docker-php-ext-install pdo_mysql && \ 40 | docker-php-ext-configure mysqli --with-mysqli=mysqlnd && \ 41 | docker-php-ext-install mysqli && \ 42 | docker-php-ext-install pdo_sqlite && \ 43 | docker-php-ext-configure gd --with-freetype --with-jpeg && \ 44 | docker-php-ext-install gd && \ 45 | docker-php-ext-install soap && \ 46 | docker-php-ext-install intl && \ 47 | docker-php-ext-install gmp && \ 48 | docker-php-ext-install bcmath && \ 49 | docker-php-ext-install mbstring && \ 50 | docker-php-ext-install zip && \ 51 | docker-php-ext-install pcntl && \ 52 | docker-php-ext-install ftp && \ 53 | docker-php-ext-install sockets && \ 54 | pecl install mongodb && \ 55 | pecl install memcached && \ 56 | pecl install redis && \ 57 | pecl install xdebug 58 | 59 | ADD http://www.zlib.net/zlib-1.2.12.tar.gz /tmp/zlib.tar.gz 60 | RUN tar zxpf /tmp/zlib.tar.gz -C /tmp && \ 61 | cd /tmp/zlib-1.2.12 && \ 62 | ./configure --prefix=/usr/local/zlib && \ 63 | make && make install && \ 64 | rm -Rf /tmp/zlib-1.2.12 && \ 65 | rm /tmp/zlib.tar.gz 66 | 67 | ADD https://blackfire.io/api/v1/releases/probe/php/linux/amd64/81 /tmp/blackfire-probe.tar.gz 68 | RUN tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp && \ 69 | mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so && \ 70 | rm /tmp/blackfire-probe.tar.gz 71 | 72 | ENV LOCALTIME Europe/Paris 73 | ENV PHPFPM__access.format '"%R - %u [%t] \"%m %r\" %s %l %Q %f"' 74 | 75 | RUN rm $PHP_INI_DIR/conf.d/docker-php-ext* && \ 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini && \ 77 | echo "\ninclude=/usr/local/etc/php-fpm.d/*.conf" >> /usr/local/etc/php-fpm.conf && \ 78 | mkdir -p /usr/local/etc/php-fpm.d && \ 79 | touch /etc/msmtprc && chmod a+w -R $PHP_INI_DIR/conf.d/ /etc/msmtprc /usr/local/etc/php-fpm.d/ 80 | 81 | COPY docker-entrypoint.sh /entrypoint.sh 82 | 83 | WORKDIR /var/www 84 | 85 | ENTRYPOINT ["/entrypoint.sh"] 86 | CMD ["php-fpm"] 87 | 88 | -------------------------------------------------------------------------------- /8.1-fpm/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | 5 | if [ "$USER" = "root" ]; then 6 | 7 | # set localtime 8 | ln -sf /usr/share/zoneinfo/$LOCALTIME /etc/localtime 9 | 10 | # secure path 11 | chmod a-rwx -R $PHP_INI_DIR/conf.d/ /usr/local/etc/php-fpm.d/ 12 | fi 13 | 14 | # 15 | # functions 16 | function set_conf { 17 | echo "$4">$2; IFSO=$IFS; IFS=$(echo -en "\n\b") 18 | 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; 19 | IFS=$IFSO 20 | } 21 | 22 | # 23 | # PHP 24 | 25 | echo "date.timezone = \"${LOCALTIME}\"" >> $PHP_INI_DIR/conf.d/00-default.ini 26 | if [ "$PHP_php5enmod" != "" ]; then docker-php-ext-enable $PHP_php5enmod > /dev/null 2>&1; fi; 27 | 28 | # Set php.ini 29 | set_conf "PHP__" "$PHP_INI_DIR/conf.d/40-user.ini" "=" 30 | 31 | # Set phpfpm.conf 32 | set_conf "PHPFPM_GLOBAL__" "/usr/local/etc/php-fpm.d/40-user-global.conf" "=" "[global]" 33 | set_conf "PHPFPM__" "/usr/local/etc/php-fpm.d/41-user-pool.conf" "=" "[www]" 34 | 35 | if [ -f /usr/local/etc/php-fpm.d/www.conf ]; then 36 | mv /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/00-www.conf 37 | fi 38 | 39 | # 40 | # docker links 41 | 42 | # Deprecated - Set memcached server with link 43 | if [ -n "$PHP_MEMCACHED_PORT_11211_TCP_ADDR" ]; then 44 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 45 | echo "session.save_handler = memcached" > $PHP_INI_DIR/conf.d/20-memcached.ini 46 | echo "session.save_path = $PHP_MEMCACHED_PORT_11211_TCP_ADDR:$PHP_MEMCACHED_PORT_11211_TCP_PORT" >> $PHP_INI_DIR/conf.d/20-memcached.ini 47 | elif [ -f $PHP_INI_DIR/conf.d/20-memcached.ini ]; then 48 | rm $PHP_INI_DIR/conf.d/20-memcached.ini 49 | fi 50 | 51 | # Deprecated - Set msmtp server with link 52 | if [ -n "$SMTP_PORT_25_TCP_ADDR" ]; then 53 | echo "[WARNING] Deprecated - Future versions of Docker will not support links - you should remove them for forwards-compatibility." 54 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 55 | 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 56 | fi 57 | 58 | # Set memcached session save handle 59 | if [ -n "$MEMCACHED" ]; then 60 | if [ ! -f $PHP_INI_DIR/conf.d/docker-php-ext-memcached.ini ]; then docker-php-ext-enable memcached > /dev/null; fi 61 | 62 | IFSO=$IFS; IFS=' ' read -ra BACKENDS <<< "${MEMCACHED}" 63 | for BACKEND in "${BACKENDS[@]}"; do 64 | SAVE_PATH="${SAVE_PATH}${BACKEND}?${MEMCACHED_CONFIG:-persistent=1&timeout=5&retry_interval=30}," 65 | done; IFS=$IFSO; 66 | 67 | cat << EOF >> $PHP_INI_DIR/conf.d/20-memcached.ini 68 | session.save_handler = memcached 69 | session.save_path = "${SAVE_PATH}" 70 | EOF 71 | 72 | fi 73 | 74 | # Set msmtp server 75 | if [ -n "$SMTP" ]; then 76 | echo 'sendmail_path = /usr/bin/msmtp -t' >> $PHP_INI_DIR/conf.d/00-default.ini 77 | 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 78 | fi 79 | 80 | 81 | # 82 | # Run 83 | exec "$@" -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Forges Alterway 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker PHP 2 | 3 | ## Version available 4 | 5 | ### PHP-CLI 6 | 7 | Please see [README-php-cli.md](doc-php-cli.md) 8 | 9 | - PHP-CLI 8.1 (docker tags: `8.1-cli`) - `docker pull alterway/php:8.1-cli` 10 | - PHP-CLI 8.0 (docker tags: `8.0-cli`) - `docker pull alterway/php:8.0-cli` 11 | - PHP-CLI 7.4 (docker tags: `7.4-cli`) - `docker pull alterway/php:7.4-cli` 12 | - PHP-CLI 7.3 (docker tags: `7.3-cli`) - `docker pull alterway/php:7.3-cli` [DEPRECATED] 13 | - PHP-CLI 7.2 (docker tags: `7.2-cli`) - `docker pull alterway/php:7.2-cli` [DEPRECATED] 14 | - PHP-CLI 7.1 (docker tags: `7.1-cli`) - `docker pull alterway/php:7.1-cli` [DEPRECATED] 15 | - PHP-CLI 7.0 (docker tags: `7.0-cli`) - `docker pull alterway/php:7.0-cli` [DEPRECATED] 16 | - PHP-CLI 5.6 (docker tags: `5.6-cli`) - `docker pull alterway/php:5.6-cli` [DEPRECATED] 17 | - PHP-CLI 5.5 (docker tags: `5.5-cli`) - `docker pull alterway/php:5.5-cli` [DEPRECATED] 18 | - PHP-CLI 5.4 (docker tags: `5.4-cli`) - `docker pull alterway/php:5.4-cli` [DEPRECATED] 19 | 20 | ### PHP-FPM 21 | 22 | Please see [README-php-fpm.md](doc-php-fpm.md) 23 | 24 | - PHP-FPM 8.1 (docker tags: `8.1-fpm`) - `docker pull alterway/php:8.1-fpm` 25 | - PHP-FPM 8.0 (docker tags: `8.0-fpm`) - `docker pull alterway/php:8.0-fpm` 26 | - PHP-FPM 7.4 (docker tags: `7.4-fpm`) - `docker pull alterway/php:7.4-fpm` 27 | - PHP-FPM 7.3 (docker tags: `7.3-fpm`) - `docker pull alterway/php:7.3-fpm` [DEPRECATED] 28 | - PHP-FPM 7.2 (docker tags: `7.2-fpm`) - `docker pull alterway/php:7.2-fpm` [DEPRECATED] 29 | - PHP-FPM 7.1 (docker tags: `7.1-fpm`) - `docker pull alterway/php:7.1-fpm` [DEPRECATED] 30 | - PHP-FPM 7.0 (docker tags: `7.0-fpm`) - `docker pull alterway/php:7.0-fpm` [DEPRECATED] 31 | - PHP-FPM 5.6 (docker tags: `5.6-fpm`) - `docker pull alterway/php:5.6-fpm` [DEPRECATED] 32 | - PHP-FPM 5.5 (docker tags: `5.5-fpm`) - `docker pull alterway/php:5.5-fpm` [DEPRECATED] 33 | - PHP-FPM 5.4 (docker tags: `5.4-fpm`) - `docker pull alterway/php:5.4-fpm` [DEPRECATED] 34 | - PHP-FPM 5.3.29 (docker tags: `5.3-fpm`) - `docker pull alterway/php:5.3-fpm` [DEPRECATED] 35 | 36 | ### PHP-APACHE 37 | 38 | Please see [README-php-apache.md](doc-php-apache.md) 39 | 40 | - Apache/2.4 - PHP/8.0 (docker tags: `8.0-apache`) - `docker pull alterway/php:8.0-apache` 41 | - Apache/2.4 - PHP/7.4 (docker tags: `7.4-apache`) - `docker pull alterway/php:7.4-apache` 42 | - Apache/2.4 - PHP/7.3 (docker tags: `7.3-apache`) - `docker pull alterway/php:7.3-apache` 43 | - Apache/2.4 - PHP/7.2 (docker tags: `7.2-apache`) - `docker pull alterway/php:7.2-apache` [DEPRECATED] 44 | - Apache/2.4 - PHP/7.1 (docker tags: `7.1-apache`) - `docker pull alterway/php:7.1-apache` [DEPRECATED] 45 | - Apache/2.4 - PHP/7.0 (docker tags: `7.0-apache`) - `docker pull alterway/php:7.0-apache` [DEPRECATED] 46 | - Apache/2.4 - PHP/5.6 (docker tags: `5.6-apache`) - `docker pull alterway/php:5.6-apache` [DEPRECATED] 47 | - Apache/2.4 - PHP/5.5 (docker tags: `5.5-apache`) - `docker pull alterway/php:5.5-apache` [DEPRECATED] 48 | - Apache/2.4 - PHP/5.4 (docker tags: `5.4-apache`) - `docker pull alterway/php:5.4-apache` [DEPRECATED] 49 | - Apache/2.2 - PHP/5.3.29 (docker tags: `5.3-apache`) - `docker pull alterway/php:5.3-apache` [DEPRECATED] 50 | 51 | ## Contributors 52 | 53 | - [Nicolas Berthe](https://github.com/4devnull) 54 | 55 | ## License 56 | 57 | View [LICENSE](LICENSE) for the software contained in this image. --------------------------------------------------------------------------------