├── .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.
--------------------------------------------------------------------------------