Compare commits

..

35 Commits
0.40 ... 0.51

Author SHA1 Message Date
cytopia
79b9ed1308 Merge pull request #65 from devilbox/release-0.51
Ensure Travis-CI recognizes when being run as cronjob
2018-11-17 17:20:49 +01:00
cytopia
dc20fbea6e Ensure Travis-CI recognizes when being run as cronjob 2018-11-17 14:13:29 +01:00
cytopia
77716db302 Merge pull request #64 from devilbox/release-0.50
Fix PHP 5.3 autoconf
2018-11-11 12:08:14 +01:00
cytopia
62cc38d4af Fix PHP 5.3 autoconf 2018-11-10 21:05:14 +01:00
cytopia
68615b22be Merge pull request #63 from devilbox/release-0.49
Fix igbinary for PHP 5.3
2018-11-10 18:14:26 +01:00
cytopia
1740392d3c Fix automated build of PHP 5.3 2018-11-10 15:59:48 +01:00
cytopia
427cc3fff6 Fix igbinary for PHP 5.3 2018-11-07 12:03:35 +01:00
cytopia
4d925540b7 Merge pull request #62 from devilbox/release-0.48
Fix swoole build
2018-11-06 01:24:39 +01:00
cytopia
be439edfb3 Fix swoole build 2018-11-05 21:35:15 +01:00
cytopia
867c1121c9 Merge pull request #61 from devilbox/release-0.47
Fix PHP container PS1
2018-11-04 09:26:02 +01:00
cytopia
db397e5ef5 Fix PHP container PS1 2018-11-04 06:35:10 +01:00
cytopia
4569855e6e Merge pull request #60 from devilbox/release-0.46
Fix Redis for PHP 7.4
2018-11-03 11:38:56 +01:00
cytopia
dfe0f8c4b2 Fix Redis for PHP 7.4 2018-11-03 03:17:04 +01:00
cytopia
ab4f0e01fe Merge pull request #59 from devilbox/release-0.45
PHP-FPM 7.4
2018-11-02 22:14:03 +01:00
cytopia
6371378d03 Fixing linux brew installation 2018-11-02 20:03:04 +01:00
cytopia
594762b697 Replace npm install with yarn add 2018-11-02 18:35:30 +01:00
cytopia
24ec18d051 Add PHP-FPM 7.4 built from source 2018-11-02 15:14:15 +01:00
cytopia
f8903bcb04 Ensure build fails on errors 2018-11-02 14:54:25 +01:00
cytopia
e33231be79 Use official PHP 7.3 Docker image for base 2018-11-02 14:25:21 +01:00
cytopia
6cbf1da423 Merge pull request #57 from devilbox/release-0.44
Add tool: jq
2018-11-02 00:45:10 +01:00
cytopia
9c7c504f88 fixup! Be verbose during npm install to debug any possible network outages 2018-11-01 21:23:34 +01:00
cytopia
ed13130025 Be verbose during npm install to debug any possible network outages 2018-11-01 20:33:41 +01:00
cytopia
e816c9a376 Install npm packages step-by-step due to download bug 2018-11-01 20:33:09 +01:00
cytopia
f5af07cede Add tool: jq 2018-11-01 17:55:00 +01:00
cytopia
cb29e8da6a Merge pull request #56 from devilbox/release-0.43
Fix build pipeline
2018-11-01 17:21:47 +01:00
cytopia
61224dfb12 Use newer pip version 2018-11-01 15:07:53 +01:00
cytopia
b257ffb972 Decrease image sizes 2018-11-01 13:55:27 +01:00
cytopia
10e114fdd2 Decrease image size of mods images 2018-11-01 12:48:46 +01:00
cytopia
6fb6a2f61c Fix swoole for PHP 7.3 2018-11-01 11:17:42 +01:00
cytopia
a9fc2a95a1 Fix drush9 installation 2018-11-01 09:53:23 +01:00
cytopia
dc2daccaaa Fix build pipeline 2018-10-31 23:12:46 +01:00
cytopia
d1d0bb1300 Merge pull request #55 from devilbox/release-0.42
Add tool: wkhtmltopdf
2018-09-30 20:25:10 +02:00
cytopia
4fa6943f8c Add tool: wkhtmltopdf 2018-09-30 12:45:26 +02:00
cytopia
8342c1e20f Merge pull request #54 from devilbox/release-0.41
Add drush7, drush8 and drush9 as separate binaries
2018-09-30 12:44:09 +02:00
cytopia
c991494dee Add drush7, drush8 and drush9 as separate binaries 2018-09-30 10:53:25 +02:00
55 changed files with 5786 additions and 1581 deletions

View File

@@ -32,6 +32,7 @@ env:
- PHP=7.1 - PHP=7.1
- PHP=7.2 - PHP=7.2
- PHP=7.3 - PHP=7.3
- PHP=7.4
### ###
@@ -97,11 +98,13 @@ script:
- if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin && echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin &&
if [ "${TRAVIS_BRANCH}" == "master" ]; then if [ "${TRAVIS_BRANCH}" == "master" ]; then
echo "Pushing latest";
docker push "${IMAGE}:${PHP}-base"; docker push "${IMAGE}:${PHP}-base";
docker push "${IMAGE}:${PHP}-mods"; docker push "${IMAGE}:${PHP}-mods";
docker push "${IMAGE}:${PHP}-prod"; docker push "${IMAGE}:${PHP}-prod";
docker push "${IMAGE}:${PHP}-work"; docker push "${IMAGE}:${PHP}-work";
elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
echo "Pushing branch ${TRAVIS_BRANCH}";
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}" && docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}" &&
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}" && docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}" &&
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}" && docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}" &&
@@ -111,6 +114,7 @@ script:
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}"; docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}";
docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}"; docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}";
elif [ -n "${TRAVIS_TAG}" ]; then elif [ -n "${TRAVIS_TAG}" ]; then
echo "Pushing tag ${TRAVIS_TAG}";
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_TAG}" && docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_TAG}" &&
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}" && docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}" &&
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}" && docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}" &&
@@ -119,6 +123,18 @@ script:
docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}"; docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}";
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}"; docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}";
docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}"; docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}";
elif [ "${TRAVIS_EVENT_TYPE}" = "cron" ]; then
if MY_TAG="$( git describe --exact-match "$(git rev-parse HEAD)" 2>/dev/null )"; then
echo "Pushing cron tag ${MY_TAG}";
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${MY_TAG}" &&
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${MY_TAG}" &&
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${MY_TAG}" &&
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${MY_TAG}" &&
docker push "${IMAGE}:${PHP}-base-${MY_TAG}";
docker push "${IMAGE}:${PHP}-mods-${MY_TAG}";
docker push "${IMAGE}:${PHP}-prod-${MY_TAG}";
docker push "${IMAGE}:${PHP}-work-${MY_TAG}";
fi
else else
echo "Skipping push to dockerhub on normal branches"; echo "Skipping push to dockerhub on normal branches";
fi fi

View File

@@ -36,9 +36,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -68,10 +67,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -36,9 +36,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -68,10 +67,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -36,9 +36,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -68,10 +67,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -36,9 +36,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -68,10 +67,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -36,9 +36,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -68,10 +67,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -36,9 +36,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -68,10 +67,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -36,9 +36,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -68,10 +67,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -36,9 +36,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -68,10 +67,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -1,5 +1,5 @@
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
FROM devilbox/php-fpm-7.3 FROM php:7.3-rc-fpm
MAINTAINER "cytopia" <cytopia@everythingcli.org> MAINTAINER "cytopia" <cytopia@everythingcli.org>
@@ -36,9 +36,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -68,10 +67,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -0,0 +1,95 @@
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
FROM devilbox/php-fpm-7.4
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.4 Image" \
image="devilbox/php-fpm" \
tag="7.4-base" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV MY_USER="devilbox" \
MY_GROUP="devilbox" \
MY_UID="1000" \
MY_GID="1000" \
PHP_VERSION="7.4"
###
### User/Group
###
RUN set -x \
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
###
### Upgrade (install ps)
###
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& rm -rf /var/lib/apt/lists/*
###
### Configure
###
RUN set -x \
&& rm -rf /usr/local/etc/php-fpm.d \
&& mkdir -p /usr/local/etc/php-fpm.d \
&& mkdir -p /var/lib/php/session \
&& mkdir -p /var/lib/php/wsdlcache \
&& chown -R devilbox:devilbox /var/lib/php/session \
&& chown -R devilbox:devilbox /var/lib/php/wsdlcache
###
### Copy files
###
COPY ./data/php-ini.d/php-7.4.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-7.4.conf /usr/local/etc/php-fpm.conf
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
###
### Verify
###
RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
&& /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,134 @@
; ################################################################################
; ####
; #### The following settings can be overwritten by later includes
; ####
; ################################################################################
; ############################################################
; Timeouts
; ############################################################
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; ############################################################
; Logging
; ############################################################
[global]
error_log = /proc/self/fd/2
log_level = notice
[www]
; if we send this to /proc/self/fd/1, it never appears
access.log = /proc/self/fd/2
; ############################################################
; Backlog configuration
; ############################################################
[www]
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; ############################################################
; Worker configuration
; ############################################################
[www]
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; ############################################################
; Include
; ############################################################
[global]
include = /usr/local/etc/php-fpm.d/*.conf
; ################################################################################
; ####
; #### The following settings overwrite any includes again
; ####
; ################################################################################
; ############################################################
; Required for Dockerization
; ############################################################
[global]
daemonize = no
[www]
; Keep env variables set by docker
clear_env = no
; Redirect worker stdout and stderr into main error log. If not set, stdout and
; stderr will be redirected to /dev/null according to FastCGI specs.
; Note: on highloaded environement, this can cause some delay in the page
; process time (several ms).
; Default Value: no
catch_workers_output = yes
; ############################################################
; User and Group
; ############################################################
[www]
user = devilbox
group = devilbox
; ############################################################
; Networking
; ############################################################
[www]
; Ensure to listen here
listen = 9000

View File

@@ -0,0 +1,49 @@
; ############################################################
; # Devilbox PHP defaults for 7.4-base
; ############################################################
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
; If none is present, the one from the previous flavour is inherited.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
log_errors = On
html_errors = Off
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off

View File

@@ -18,85 +18,61 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
librabbitmq-dev \
libbz2-dev \
libcurl4-openssl-dev \
libxml2-dev \
libenchant-dev \
libmagic-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libfbclient2 \
libib-util \
firebird-dev \ firebird-dev \
libicu-dev \
libldap2-dev \
libsasl2-dev \
libmcrypt-dev \
zlib1g-dev \
zlib1g-dev \
libmemcached-dev \
libssl-dev \
libsasl2-dev \
freetds-dev \ freetds-dev \
libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \
libenchant-dev \
libfbclient2 \ libfbclient2 \
libfreetype6-dev \
libib-util \ libib-util \
firebird-dev \ libicu-dev \
zlib1g-dev \ libjpeg-dev \
libkrb5-dev \
libldap2-dev \
libmagic-dev \
libmcrypt-dev \
libmemcached-dev \
libpng-dev \
libpq-dev \ libpq-dev \
libsqlite3-dev \
libpq-dev \
libssl-dev \
libpspell-dev \ libpspell-dev \
librabbitmq-dev \
librecode-dev \ librecode-dev \
libmm-dev \ libsasl2-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \ libsnmp-dev \
snmp \ libssl-dev \
libxml2-dev \
libtidy-dev \ libtidy-dev \
libvpx-dev \
libxml2-dev \ libxml2-dev \
libxml2-dev \ libxpm-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
libxslt-dev \ libxslt-dev \
snmp \
zlib1g-dev \ zlib1g-dev \
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
librabbitmq1 \ libaspell15 \
libenchant1c2a \
libpng12-0 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libfreetype6 \
libc-client2007e \ libc-client2007e \
libenchant1c2a \
libfbclient2 \ libfbclient2 \
libfreetype6 \
libicu52 \ libicu52 \
libjpeg62-turbo \
libmcrypt4 \ libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libmysqlclient18 \ libmysqlclient18 \
libsybdb5 \ libpng12-0 \
libfbclient2 \
libpq5 \ libpq5 \
libpq5 \ librabbitmq1 \
libaspell15 \
librecode0 \ librecode0 \
snmp \ libsybdb5 \
libtidy-0.99-0 \ libtidy-0.99-0 \
libvpx1 \
libxpm4 \
libxslt1.1 \ libxslt1.1 \
snmp \
ca-certificates ca-certificates
@@ -104,11 +80,13 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
# ---- Installing PHP Extension: ioncube ----
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
@@ -119,23 +97,59 @@ RUN set -x \
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
\ \
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
\
# ---- Installing PHP Extension: amqp ----
&& pecl install amqp-1.4.0 \ && pecl install amqp-1.4.0 \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ && (rm -rf /usr/local/lib/php/test/calendar || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ && (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/dba || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ && (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& echo "/usr" | pecl install enchant \ && echo "/usr" | pecl install enchant \
&& docker-php-ext-enable enchant \ && docker-php-ext-enable enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& (rm -rf /usr/local/lib/php/test/exif || true) \
&& (rm -rf /usr/local/lib/php/doc/exif || true) \
\
# ---- Installing PHP Extension: fileinfo ----
&& pecl install fileinfo \ && pecl install fileinfo \
&& docker-php-ext-enable fileinfo \ && docker-php-ext-enable fileinfo \
&& (rm -rf /usr/local/lib/php/test/fileinfo || true) \
&& (rm -rf /usr/local/lib/php/doc/fileinfo || true) \
\
# ---- Installing PHP Extension: ftp ----
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
&& (rm -rf /usr/local/lib/php/test/ftp || true) \
&& (rm -rf /usr/local/lib/php/doc/ftp || true) \
\
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libjpeg.* /usr/lib/ && \ && ln -s /usr/lib/x86_64-linux-gnu/libjpeg.* /usr/lib/ && \
ln -s /usr/lib/x86_64-linux-gnu/libpng.* /usr/lib/ && \ ln -s /usr/lib/x86_64-linux-gnu/libpng.* /usr/lib/ && \
ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && \ ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && \
@@ -144,107 +158,234 @@ ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype
\ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ && (rm -rf /usr/local/lib/php/test/gettext || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ && (rm -rf /usr/local/lib/php/doc/gettext || true) \
&& pecl install igbinary \ \
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary-2.0.7 \
&& docker-php-ext-enable igbinary \ && docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& pecl install intl \ && pecl install intl \
&& docker-php-ext-enable intl \ && docker-php-ext-enable intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ && (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ && (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: mcrypt ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& (rm -rf /usr/local/lib/php/test/mcrypt || true) \
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
\
# ---- Installing PHP Extension: memcache ----
&& pecl install memcache \ && pecl install memcache \
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& (rm -rf /usr/local/lib/php/test/memcache || true) \
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
\
# ---- Installing PHP Extension: memcached ----
&& pecl install memcached-2.1.0 \ && pecl install memcached-2.1.0 \
&& docker-php-ext-enable memcached \ && docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongo ----
&& yes | pecl install mongo-1.5.8 \ && yes | pecl install mongo-1.5.8 \
&& docker-php-ext-enable mongo \ && docker-php-ext-enable mongo \
&& (rm -rf /usr/local/lib/php/test/mongo || true) \
&& (rm -rf /usr/local/lib/php/doc/mongo || true) \
\
# ---- Installing PHP Extension: msgpack ----
&& pecl install msgpack-0.5.7 \ && pecl install msgpack-0.5.7 \
&& docker-php-ext-enable msgpack \ && docker-php-ext-enable msgpack \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ && (rm -rf /usr/local/lib/php/test/msgpack || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && (rm -rf /usr/local/lib/php/doc/msgpack || true) \
\
# ---- Installing PHP Extension: opcache ----
&& pecl install zendopcache \ && pecl install zendopcache \
&& docker-php-ext-enable opcache \ && docker-php-ext-enable opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ && (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: phar ----
&& pecl install phar \ && pecl install phar \
&& docker-php-ext-enable phar \ && docker-php-ext-enable phar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ && (rm -rf /usr/local/lib/php/test/phar || true) \
&& (rm -rf /usr/local/lib/php/doc/phar || true) \
\
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: recode ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& (rm -rf /usr/local/lib/php/test/recode || true) \
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
\
# ---- Installing PHP Extension: redis ----
&& pecl install redis-2.2.7 \ && pecl install redis-2.2.7 \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \ && (rm -rf /usr/local/lib/php/test/redis || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ && (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/shmop || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ && (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/snmp || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& (rm -rf /usr/local/lib/php/test/sockets || true) \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ && (rm -rf /usr/local/lib/php/test/tidy || true) \
&& (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& pecl install uploadprogress \ && pecl install uploadprogress \
&& docker-php-ext-enable uploadprogress \ && docker-php-ext-enable uploadprogress \
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xdebug ----
&& pecl install xdebug-2.2.7 \ && pecl install xdebug-2.2.7 \
&& docker-php-ext-enable xdebug \ && docker-php-ext-enable xdebug \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xdebug || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ && (rm -rf /usr/local/lib/php/doc/xdebug || true) \
&& /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ # ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\ \
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^bcmath$' \ && php -m | grep -oiE '^bcmath$' \
@@ -267,6 +408,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \ && php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \ && php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \ && php -m | grep -oiE '^gd$' \
@@ -289,6 +432,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^json$' \ && php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \ && php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^mcrypt$' \
@@ -307,8 +452,12 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \ && php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \ && php -m | grep -oiE '^pdo_dblib$' \
@@ -329,6 +478,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^posix$' \ && php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^pspell$' \ && php -m | grep -oiE '^pspell$' \
&& php-fpm -m | grep -oiE '^pspell$' \ && php-fpm -m | grep -oiE '^pspell$' \
&& php -m | grep -oiE '^readline$' \
&& php-fpm -m | grep -oiE '^readline$' \
&& php -m | grep -oiE '^recode$' \ && php -m | grep -oiE '^recode$' \
&& php-fpm -m | grep -oiE '^recode$' \ && php-fpm -m | grep -oiE '^recode$' \
&& php -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^redis$' \

View File

@@ -18,94 +18,66 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
librabbitmq-dev \ firebird-dev \
freetds-dev \
libbz2-dev \ libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
libxml2-dev \
libenchant-dev \ libenchant-dev \
libssl-dev \ libfbclient2 \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \ libfreetype6-dev \
libgmp-dev \ libgmp-dev \
libmagickwand-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libfbclient2 \
libib-util \ libib-util \
firebird-dev \
libicu-dev \ libicu-dev \
libjpeg-dev \
libkrb5-dev \
libldap2-dev \ libldap2-dev \
libsasl2-dev \ libmagickwand-dev \
libmcrypt-dev \ libmcrypt-dev \
zlib1g-dev \
zlib1g-dev \
libmemcached-dev \ libmemcached-dev \
libssl-dev \
libsasl2-dev \
libssl-dev \
libsasl2-dev \
freetds-dev \
libfbclient2 \
libib-util \
firebird-dev \
zlib1g-dev \
libpq-dev \
libsqlite3-dev \
libpq-dev \
libssl-dev \
libpspell-dev \
librecode-dev \
librdkafka-dev \
libmm-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libxml2-dev \
libnghttp2-dev \ libnghttp2-dev \
libpng-dev \
libpq-dev \
libpspell-dev \
librabbitmq-dev \
librdkafka-dev \
libsasl2-dev \
libsnmp-dev \
libssl-dev \ libssl-dev \
libtidy-dev \ libtidy-dev \
libvpx-dev \
libxml2-dev \ libxml2-dev \
libxml2-dev \ libxpm-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
libxslt-dev \ libxslt-dev \
snmp \
zlib1g-dev \ zlib1g-dev \
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
librabbitmq1 \ libaspell15 \
libenchant1c2a \
libpng12-0 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libfreetype6 \
libmagickwand-6.q16-2 \
libc-client2007e \ libc-client2007e \
libenchant1c2a \
libfbclient2 \ libfbclient2 \
libfreetype6 \
libicu52 \ libicu52 \
libjpeg62-turbo \
libmagickwand-6.q16-2 \
libmcrypt4 \ libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libmysqlclient18 \ libmysqlclient18 \
libsybdb5 \
libfbclient2 \
libpq5 \
libpq5 \
libaspell15 \
librecode0 \
librdkafka1 \
snmp \
libnghttp2-5 \ libnghttp2-5 \
libpng12-0 \
libpq5 \
librabbitmq1 \
librdkafka1 \
librecode0 \
libsybdb5 \
libtidy-0.99-0 \ libtidy-0.99-0 \
libvpx1 \
libxpm4 \
libxslt1.1 \ libxslt1.1 \
snmp \
ca-certificates ca-certificates
@@ -113,11 +85,13 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
# ---- Installing PHP Extension: ioncube ----
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
@@ -128,141 +102,338 @@ RUN set -x \
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
\ \
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
\
# ---- Installing PHP Extension: amqp ----
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
\
# ---- Installing PHP Extension: apcu ----
&& pecl install apcu-4.0.11 \ && pecl install apcu-4.0.11 \
&& docker-php-ext-enable apcu \ && docker-php-ext-enable apcu \
&& (rm -rf /usr/local/lib/php/test/apcu || true) \
&& (rm -rf /usr/local/lib/php/doc/apcu || true) \
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ && (rm -rf /usr/local/lib/php/test/calendar || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ && (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/dba || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ && (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && (rm -rf /usr/local/lib/php/test/exif || true) \
&& (rm -rf /usr/local/lib/php/doc/exif || true) \
\
# ---- Installing PHP Extension: ftp ----
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
&& (rm -rf /usr/local/lib/php/test/ftp || true) \
&& (rm -rf /usr/local/lib/php/doc/ftp || true) \
\
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && mkdir /usr/include/freetype2/freetype && ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && mkdir /usr/include/freetype2/freetype && ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
\
# ---- Installing PHP Extension: gmp ----
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ && (rm -rf /usr/local/lib/php/test/gmp || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ && (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \ && pecl install igbinary \
&& docker-php-ext-enable igbinary \ && docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imagick ----
&& pecl install imagick-3.3.0 \ && pecl install imagick-3.3.0 \
&& docker-php-ext-enable imagick \ && docker-php-ext-enable imagick \
&& (rm -rf /usr/local/lib/php/test/imagick || true) \
&& (rm -rf /usr/local/lib/php/doc/imagick || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ && (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: mbstring ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \
&& (rm -rf /usr/local/lib/php/test/mbstring || true) \
&& (rm -rf /usr/local/lib/php/doc/mbstring || true) \
\
# ---- Installing PHP Extension: mcrypt ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& (rm -rf /usr/local/lib/php/test/mcrypt || true) \
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
\
# ---- Installing PHP Extension: memcache ----
&& pecl install memcache \ && pecl install memcache \
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& (rm -rf /usr/local/lib/php/test/memcache || true) \
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
\
# ---- Installing PHP Extension: memcached ----
&& pecl install memcached-2.2.0 \ && pecl install memcached-2.2.0 \
&& docker-php-ext-enable memcached \ && docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongo ----
&& yes | pecl install mongo \ && yes | pecl install mongo \
&& docker-php-ext-enable mongo \ && docker-php-ext-enable mongo \
&& (rm -rf /usr/local/lib/php/test/mongo || true) \
&& (rm -rf /usr/local/lib/php/doc/mongo || true) \
\
# ---- Installing PHP Extension: mongodb ----
&& pecl install mongodb-0.6.3 \ && pecl install mongodb-0.6.3 \
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& (rm -rf /usr/local/lib/php/test/mongodb || true) \
&& (rm -rf /usr/local/lib/php/doc/mongodb || true) \
\
# ---- Installing PHP Extension: msgpack ----
&& pecl install msgpack-0.5.7 \ && pecl install msgpack-0.5.7 \
&& docker-php-ext-enable msgpack \ && docker-php-ext-enable msgpack \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ && (rm -rf /usr/local/lib/php/test/msgpack || true) \
&& (rm -rf /usr/local/lib/php/doc/msgpack || true) \
\
# ---- Installing PHP Extension: mysqli ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& (rm -rf /usr/local/lib/php/test/mysqli || true) \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: opcache ----
&& pecl install zendopcache \ && pecl install zendopcache \
&& docker-php-ext-enable opcache \ && docker-php-ext-enable opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ && (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_mysql ----
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: phalcon ----
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \ && cd /tmp/phalcon \
&& git checkout phalcon-v2.0.9 \ && git checkout phalcon-v2.0.9 \
&& cd build && ./install \ && cd build && ./install >/dev/null \
&& docker-php-ext-enable phalcon \ && docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ && (rm -rf /usr/local/lib/php/doc/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ \
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ && (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: redis ----
&& pecl install redis \ && pecl install redis \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& (rm -rf /usr/local/lib/php/test/redis || true) \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \ && pecl install rdkafka \
&& docker-php-ext-enable rdkafka \ && docker-php-ext-enable rdkafka \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \ && (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/shmop || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ && (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: soap ----
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& (rm -rf /usr/local/lib/php/test/soap || true) \
&& (rm -rf /usr/local/lib/php/doc/soap || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& (rm -rf /usr/local/lib/php/test/sockets || true) \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: swoole ----
&& pecl install swoole-1.9.23 \ && pecl install swoole-1.9.23 \
&& docker-php-ext-enable swoole \ && docker-php-ext-enable swoole \
&& (rm -rf /usr/local/lib/php/test/swoole || true) \
&& (rm -rf /usr/local/lib/php/doc/swoole || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ && (rm -rf /usr/local/lib/php/test/tidy || true) \
&& (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& pecl install uploadprogress \ && pecl install uploadprogress \
&& docker-php-ext-enable uploadprogress \ && docker-php-ext-enable uploadprogress \
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xdebug ----
&& pecl install xdebug-2.2.7 \ && pecl install xdebug-2.2.7 \
&& docker-php-ext-enable xdebug \ && docker-php-ext-enable xdebug \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xdebug || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ && (rm -rf /usr/local/lib/php/doc/xdebug || true) \
&& /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ # ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\ \
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \
@@ -287,6 +458,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \ && php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \ && php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \ && php -m | grep -oiE '^gd$' \
@@ -313,6 +486,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^json$' \ && php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \ && php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^mcrypt$' \
@@ -331,10 +506,16 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^mysql$' \ && php-fpm -m | grep -oiE '^mysql$' \
&& php -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \ && php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \ && php -m | grep -oiE '^pdo_dblib$' \

View File

@@ -18,94 +18,66 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
librabbitmq-dev \ firebird-dev \
freetds-dev \
libbz2-dev \ libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
libxml2-dev \
libenchant-dev \ libenchant-dev \
libssl-dev \ libfbclient2 \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \ libfreetype6-dev \
libgmp-dev \ libgmp-dev \
libmagickwand-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libfbclient2 \
libib-util \ libib-util \
firebird-dev \
libicu-dev \ libicu-dev \
libjpeg-dev \
libkrb5-dev \
libldap2-dev \ libldap2-dev \
libsasl2-dev \ libmagickwand-dev \
libmcrypt-dev \ libmcrypt-dev \
zlib1g-dev \
zlib1g-dev \
libmemcached-dev \ libmemcached-dev \
libssl-dev \
libsasl2-dev \
libssl-dev \
libsasl2-dev \
freetds-dev \
libfbclient2 \
libib-util \
firebird-dev \
zlib1g-dev \
libpq-dev \
libsqlite3-dev \
libpq-dev \
libssl-dev \
libpspell-dev \
librecode-dev \
librdkafka-dev \
libmm-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libxml2-dev \
libnghttp2-dev \ libnghttp2-dev \
libpng-dev \
libpq-dev \
libpspell-dev \
librabbitmq-dev \
librdkafka-dev \
libsasl2-dev \
libsnmp-dev \
libssl-dev \ libssl-dev \
libtidy-dev \ libtidy-dev \
libvpx-dev \
libxml2-dev \ libxml2-dev \
libxml2-dev \ libxpm-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
libxslt-dev \ libxslt-dev \
snmp \
zlib1g-dev \ zlib1g-dev \
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
librabbitmq1 \ libaspell15 \
libenchant1c2a \
libpng12-0 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libfreetype6 \
libmagickwand-6.q16-2 \
libc-client2007e \ libc-client2007e \
libenchant1c2a \
libfbclient2 \ libfbclient2 \
libfreetype6 \
libicu52 \ libicu52 \
libjpeg62-turbo \
libmagickwand-6.q16-2 \
libmcrypt4 \ libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libmysqlclient18 \ libmysqlclient18 \
libsybdb5 \
libfbclient2 \
libpq5 \
libpq5 \
libaspell15 \
librecode0 \
librdkafka1 \
snmp \
libnghttp2-5 \ libnghttp2-5 \
libpng12-0 \
libpq5 \
librabbitmq1 \
librdkafka1 \
librecode0 \
libsybdb5 \
libtidy-0.99-0 \ libtidy-0.99-0 \
libvpx1 \
libxpm4 \
libxslt1.1 \ libxslt1.1 \
snmp \
ca-certificates ca-certificates
@@ -113,11 +85,13 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
# ---- Installing PHP Extension: ioncube ----
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
@@ -128,141 +102,343 @@ RUN set -x \
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
\ \
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
\
# ---- Installing PHP Extension: amqp ----
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
\
# ---- Installing PHP Extension: apcu ----
&& pecl install apcu-4.0.11 \ && pecl install apcu-4.0.11 \
&& docker-php-ext-enable apcu \ && docker-php-ext-enable apcu \
&& (rm -rf /usr/local/lib/php/test/apcu || true) \
&& (rm -rf /usr/local/lib/php/doc/apcu || true) \
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install bcmath \ && /usr/local/bin/docker-php-ext-install bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install bz2 \ && /usr/local/bin/docker-php-ext-install bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install calendar \ && /usr/local/bin/docker-php-ext-install calendar \
&& /usr/local/bin/docker-php-ext-install ctype \ && (rm -rf /usr/local/lib/php/test/calendar || true) \
&& /usr/local/bin/docker-php-ext-install curl \ && (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install dba \ && /usr/local/bin/docker-php-ext-install dba \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/dba || true) \
&& /usr/local/bin/docker-php-ext-install dom \ && (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& /usr/local/bin/docker-php-ext-install enchant \ && /usr/local/bin/docker-php-ext-install enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install exif \ && /usr/local/bin/docker-php-ext-install exif \
&& /usr/local/bin/docker-php-ext-install fileinfo \ && (rm -rf /usr/local/lib/php/test/exif || true) \
&& (rm -rf /usr/local/lib/php/doc/exif || true) \
\
# ---- Installing PHP Extension: ftp ----
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install ftp \ && /usr/local/bin/docker-php-ext-install ftp \
&& (rm -rf /usr/local/lib/php/test/ftp || true) \
&& (rm -rf /usr/local/lib/php/doc/ftp || true) \
\
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install gd \ && /usr/local/bin/docker-php-ext-install gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install gettext \ && /usr/local/bin/docker-php-ext-install gettext \
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
\
# ---- Installing PHP Extension: gmp ----
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install gmp \ && /usr/local/bin/docker-php-ext-install gmp \
&& /usr/local/bin/docker-php-ext-install hash \ && (rm -rf /usr/local/lib/php/test/gmp || true) \
&& /usr/local/bin/docker-php-ext-install iconv \ && (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \ && pecl install igbinary \
&& docker-php-ext-enable igbinary \ && docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imagick ----
&& pecl install imagick \ && pecl install imagick \
&& docker-php-ext-enable imagick \ && docker-php-ext-enable imagick \
&& (rm -rf /usr/local/lib/php/test/imagick || true) \
&& (rm -rf /usr/local/lib/php/doc/imagick || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install imap \ && /usr/local/bin/docker-php-ext-install imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install interbase \ && /usr/local/bin/docker-php-ext-install interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& /usr/local/bin/docker-php-ext-install intl \ && /usr/local/bin/docker-php-ext-install intl \
&& /usr/local/bin/docker-php-ext-install json \ && (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install ldap \ && /usr/local/bin/docker-php-ext-install ldap \
&& (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: mbstring ----
&& /usr/local/bin/docker-php-ext-install mbstring \ && /usr/local/bin/docker-php-ext-install mbstring \
&& (rm -rf /usr/local/lib/php/test/mbstring || true) \
&& (rm -rf /usr/local/lib/php/doc/mbstring || true) \
\
# ---- Installing PHP Extension: mcrypt ----
&& /usr/local/bin/docker-php-ext-install mcrypt \ && /usr/local/bin/docker-php-ext-install mcrypt \
&& (rm -rf /usr/local/lib/php/test/mcrypt || true) \
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
\
# ---- Installing PHP Extension: memcache ----
&& pecl install memcache \ && pecl install memcache \
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& (rm -rf /usr/local/lib/php/test/memcache || true) \
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
\
# ---- Installing PHP Extension: memcached ----
&& pecl install memcached-2.2.0 \ && pecl install memcached-2.2.0 \
&& docker-php-ext-enable memcached \ && docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongo ----
&& yes | pecl install mongo \ && yes | pecl install mongo \
&& docker-php-ext-enable mongo \ && docker-php-ext-enable mongo \
&& (rm -rf /usr/local/lib/php/test/mongo || true) \
&& (rm -rf /usr/local/lib/php/doc/mongo || true) \
\
# ---- Installing PHP Extension: mongodb ----
&& pecl install mongodb-1.2.11 \ && pecl install mongodb-1.2.11 \
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& (rm -rf /usr/local/lib/php/test/mongodb || true) \
&& (rm -rf /usr/local/lib/php/doc/mongodb || true) \
\
# ---- Installing PHP Extension: msgpack ----
&& pecl install msgpack-0.5.7 \ && pecl install msgpack-0.5.7 \
&& docker-php-ext-enable msgpack \ && docker-php-ext-enable msgpack \
&& (rm -rf /usr/local/lib/php/test/msgpack || true) \
&& (rm -rf /usr/local/lib/php/doc/msgpack || true) \
\
# ---- Installing PHP Extension: mysql ----
&& /usr/local/bin/docker-php-ext-install mysql \ && /usr/local/bin/docker-php-ext-install mysql \
&& (rm -rf /usr/local/lib/php/test/mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/mysql || true) \
\
# ---- Installing PHP Extension: mysqli ----
&& /usr/local/bin/docker-php-ext-install mysqli \ && /usr/local/bin/docker-php-ext-install mysqli \
&& (rm -rf /usr/local/lib/php/test/mysqli || true) \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: opcache ----
&& pecl install zendopcache \ && pecl install zendopcache \
&& docker-php-ext-enable opcache \ && docker-php-ext-enable opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install pcntl \ && /usr/local/bin/docker-php-ext-install pcntl \
&& /usr/local/bin/docker-php-ext-install pdo \ && (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install pdo_dblib \ && /usr/local/bin/docker-php-ext-install pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install pdo_firebird \ && /usr/local/bin/docker-php-ext-install pdo_firebird \
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_mysql ----
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
&& /usr/local/bin/docker-php-ext-install pdo_mysql \ && /usr/local/bin/docker-php-ext-install pdo_mysql \
&& (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install pdo_pgsql \ && /usr/local/bin/docker-php-ext-install pdo_pgsql \
&& /usr/local/bin/docker-php-ext-install pdo_sqlite \ && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install pgsql \ && /usr/local/bin/docker-php-ext-install pgsql \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: phalcon ----
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \ && cd /tmp/phalcon \
&& git checkout phalcon-v2.0.13 \ && git checkout phalcon-v2.0.13 \
&& cd build && ./install \ && cd build && ./install \
&& docker-php-ext-enable phalcon \ && docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install phar \ && (rm -rf /usr/local/lib/php/doc/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install posix \ \
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install pspell \ && /usr/local/bin/docker-php-ext-install pspell \
&& /usr/local/bin/docker-php-ext-install recode \ && (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: redis ----
&& pecl install redis \ && pecl install redis \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& (rm -rf /usr/local/lib/php/test/redis || true) \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \ && pecl install rdkafka \
&& docker-php-ext-enable rdkafka \ && docker-php-ext-enable rdkafka \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \ && (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& /usr/local/bin/docker-php-ext-install session \ && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install shmop \ && /usr/local/bin/docker-php-ext-install shmop \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/shmop || true) \
&& /usr/local/bin/docker-php-ext-install simplexml \ && (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install snmp \ && /usr/local/bin/docker-php-ext-install snmp \
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: soap ----
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install soap \ && /usr/local/bin/docker-php-ext-install soap \
&& (rm -rf /usr/local/lib/php/test/soap || true) \
&& (rm -rf /usr/local/lib/php/doc/soap || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install sockets \ && /usr/local/bin/docker-php-ext-install sockets \
&& (rm -rf /usr/local/lib/php/test/sockets || true) \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: swoole ----
&& pecl install swoole-1.9.23 \ && pecl install swoole-1.9.23 \
&& docker-php-ext-enable swoole \ && docker-php-ext-enable swoole \
&& (rm -rf /usr/local/lib/php/test/swoole || true) \
&& (rm -rf /usr/local/lib/php/doc/swoole || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install sysvmsg \ && /usr/local/bin/docker-php-ext-install sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install sysvsem \ && /usr/local/bin/docker-php-ext-install sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install sysvshm \ && /usr/local/bin/docker-php-ext-install sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install tidy \ && /usr/local/bin/docker-php-ext-install tidy \
&& /usr/local/bin/docker-php-ext-install tokenizer \ && (rm -rf /usr/local/lib/php/test/tidy || true) \
&& (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& pecl install uploadprogress \ && pecl install uploadprogress \
&& docker-php-ext-enable uploadprogress \ && docker-php-ext-enable uploadprogress \
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install wddx \ && /usr/local/bin/docker-php-ext-install wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xdebug ----
&& pecl install xdebug-2.4.1 \ && pecl install xdebug-2.4.1 \
&& docker-php-ext-enable xdebug \ && docker-php-ext-enable xdebug \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xdebug || true) \
&& /usr/local/bin/docker-php-ext-install xml \ && (rm -rf /usr/local/lib/php/doc/xdebug || true) \
&& /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ \
&& /usr/local/bin/docker-php-ext-install xmlreader \ # ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install xmlrpc \ && /usr/local/bin/docker-php-ext-install xmlrpc \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& /usr/local/bin/docker-php-ext-install xmlwriter \ && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install xsl \ && /usr/local/bin/docker-php-ext-install xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
&& /usr/local/bin/docker-php-ext-install zip \ && /usr/local/bin/docker-php-ext-install zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\ \
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \
@@ -287,6 +463,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \ && php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \ && php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \ && php -m | grep -oiE '^gd$' \
@@ -313,6 +491,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^json$' \ && php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \ && php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^mcrypt$' \
@@ -331,10 +511,16 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^mysql$' \ && php-fpm -m | grep -oiE '^mysql$' \
&& php -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \ && php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \ && php -m | grep -oiE '^pdo_dblib$' \
@@ -357,6 +543,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^posix$' \ && php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^pspell$' \ && php -m | grep -oiE '^pspell$' \
&& php-fpm -m | grep -oiE '^pspell$' \ && php-fpm -m | grep -oiE '^pspell$' \
&& php -m | grep -oiE '^readline$' \
&& php-fpm -m | grep -oiE '^readline$' \
&& php -m | grep -oiE '^recode$' \ && php -m | grep -oiE '^recode$' \
&& php-fpm -m | grep -oiE '^recode$' \ && php-fpm -m | grep -oiE '^recode$' \
&& php -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^redis$' \

View File

@@ -18,96 +18,67 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
librabbitmq-dev \ firebird-dev \
freetds-dev \
libbz2-dev \ libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
libxml2-dev \
libenchant-dev \ libenchant-dev \
libssl-dev \ libfbclient2 \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \ libfreetype6-dev \
libgmp-dev \ libgmp-dev \
libmagickwand-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libfbclient2 \
libib-util \ libib-util \
firebird-dev \
libicu-dev \ libicu-dev \
libjpeg-dev \
libkrb5-dev \
libldap2-dev \ libldap2-dev \
libsasl2-dev \ libmagickwand-dev \
libmcrypt-dev \ libmcrypt-dev \
zlib1g-dev \
zlib1g-dev \
libmemcached-dev \ libmemcached-dev \
libssl-dev \
libsasl2-dev \
libssl-dev \
libsasl2-dev \
freetds-dev \
libfbclient2 \
libib-util \
firebird-dev \
zlib1g-dev \
libpq-dev \
libsqlite3-dev \
libpq-dev \
libssl-dev \
libpspell-dev \
libedit-dev \
libreadline-dev \
librecode-dev \
librdkafka-dev \
libmm-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libxml2-dev \
libnghttp2-dev \ libnghttp2-dev \
libpng-dev \
libpq-dev \
libpspell-dev \
librabbitmq-dev \
librdkafka-dev \
librecode-dev \
libsasl2-dev \
libsnmp-dev \
libssl-dev \ libssl-dev \
libtidy-dev \ libtidy-dev \
libvpx-dev \
libxml2-dev \ libxml2-dev \
libxml2-dev \ libxpm-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
libxslt-dev \ libxslt-dev \
snmp \
zlib1g-dev \ zlib1g-dev \
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
librabbitmq1 \ libaspell15 \
libenchant1c2a \
libpng12-0 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libfreetype6 \
libmagickwand-6.q16-2 \
libc-client2007e \ libc-client2007e \
libenchant1c2a \
libfbclient2 \ libfbclient2 \
libfreetype6 \
libicu52 \ libicu52 \
libjpeg62-turbo \
libmagickwand-6.q16-2 \
libmcrypt4 \ libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libmysqlclient18 \ libmysqlclient18 \
libsybdb5 \
libfbclient2 \
libpq5 \
libpq5 \
libaspell15 \
librecode0 \
librdkafka1 \
snmp \
libnghttp2-5 \ libnghttp2-5 \
libpng12-0 \
libpq5 \
librabbitmq1 \
librdkafka1 \
librecode0 \
libsybdb5 \
libtidy-0.99-0 \ libtidy-0.99-0 \
libvpx1 \
libxpm4 \
libxslt1.1 \ libxslt1.1 \
snmp \
ca-certificates ca-certificates
@@ -115,11 +86,13 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
# ---- Installing PHP Extension: ioncube ----
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
@@ -130,141 +103,336 @@ RUN set -x \
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
\ \
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
\
# ---- Installing PHP Extension: amqp ----
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
\
# ---- Installing PHP Extension: apcu ----
&& pecl install apcu-4.0.11 \ && pecl install apcu-4.0.11 \
&& docker-php-ext-enable apcu \ && docker-php-ext-enable apcu \
&& (rm -rf /usr/local/lib/php/test/apcu || true) \
&& (rm -rf /usr/local/lib/php/doc/apcu || true) \
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ && (rm -rf /usr/local/lib/php/test/calendar || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ && (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/dba || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ && (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && (rm -rf /usr/local/lib/php/test/exif || true) \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ && (rm -rf /usr/local/lib/php/doc/exif || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ \
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
\
# ---- Installing PHP Extension: gmp ----
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ && (rm -rf /usr/local/lib/php/test/gmp || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ && (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \ && pecl install igbinary \
&& docker-php-ext-enable igbinary \ && docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imagick ----
&& pecl install imagick \ && pecl install imagick \
&& docker-php-ext-enable imagick \ && docker-php-ext-enable imagick \
&& (rm -rf /usr/local/lib/php/test/imagick || true) \
&& (rm -rf /usr/local/lib/php/doc/imagick || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ && (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ && (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: mcrypt ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& (rm -rf /usr/local/lib/php/test/mcrypt || true) \
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
\
# ---- Installing PHP Extension: memcache ----
&& pecl install memcache \ && pecl install memcache \
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& (rm -rf /usr/local/lib/php/test/memcache || true) \
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
\
# ---- Installing PHP Extension: memcached ----
&& pecl install memcached-2.2.0 \ && pecl install memcached-2.2.0 \
&& docker-php-ext-enable memcached \ && docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongo ----
&& yes | pecl install mongo \ && yes | pecl install mongo \
&& docker-php-ext-enable mongo \ && docker-php-ext-enable mongo \
&& (rm -rf /usr/local/lib/php/test/mongo || true) \
&& (rm -rf /usr/local/lib/php/doc/mongo || true) \
\
# ---- Installing PHP Extension: mongodb ----
&& pecl install mongodb \ && pecl install mongodb \
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& (rm -rf /usr/local/lib/php/test/mongodb || true) \
&& (rm -rf /usr/local/lib/php/doc/mongodb || true) \
\
# ---- Installing PHP Extension: msgpack ----
&& pecl install msgpack-0.5.7 \ && pecl install msgpack-0.5.7 \
&& docker-php-ext-enable msgpack \ && docker-php-ext-enable msgpack \
&& (rm -rf /usr/local/lib/php/test/msgpack || true) \
&& (rm -rf /usr/local/lib/php/doc/msgpack || true) \
\
# ---- Installing PHP Extension: mysql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
&& (rm -rf /usr/local/lib/php/test/mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/mysql || true) \
\
# ---- Installing PHP Extension: mysqli ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& (rm -rf /usr/local/lib/php/test/mysqli || true) \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: opcache ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ && (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_mysql ----
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: phalcon ----
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \ && cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd build && ./install \ && cd build && ./install \
&& docker-php-ext-enable phalcon \ && docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ && (rm -rf /usr/local/lib/php/doc/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ \
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ && (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: recode ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& (rm -rf /usr/local/lib/php/test/recode || true) \
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
\
# ---- Installing PHP Extension: redis ----
&& pecl install redis \ && pecl install redis \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& (rm -rf /usr/local/lib/php/test/redis || true) \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \ && pecl install rdkafka \
&& docker-php-ext-enable rdkafka \ && docker-php-ext-enable rdkafka \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \ && (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/shmop || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ && (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: soap ----
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& (rm -rf /usr/local/lib/php/test/soap || true) \
&& (rm -rf /usr/local/lib/php/doc/soap || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& (rm -rf /usr/local/lib/php/test/sockets || true) \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: swoole ----
&& pecl install swoole-1.9.23 \ && pecl install swoole-1.9.23 \
&& docker-php-ext-enable swoole \ && docker-php-ext-enable swoole \
&& (rm -rf /usr/local/lib/php/test/swoole || true) \
&& (rm -rf /usr/local/lib/php/doc/swoole || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ && (rm -rf /usr/local/lib/php/test/tidy || true) \
&& (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& pecl install uploadprogress \ && pecl install uploadprogress \
&& docker-php-ext-enable uploadprogress \ && docker-php-ext-enable uploadprogress \
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xdebug ----
&& pecl install xdebug-2.4.1 \ && pecl install xdebug-2.4.1 \
&& docker-php-ext-enable xdebug \ && docker-php-ext-enable xdebug \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xdebug || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ && (rm -rf /usr/local/lib/php/doc/xdebug || true) \
&& /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ # ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\ \
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \
@@ -289,6 +457,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \ && php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \ && php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \ && php -m | grep -oiE '^gd$' \
@@ -315,6 +485,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^json$' \ && php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \ && php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^mcrypt$' \
@@ -333,10 +505,16 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^mysql$' \ && php-fpm -m | grep -oiE '^mysql$' \
&& php -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \ && php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \ && php -m | grep -oiE '^pdo_dblib$' \

View File

@@ -18,99 +18,71 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
librabbitmq-dev \
libbz2-dev \
libcurl4-openssl-dev \
libxml2-dev \
libenchant-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libwebp-dev \
libgmp-dev \
libmagickwand-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libfbclient2 \
libib-util \
firebird-dev \ firebird-dev \
libicu-dev \
libldap2-dev \
libsasl2-dev \
libmcrypt-dev \
zlib1g-dev \
zlib1g-dev \
libmemcached-dev \
libssl-dev \
libsasl2-dev \
libssl-dev \
libsasl2-dev \
freetds-dev \ freetds-dev \
libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \
libenchant-dev \
libfbclient2 \ libfbclient2 \
libfreetype6-dev \
libgmp-dev \
libib-util \ libib-util \
firebird-dev \ libicu-dev \
zlib1g-dev \ libjpeg-dev \
libpq-dev \ libkrb5-dev \
libsqlite3-dev \ libldap2-dev \
libmagickwand-dev \
libmcrypt-dev \
libmemcached-dev \
libnghttp2-dev \
libpng-dev \
libpq-dev \ libpq-dev \
libpspell-dev \ libpspell-dev \
libedit-dev \ librabbitmq-dev \
libreadline-dev \
librecode-dev \
librdkafka-dev \ librdkafka-dev \
libmm-dev \ librecode-dev \
libxml2-dev \ libsasl2-dev \
libssl-dev \
libsnmp-dev \ libsnmp-dev \
snmp \
libxml2-dev \
libnghttp2-dev \
libssl-dev \ libssl-dev \
libtidy-dev \ libtidy-dev \
libvpx-dev \
libwebp-dev \
libxml2-dev \ libxml2-dev \
libxml2-dev \ libxpm-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
libxslt-dev \ libxslt-dev \
zlib1g-dev \
libzip-dev \ libzip-dev \
snmp \
zlib1g-dev \
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
librabbitmq4 \ libaspell15 \
libenchant1c2a \
libpng16-16 \
libjpeg62-turbo \
libxpm4 \
libvpx4 \
libfreetype6 \
libwebp6 \
libmagickwand-6.q16-3 \
libc-client2007e \ libc-client2007e \
libenchant1c2a \
libfbclient2 \ libfbclient2 \
libfreetype6 \
libicu57 \ libicu57 \
libjpeg62-turbo \
libmagickwand-6.q16-3 \
libmariadbclient18 \
libmcrypt4 \ libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libmariadbclient18 \
libsybdb5 \
libfbclient2 \
libpq5 \
libpq5 \
libaspell15 \
librecode0 \
librdkafka1 \
snmp \
libnghttp2-14 \ libnghttp2-14 \
libpng16-16 \
libpq5 \
librabbitmq4 \
librdkafka1 \
librecode0 \
libsybdb5 \
libtidy5 \ libtidy5 \
libvpx4 \
libwebp6 \
libxpm4 \
libxslt1.1 \ libxslt1.1 \
libzip4 \ libzip4 \
snmp \
ca-certificates ca-certificates
@@ -118,11 +90,13 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
# ---- Installing PHP Extension: ioncube ----
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
@@ -133,140 +107,336 @@ RUN set -x \
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
\ \
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
\
# ---- Installing PHP Extension: amqp ----
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
\
# ---- Installing PHP Extension: apcu ----
&& pecl install apcu-4.0.11 \ && pecl install apcu-4.0.11 \
&& docker-php-ext-enable apcu \ && docker-php-ext-enable apcu \
&& (rm -rf /usr/local/lib/php/test/apcu || true) \
&& (rm -rf /usr/local/lib/php/doc/apcu || true) \
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ && (rm -rf /usr/local/lib/php/test/calendar || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ && (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/dba || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ && (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && (rm -rf /usr/local/lib/php/test/exif || true) \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ && (rm -rf /usr/local/lib/php/doc/exif || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ \
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
\
# ---- Installing PHP Extension: gmp ----
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ && (rm -rf /usr/local/lib/php/test/gmp || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ && (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \ && pecl install igbinary \
&& docker-php-ext-enable igbinary \ && docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imagick ----
&& pecl install imagick \ && pecl install imagick \
&& docker-php-ext-enable imagick \ && docker-php-ext-enable imagick \
&& (rm -rf /usr/local/lib/php/test/imagick || true) \
&& (rm -rf /usr/local/lib/php/doc/imagick || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ && (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ && (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: mcrypt ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& (rm -rf /usr/local/lib/php/test/mcrypt || true) \
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
\
# ---- Installing PHP Extension: memcache ----
&& pecl install memcache \ && pecl install memcache \
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& (rm -rf /usr/local/lib/php/test/memcache || true) \
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
\
# ---- Installing PHP Extension: memcached ----
&& pecl install memcached-2.2.0 \ && pecl install memcached-2.2.0 \
&& docker-php-ext-enable memcached \ && docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongo ----
&& yes | pecl install mongo \ && yes | pecl install mongo \
&& docker-php-ext-enable mongo \ && docker-php-ext-enable mongo \
&& (rm -rf /usr/local/lib/php/test/mongo || true) \
&& (rm -rf /usr/local/lib/php/doc/mongo || true) \
\
# ---- Installing PHP Extension: mongodb ----
&& pecl install mongodb \ && pecl install mongodb \
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& (rm -rf /usr/local/lib/php/test/mongodb || true) \
&& (rm -rf /usr/local/lib/php/doc/mongodb || true) \
\
# ---- Installing PHP Extension: msgpack ----
&& pecl install msgpack-0.5.7 \ && pecl install msgpack-0.5.7 \
&& docker-php-ext-enable msgpack \ && docker-php-ext-enable msgpack \
&& (rm -rf /usr/local/lib/php/test/msgpack || true) \
&& (rm -rf /usr/local/lib/php/doc/msgpack || true) \
\
# ---- Installing PHP Extension: mysql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
&& (rm -rf /usr/local/lib/php/test/mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/mysql || true) \
\
# ---- Installing PHP Extension: mysqli ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& (rm -rf /usr/local/lib/php/test/mysqli || true) \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: opcache ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ && (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_mysql ----
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: phalcon ----
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \ && cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd build && ./install \ && cd build && ./install \
&& docker-php-ext-enable phalcon \ && docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ && (rm -rf /usr/local/lib/php/doc/phalcon || true) \
\
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ && (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: recode ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& (rm -rf /usr/local/lib/php/test/recode || true) \
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
\
# ---- Installing PHP Extension: redis ----
&& pecl install redis \ && pecl install redis \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& (rm -rf /usr/local/lib/php/test/redis || true) \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \ && pecl install rdkafka \
&& docker-php-ext-enable rdkafka \ && docker-php-ext-enable rdkafka \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \ && (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/shmop || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ && (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: soap ----
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& (rm -rf /usr/local/lib/php/test/soap || true) \
&& (rm -rf /usr/local/lib/php/doc/soap || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& (rm -rf /usr/local/lib/php/test/sockets || true) \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: swoole ----
&& pecl install swoole-1.9.23 \ && pecl install swoole-1.9.23 \
&& docker-php-ext-enable swoole \ && docker-php-ext-enable swoole \
&& (rm -rf /usr/local/lib/php/test/swoole || true) \
&& (rm -rf /usr/local/lib/php/doc/swoole || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ && (rm -rf /usr/local/lib/php/test/tidy || true) \
&& (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& pecl install uploadprogress \ && pecl install uploadprogress \
&& docker-php-ext-enable uploadprogress \ && docker-php-ext-enable uploadprogress \
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xdebug ----
&& pecl install xdebug-2.4.1 \ && pecl install xdebug-2.4.1 \
&& docker-php-ext-enable xdebug \ && docker-php-ext-enable xdebug \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xdebug || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ && (rm -rf /usr/local/lib/php/doc/xdebug || true) \
&& /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ # ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\ \
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \
@@ -291,6 +461,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \ && php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \ && php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \ && php -m | grep -oiE '^gd$' \
@@ -317,6 +489,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^json$' \ && php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \ && php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^mcrypt$' \
@@ -335,10 +509,16 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^mysql$' \ && php-fpm -m | grep -oiE '^mysql$' \
&& php -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \ && php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \ && php -m | grep -oiE '^pdo_dblib$' \

View File

@@ -18,96 +18,70 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
librabbitmq-dev \
libbz2-dev \
libcurl4-openssl-dev \
libxml2-dev \
libenchant-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libwebp-dev \
libgmp-dev \
libmagickwand-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libfbclient2 \
libib-util \
firebird-dev \ firebird-dev \
libicu-dev \
bison \
libldap2-dev \
libsasl2-dev \
libmcrypt-dev \
zlib1g-dev \
zlib1g-dev \
libmemcached-dev \
libssl-dev \
libsasl2-dev \
freetds-dev \ freetds-dev \
libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \
libenchant-dev \
libfbclient2 \ libfbclient2 \
libfreetype6-dev \
libgmp-dev \
libib-util \ libib-util \
firebird-dev \ libicu-dev \
zlib1g-dev \ libjpeg-dev \
libpq-dev \ libkrb5-dev \
libsqlite3-dev \ libldap2-dev \
libmagickwand-dev \
libmcrypt-dev \
libmemcached-dev \
libnghttp2-dev \
libpng-dev \
libpq-dev \ libpq-dev \
libpspell-dev \ libpspell-dev \
libedit-dev \ librabbitmq-dev \
libreadline-dev \
librecode-dev \
librdkafka-dev \ librdkafka-dev \
libmm-dev \ librecode-dev \
libxml2-dev \ libsasl2-dev \
libssl-dev \
libsnmp-dev \ libsnmp-dev \
snmp \
libxml2-dev \
libnghttp2-dev \
libssl-dev \ libssl-dev \
libtidy-dev \ libtidy-dev \
libvpx-dev \
libwebp-dev \
libxml2-dev \ libxml2-dev \
libxml2-dev \ libxpm-dev \
libxml2-dev \
libxml2-dev \
libxslt-dev \ libxslt-dev \
zlib1g-dev \
libzip-dev \ libzip-dev \
snmp \
zlib1g-dev \
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
librabbitmq4 \ libaspell15 \
libenchant1c2a \
libpng16-16 \
libjpeg62-turbo \
libxpm4 \
libvpx4 \
libfreetype6 \
libwebp6 \
libmagickwand-6.q16-3 \
libc-client2007e \ libc-client2007e \
libenchant1c2a \
libfbclient2 \ libfbclient2 \
libfreetype6 \
libicu57 \ libicu57 \
libjpeg62-turbo \
libmagickwand-6.q16-3 \
libmcrypt4 \ libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libsybdb5 \
libfbclient2 \
libpq5 \
libpq5 \
libaspell15 \
librecode0 \
librdkafka1 \
snmp \
libnghttp2-14 \ libnghttp2-14 \
libpng16-16 \
libpq5 \
librabbitmq4 \
librdkafka1 \
librecode0 \
libsybdb5 \
libtidy5 \ libtidy5 \
libvpx4 \
libwebp6 \
libxpm4 \
libxslt1.1 \ libxslt1.1 \
libzip4 \ libzip4 \
snmp \
ca-certificates ca-certificates
@@ -115,11 +89,13 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
# ---- Installing PHP Extension: ioncube ----
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
@@ -130,146 +106,340 @@ RUN set -x \
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
\ \
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
\
# ---- Installing PHP Extension: amqp ----
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
\
# ---- Installing PHP Extension: apcu ----
&& pecl install apcu \ && pecl install apcu \
&& docker-php-ext-enable apcu \ && docker-php-ext-enable apcu \
&& (rm -rf /usr/local/lib/php/test/apcu || true) \
&& (rm -rf /usr/local/lib/php/doc/apcu || true) \
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ && (rm -rf /usr/local/lib/php/test/calendar || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ && (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/dba || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ && (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && (rm -rf /usr/local/lib/php/test/exif || true) \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ && (rm -rf /usr/local/lib/php/doc/exif || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ \
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
\
# ---- Installing PHP Extension: gmp ----
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ && (rm -rf /usr/local/lib/php/test/gmp || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ && (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \ && pecl install igbinary \
&& docker-php-ext-enable igbinary \ && docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imagick ----
&& pecl install imagick \ && pecl install imagick \
&& docker-php-ext-enable imagick \ && docker-php-ext-enable imagick \
&& (rm -rf /usr/local/lib/php/test/imagick || true) \
&& (rm -rf /usr/local/lib/php/doc/imagick || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ && (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ && (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: mcrypt ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ && (rm -rf /usr/local/lib/php/test/mcrypt || true) \
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
\
# ---- Installing PHP Extension: memcache ----
&& git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \
&& cd /tmp/memcache \ && cd /tmp/memcache \
&& phpize \ && phpize \
&& ./configure --with-zlib-dir=/usr \ && ./configure --with-zlib-dir=/usr \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& cd / && rm -rf /tmp/memcache \ && (rm -rf /usr/local/lib/php/test/memcache || true) \
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
\
# ---- Installing PHP Extension: memcached ----
&& pecl install memcached \ && pecl install memcached \
&& docker-php-ext-enable memcached \ && docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongodb ----
&& pecl install mongodb \ && pecl install mongodb \
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& (rm -rf /usr/local/lib/php/test/mongodb || true) \
&& (rm -rf /usr/local/lib/php/doc/mongodb || true) \
\
# ---- Installing PHP Extension: msgpack ----
&& pecl install msgpack \ && pecl install msgpack \
&& docker-php-ext-enable msgpack \ && docker-php-ext-enable msgpack \
&& (rm -rf /usr/local/lib/php/test/msgpack || true) \
&& (rm -rf /usr/local/lib/php/doc/msgpack || true) \
\
# ---- Installing PHP Extension: mysqli ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& (rm -rf /usr/local/lib/php/test/mysqli || true) \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: opcache ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \
&& (rm -rf /usr/local/lib/php/test/pdo || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_mysql ----
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: phalcon ----
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \ && cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd build && ./install \ && cd build && ./install \
&& docker-php-ext-enable phalcon \ && docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ && (rm -rf /usr/local/lib/php/doc/phalcon || true) \
\
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ && (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: recode ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& (rm -rf /usr/local/lib/php/test/recode || true) \
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
\
# ---- Installing PHP Extension: redis ----
&& pecl install redis \ && pecl install redis \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& (rm -rf /usr/local/lib/php/test/redis || true) \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \ && pecl install rdkafka \
&& docker-php-ext-enable rdkafka \ && docker-php-ext-enable rdkafka \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \ && (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/shmop || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ && (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: soap ----
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& (rm -rf /usr/local/lib/php/test/soap || true) \
&& (rm -rf /usr/local/lib/php/doc/soap || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& pecl install swoole-2.2.0 \ && (rm -rf /usr/local/lib/php/test/sockets || true) \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: swoole ----
&& pecl install swoole \
&& docker-php-ext-enable swoole \ && docker-php-ext-enable swoole \
&& (rm -rf /usr/local/lib/php/test/swoole || true) \
&& (rm -rf /usr/local/lib/php/doc/swoole || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ && (rm -rf /usr/local/lib/php/test/tidy || true) \
&& git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ && (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
&& cd /tmp/uploadprogress \ && cd /tmp/uploadprogress \
&& phpize \ && phpize \
&& ./configure --enable-uploadprogress \ && ./configure --enable-uploadprogress \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
&& docker-php-ext-enable uploadprogress \ && docker-php-ext-enable uploadprogress \
&& cd / && rm -rf /tmp/uploadprogress \ && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xdebug ----
&& pecl install xdebug \ && pecl install xdebug \
&& docker-php-ext-enable xdebug \ && docker-php-ext-enable xdebug \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xdebug || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ && (rm -rf /usr/local/lib/php/doc/xdebug || true) \
\
# ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\ \
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \
@@ -294,6 +464,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \ && php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \ && php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \ && php -m | grep -oiE '^gd$' \
@@ -320,6 +492,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^json$' \ && php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \ && php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^mcrypt$' \
@@ -334,10 +508,18 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^msgpack$' \ && php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \ && php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \ && php -m | grep -oiE '^pdo_dblib$' \
&& php-fpm -m | grep -oiE '^pdo_dblib$' \ && php-fpm -m | grep -oiE '^pdo_dblib$' \
&& php -m | grep -oiE '^pdo_firebird$' \ && php -m | grep -oiE '^pdo_firebird$' \
@@ -396,6 +578,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^xdebug$' \ && php-fpm -m | grep -oiE '^xdebug$' \
&& php -m | grep -oiE '^xml$' \ && php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \ && php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^xmlreader$' \
&& php-fpm -m | grep -oiE '^xmlreader$' \
&& php -m | grep -oiE '^xmlrpc$' \ && php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \ && php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xmlwriter$' \

View File

@@ -18,96 +18,70 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
librabbitmq-dev \
libbz2-dev \
libcurl4-openssl-dev \
libxml2-dev \
libenchant-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libwebp-dev \
libgmp-dev \
libmagickwand-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libfbclient2 \
libib-util \
firebird-dev \ firebird-dev \
libicu-dev \
libldap2-dev \
libsasl2-dev \
libmcrypt-dev \
zlib1g-dev \
zlib1g-dev \
libmemcached-dev \
libssl-dev \
libsasl2-dev \
freetds-dev \ freetds-dev \
libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \
libenchant-dev \
libfbclient2 \ libfbclient2 \
libfreetype6-dev \
libgmp-dev \
libib-util \ libib-util \
firebird-dev \ libicu-dev \
zlib1g-dev \ libjpeg-dev \
libpq-dev \ libkrb5-dev \
libsqlite3-dev \ libldap2-dev \
libpq-dev \ libmagickwand-dev \
libssl-dev \ libmcrypt-dev \
libpspell-dev \ libmemcached-dev \
libedit-dev \
libreadline-dev \
librecode-dev \
librdkafka-dev \
libmm-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libxml2-dev \
libnghttp2-dev \ libnghttp2-dev \
libpng-dev \
libpq-dev \
libpspell-dev \
librabbitmq-dev \
librdkafka-dev \
librecode-dev \
libsasl2-dev \
libsnmp-dev \
libssl-dev \ libssl-dev \
libtidy-dev \ libtidy-dev \
libvpx-dev \
libwebp-dev \
libxml2-dev \ libxml2-dev \
libxml2-dev \ libxpm-dev \
libxml2-dev \
libxml2-dev \
libxslt-dev \ libxslt-dev \
zlib1g-dev \
libzip-dev \ libzip-dev \
snmp \
zlib1g-dev \
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
librabbitmq4 \ libaspell15 \
libenchant1c2a \
libpng16-16 \
libjpeg62-turbo \
libxpm4 \
libvpx4 \
libfreetype6 \
libwebp6 \
libmagickwand-6.q16-3 \
libc-client2007e \ libc-client2007e \
libenchant1c2a \
libfbclient2 \ libfbclient2 \
libfreetype6 \
libicu57 \ libicu57 \
libjpeg62-turbo \
libmagickwand-6.q16-3 \
libmcrypt4 \ libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libsybdb5 \
libfbclient2 \
libpq5 \
libpq5 \
libaspell15 \
librecode0 \
librdkafka1 \
snmp \
libnghttp2-14 \ libnghttp2-14 \
libpng16-16 \
libpq5 \
librabbitmq4 \
librdkafka1 \
librecode0 \
libsybdb5 \
libtidy5 \ libtidy5 \
libvpx4 \
libwebp6 \
libxpm4 \
libxslt1.1 \ libxslt1.1 \
libzip4 \ libzip4 \
snmp \
ca-certificates ca-certificates
@@ -115,11 +89,13 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
# ---- Installing PHP Extension: ioncube ----
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
@@ -130,148 +106,335 @@ RUN set -x \
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
\ \
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
\
# ---- Installing PHP Extension: amqp ----
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
\
# ---- Installing PHP Extension: apcu ----
&& pecl install apcu \ && pecl install apcu \
&& docker-php-ext-enable apcu \ && docker-php-ext-enable apcu \
&& (rm -rf /usr/local/lib/php/test/apcu || true) \
&& (rm -rf /usr/local/lib/php/doc/apcu || true) \
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ && (rm -rf /usr/local/lib/php/test/calendar || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ && (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/dba || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ && (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && (rm -rf /usr/local/lib/php/test/exif || true) \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ && (rm -rf /usr/local/lib/php/doc/exif || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ \
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
\
# ---- Installing PHP Extension: gmp ----
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ && (rm -rf /usr/local/lib/php/test/gmp || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ && (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \ && pecl install igbinary \
&& docker-php-ext-enable igbinary \ && docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imagick ----
&& pecl install imagick \ && pecl install imagick \
&& docker-php-ext-enable imagick \ && docker-php-ext-enable imagick \
&& (rm -rf /usr/local/lib/php/test/imagick || true) \
&& (rm -rf /usr/local/lib/php/doc/imagick || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ && (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ && (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: mcrypt ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ && (rm -rf /usr/local/lib/php/test/mcrypt || true) \
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
\
# ---- Installing PHP Extension: memcache ----
&& git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \
&& cd /tmp/memcache \ && cd /tmp/memcache \
&& phpize \ && phpize \
&& ./configure --with-zlib-dir=/usr \ && ./configure --with-zlib-dir=/usr \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& cd / && rm -rf /tmp/memcache \ && (rm -rf /usr/local/lib/php/test/memcache || true) \
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
\
# ---- Installing PHP Extension: memcached ----
&& pecl install memcached \ && pecl install memcached \
&& docker-php-ext-enable memcached \ && docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongodb ----
&& pecl install mongodb \ && pecl install mongodb \
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& (rm -rf /usr/local/lib/php/test/mongodb || true) \
&& (rm -rf /usr/local/lib/php/doc/mongodb || true) \
\
# ---- Installing PHP Extension: msgpack ----
&& pecl install msgpack \ && pecl install msgpack \
&& docker-php-ext-enable msgpack \ && docker-php-ext-enable msgpack \
&& (rm -rf /usr/local/lib/php/test/msgpack || true) \
&& (rm -rf /usr/local/lib/php/doc/msgpack || true) \
\
# ---- Installing PHP Extension: mysqli ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& (rm -rf /usr/local/lib/php/test/mysqli || true) \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: opcache ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ && (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_mysql ----
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: phalcon ----
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \ && cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd build && ./install \ && cd build && ./install \
&& docker-php-ext-enable phalcon \ && docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ && (rm -rf /usr/local/lib/php/doc/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ \
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ && (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: recode ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& (rm -rf /usr/local/lib/php/test/recode || true) \
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
\
# ---- Installing PHP Extension: redis ----
&& pecl install redis \ && pecl install redis \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& (rm -rf /usr/local/lib/php/test/redis || true) \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \ && pecl install rdkafka \
&& docker-php-ext-enable rdkafka \ && docker-php-ext-enable rdkafka \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \ && (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/shmop || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ && (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: soap ----
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& (rm -rf /usr/local/lib/php/test/soap || true) \
&& (rm -rf /usr/local/lib/php/doc/soap || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& (rm -rf /usr/local/lib/php/test/sockets || true) \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: swoole ----
&& pecl install swoole \ && pecl install swoole \
&& docker-php-ext-enable swoole \ && docker-php-ext-enable swoole \
&& (rm -rf /usr/local/lib/php/test/swoole || true) \
&& (rm -rf /usr/local/lib/php/doc/swoole || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ && (rm -rf /usr/local/lib/php/test/tidy || true) \
&& git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ && (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
&& cd /tmp/uploadprogress \ && cd /tmp/uploadprogress \
&& phpize \ && phpize \
&& ./configure --enable-uploadprogress \ && ./configure --enable-uploadprogress \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
&& docker-php-ext-enable uploadprogress \ && docker-php-ext-enable uploadprogress \
&& cd / && rm -rf /tmp/uploadprogress \ && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xdebug ----
&& pecl install xdebug \ && pecl install xdebug \
&& docker-php-ext-enable xdebug \ && docker-php-ext-enable xdebug \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xdebug || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ && (rm -rf /usr/local/lib/php/doc/xdebug || true) \
\
# ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\ \
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \
@@ -296,6 +459,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \ && php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \ && php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \ && php -m | grep -oiE '^gd$' \
@@ -322,6 +487,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^json$' \ && php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \ && php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^mcrypt$' \
@@ -336,10 +503,16 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^msgpack$' \ && php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \ && php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \ && php -m | grep -oiE '^pdo_dblib$' \
@@ -402,6 +575,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^xdebug$' \ && php-fpm -m | grep -oiE '^xdebug$' \
&& php -m | grep -oiE '^xml$' \ && php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \ && php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^xmlreader$' \
&& php-fpm -m | grep -oiE '^xmlreader$' \
&& php -m | grep -oiE '^xmlrpc$' \ && php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \ && php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xmlwriter$' \

View File

@@ -18,97 +18,70 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
librabbitmq-dev \
libbz2-dev \
libcurl4-openssl-dev \
libxml2-dev \
libenchant-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libwebp-dev \
libgmp-dev \
libmagickwand-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libfbclient2 \
libib-util \
firebird-dev \ firebird-dev \
libicu-dev \
libldap2-dev \
libsasl2-dev \
libmcrypt-dev \
zlib1g-dev \
zlib1g-dev \
libmemcached-dev \
libssl-dev \
libsasl2-dev \
freetds-dev \ freetds-dev \
libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \
libenchant-dev \
libfbclient2 \ libfbclient2 \
libfreetype6-dev \
libgmp-dev \
libib-util \ libib-util \
firebird-dev \ libicu-dev \
zlib1g-dev \ libjpeg-dev \
libpq-dev \ libkrb5-dev \
libsqlite3-dev \ libldap2-dev \
libpq-dev \ libmagickwand-dev \
libssl-dev \ libmcrypt-dev \
libpspell-dev \ libmemcached-dev \
libedit-dev \
libreadline-dev \
librecode-dev \
librdkafka-dev \
libmm-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libxml2-dev \
libsodium-dev \
libnghttp2-dev \ libnghttp2-dev \
libpng-dev \
libpq-dev \
libpspell-dev \
librabbitmq-dev \
librdkafka-dev \
librecode-dev \
libsasl2-dev \
libsnmp-dev \
libssl-dev \ libssl-dev \
libtidy-dev \ libtidy-dev \
libvpx-dev \
libwebp-dev \
libxml2-dev \ libxml2-dev \
libxml2-dev \ libxpm-dev \
libxml2-dev \
libxml2-dev \
libxslt-dev \ libxslt-dev \
zlib1g-dev \
libzip-dev \ libzip-dev \
snmp \
zlib1g-dev \
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
librabbitmq4 \ libaspell15 \
libenchant1c2a \
libpng16-16 \
libjpeg62-turbo \
libxpm4 \
libvpx4 \
libfreetype6 \
libwebp6 \
libmagickwand-6.q16-3 \
libc-client2007e \ libc-client2007e \
libenchant1c2a \
libfbclient2 \ libfbclient2 \
libfreetype6 \
libicu57 \ libicu57 \
libjpeg62-turbo \
libmagickwand-6.q16-3 \
libmcrypt4 \ libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libsybdb5 \
libfbclient2 \
libpq5 \
libpq5 \
libaspell15 \
librecode0 \
librdkafka1 \
snmp \
libnghttp2-14 \ libnghttp2-14 \
libpng16-16 \
libpq5 \
librabbitmq4 \
librdkafka1 \
librecode0 \
libsybdb5 \
libtidy5 \ libtidy5 \
libvpx4 \
libwebp6 \
libxpm4 \
libxslt1.1 \ libxslt1.1 \
libzip4 \ libzip4 \
snmp \
ca-certificates ca-certificates
@@ -116,11 +89,13 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
# ---- Installing PHP Extension: ioncube ----
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
@@ -131,150 +106,336 @@ RUN set -x \
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
\ \
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
\
# ---- Installing PHP Extension: amqp ----
&& echo "/usr" | pecl install amqp \ && echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \ && docker-php-ext-enable amqp \
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
\
# ---- Installing PHP Extension: apcu ----
&& pecl install apcu \ && pecl install apcu \
&& docker-php-ext-enable apcu \ && docker-php-ext-enable apcu \
&& (rm -rf /usr/local/lib/php/test/apcu || true) \
&& (rm -rf /usr/local/lib/php/doc/apcu || true) \
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ && (rm -rf /usr/local/lib/php/test/calendar || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ && (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/dba || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ && (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && (rm -rf /usr/local/lib/php/test/exif || true) \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ && (rm -rf /usr/local/lib/php/doc/exif || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ \
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
\
# ---- Installing PHP Extension: gmp ----
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ && (rm -rf /usr/local/lib/php/test/gmp || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ && (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \ && pecl install igbinary \
&& docker-php-ext-enable igbinary \ && docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imagick ----
&& pecl install imagick \ && pecl install imagick \
&& docker-php-ext-enable imagick \ && docker-php-ext-enable imagick \
&& (rm -rf /usr/local/lib/php/test/imagick || true) \
&& (rm -rf /usr/local/lib/php/doc/imagick || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ && (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ && (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: mcrypt ----
&& pecl install mcrypt-1.0.1 \ && pecl install mcrypt-1.0.1 \
&& docker-php-ext-enable mcrypt \ && docker-php-ext-enable mcrypt \
&& git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ && (rm -rf /usr/local/lib/php/test/mcrypt || true) \
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
\
# ---- Installing PHP Extension: memcache ----
&& git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \
&& cd /tmp/memcache \ && cd /tmp/memcache \
&& phpize \ && phpize \
&& ./configure --with-zlib-dir=/usr \ && ./configure --with-zlib-dir=/usr \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& cd / && rm -rf /tmp/memcache \ && (rm -rf /usr/local/lib/php/test/memcache || true) \
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
\
# ---- Installing PHP Extension: memcached ----
&& pecl install memcached \ && pecl install memcached \
&& docker-php-ext-enable memcached \ && docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongodb ----
&& pecl install mongodb \ && pecl install mongodb \
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& (rm -rf /usr/local/lib/php/test/mongodb || true) \
&& (rm -rf /usr/local/lib/php/doc/mongodb || true) \
\
# ---- Installing PHP Extension: msgpack ----
&& pecl install msgpack \ && pecl install msgpack \
&& docker-php-ext-enable msgpack \ && docker-php-ext-enable msgpack \
&& (rm -rf /usr/local/lib/php/test/msgpack || true) \
&& (rm -rf /usr/local/lib/php/doc/msgpack || true) \
\
# ---- Installing PHP Extension: mysqli ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& (rm -rf /usr/local/lib/php/test/mysqli || true) \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: opcache ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ && (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_mysql ----
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: phalcon ----
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \ && cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd build && ./install \ && cd build && ./install \
&& docker-php-ext-enable phalcon \ && docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \ && (rm -rf /usr/local/lib/php/test/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ && (rm -rf /usr/local/lib/php/doc/phalcon || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ \
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ && (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: recode ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& (rm -rf /usr/local/lib/php/test/recode || true) \
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
\
# ---- Installing PHP Extension: redis ----
&& pecl install redis \ && pecl install redis \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& (rm -rf /usr/local/lib/php/test/redis || true) \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \ && pecl install rdkafka \
&& docker-php-ext-enable rdkafka \ && docker-php-ext-enable rdkafka \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \ && (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/shmop || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ && (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: soap ----
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& (rm -rf /usr/local/lib/php/test/soap || true) \
&& (rm -rf /usr/local/lib/php/doc/soap || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sodium \ && (rm -rf /usr/local/lib/php/test/sockets || true) \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: swoole ----
&& pecl install swoole \ && pecl install swoole \
&& docker-php-ext-enable swoole \ && docker-php-ext-enable swoole \
&& (rm -rf /usr/local/lib/php/test/swoole || true) \
&& (rm -rf /usr/local/lib/php/doc/swoole || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ && (rm -rf /usr/local/lib/php/test/tidy || true) \
&& git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ && (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
&& cd /tmp/uploadprogress \ && cd /tmp/uploadprogress \
&& phpize \ && phpize \
&& ./configure --enable-uploadprogress \ && ./configure --enable-uploadprogress \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
&& docker-php-ext-enable uploadprogress \ && docker-php-ext-enable uploadprogress \
&& cd / && rm -rf /tmp/uploadprogress \ && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xdebug ----
&& pecl install xdebug \ && pecl install xdebug \
&& docker-php-ext-enable xdebug \ && docker-php-ext-enable xdebug \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xdebug || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ && (rm -rf /usr/local/lib/php/doc/xdebug || true) \
\
# ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\ \
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^amqp$' \ && php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \ && php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \
@@ -299,6 +460,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \ && php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \ && php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \ && php -m | grep -oiE '^gd$' \
@@ -325,6 +488,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^json$' \ && php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \ && php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^mcrypt$' \
@@ -339,10 +504,16 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^msgpack$' \ && php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \ && php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \ && php -m | grep -oiE '^pdo_dblib$' \
@@ -407,6 +578,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^xdebug$' \ && php-fpm -m | grep -oiE '^xdebug$' \
&& php -m | grep -oiE '^xml$' \ && php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \ && php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^xmlreader$' \
&& php-fpm -m | grep -oiE '^xmlreader$' \
&& php -m | grep -oiE '^xmlrpc$' \ && php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \ && php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xmlwriter$' \

View File

@@ -18,97 +18,71 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
libbz2-dev \
libcurl4-openssl-dev \
libxml2-dev \
libenchant-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libwebp-dev \
libgmp-dev \
libmagickwand-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libfbclient2 \
libib-util \
firebird-dev \
libicu-dev \
libldap2-dev \
libsasl2-dev \
libmcrypt-dev \
zlib1g-dev \
libmemcached-dev \
libssl-dev \
libsasl2-dev \
freetds-dev \
libfbclient2 \
libib-util \
firebird-dev \
zlib1g-dev \
libpq-dev \
libsqlite3-dev \
libpq-dev \
libssl-dev \
libpspell-dev \
libedit-dev \
libreadline-dev \
librecode-dev \
librdkafka-dev \
libmm-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libxml2-dev \
libsodium-dev \
libnghttp2-dev \
libssl-dev \
libhiredis-dev \
cmake \ cmake \
firebird-dev \
freetds-dev \
libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \
libenchant-dev \
libfbclient2 \
libfreetype6-dev \
libgmp-dev \
libhiredis-dev \
libib-util \
libicu-dev \
libjpeg-dev \
libkrb5-dev \
libldap2-dev \
libmagickwand-dev \
libmcrypt-dev \
libmemcached-dev \
libnghttp2-dev \
libpng-dev \
libpq-dev \
libpspell-dev \
librdkafka-dev \
librecode-dev \
libsasl2-dev \
libsnmp-dev \
libssl-dev \
libtidy-dev \ libtidy-dev \
libvpx-dev \
libwebp-dev \
libxml2-dev \ libxml2-dev \
libxml2-dev \ libxpm-dev \
libxml2-dev \
libxml2-dev \
libxslt-dev \ libxslt-dev \
zlib1g-dev \
libzip-dev \ libzip-dev \
snmp \
zlib1g-dev \
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
libenchant1c2a \ libaspell15 \
libpng16-16 \
libjpeg62-turbo \
libxpm4 \
libvpx4 \
libfreetype6 \
libwebp6 \
libmagickwand-6.q16-3 \
libc-client2007e \ libc-client2007e \
libenchant1c2a \
libfbclient2 \ libfbclient2 \
libfreetype6 \
libhiredis0.13 \
libicu57 \ libicu57 \
libjpeg62-turbo \
libmagickwand-6.q16-3 \
libmcrypt4 \ libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libsybdb5 \
libfbclient2 \
libpq5 \
libpq5 \
libaspell15 \
librecode0 \
librdkafka1 \
snmp \
libnghttp2-14 \ libnghttp2-14 \
libhiredis0.13 \ libpng16-16 \
libpq5 \
librdkafka1 \
librecode0 \
libsybdb5 \
libtidy5 \ libtidy5 \
libvpx4 \
libwebp6 \
libxpm4 \
libxslt1.1 \ libxslt1.1 \
libzip4 \ libzip4 \
snmp \
ca-certificates ca-certificates
@@ -116,97 +90,220 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
# ---- Installing PHP Extension: apcu ----
&& pecl install apcu \ && pecl install apcu \
&& docker-php-ext-enable apcu \ && docker-php-ext-enable apcu \
&& (rm -rf /usr/local/lib/php/test/apcu || true) \
&& (rm -rf /usr/local/lib/php/doc/apcu || true) \
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ && (rm -rf /usr/local/lib/php/test/calendar || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ && (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/dba || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ && (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && (rm -rf /usr/local/lib/php/test/exif || true) \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ && (rm -rf /usr/local/lib/php/doc/exif || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ \
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
\
# ---- Installing PHP Extension: gmp ----
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ && (rm -rf /usr/local/lib/php/test/gmp || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ && (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \ && pecl install igbinary \
&& docker-php-ext-enable igbinary \ && docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imagick ----
&& pecl install imagick \ && pecl install imagick \
&& docker-php-ext-enable imagick \ && docker-php-ext-enable imagick \
&& (rm -rf /usr/local/lib/php/test/imagick || true) \
&& (rm -rf /usr/local/lib/php/doc/imagick || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ && (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: mcrypt ----
&& pecl install mcrypt-1.0.1 \ && pecl install mcrypt-1.0.1 \
&& docker-php-ext-enable mcrypt \ && docker-php-ext-enable mcrypt \
&& git clone -v https://github.com/php-memcached-dev/php-memcached /tmp/memcached \ && (rm -rf /usr/local/lib/php/test/mcrypt || true) \
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
\
# ---- Installing PHP Extension: memcached ----
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
&& cd /tmp/memcached \ && cd /tmp/memcached \
&& git checkout master \ && git checkout master \
&& phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install \ && phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install \
&& docker-php-ext-enable memcached \ && docker-php-ext-enable memcached \
&& cd / && rm -rf /tmp/memcached \ && (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongodb ----
&& pecl install mongodb \ && pecl install mongodb \
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& (rm -rf /usr/local/lib/php/test/mongodb || true) \
&& (rm -rf /usr/local/lib/php/doc/mongodb || true) \
\
# ---- Installing PHP Extension: mysqli ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& (rm -rf /usr/local/lib/php/test/mysqli || true) \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: opcache ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ && (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_mysql ----
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ && (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ && (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ && (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: recode ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& (rm -rf /usr/local/lib/php/test/recode || true) \
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
\
# ---- Installing PHP Extension: redis ----
&& pecl install redis \ && pecl install redis \
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& (rm -rf /usr/local/lib/php/test/redis || true) \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \ && pecl install rdkafka \
&& docker-php-ext-enable rdkafka \ && docker-php-ext-enable rdkafka \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \ && (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/shmop || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ && (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: soap ----
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& (rm -rf /usr/local/lib/php/test/soap || true) \
&& (rm -rf /usr/local/lib/php/doc/soap || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sodium \ && (rm -rf /usr/local/lib/php/test/sockets || true) \
&& git clone -v https://github.com/swoole/swoole-src /tmp/swoole \ && (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: swoole ----
&& git clone https://github.com/swoole/swoole-src /tmp/swoole \
&& cd /tmp/swoole \ && cd /tmp/swoole \
&& git checkout master \ && git checkout master \
&& git submodule update --init --recursive \ && git checkout $(git describe --abbrev=0 --tags) \
&& cd thirdparty/hiredis \ && git submodule update --init --recursive \
&& make -j$(getconf _NPROCESSORS_ONLN) \ #`&& cd thirdparty/hiredis` \
&& make install \ #`&& make -j$(getconf _NPROCESSORS_ONLN)` \
&& cd ../nghttp2 \ #`&& make install` \
#`&& cd ../../` \
&& cd thirdparty/nghttp2 \
&& cmake . \ && cmake . \
&& make install \ && make install \
&& ldconfig \ && ldconfig \
@@ -236,54 +333,98 @@ RUN set -x \
&& make install \ && make install \
\ \
&& docker-php-ext-enable swoole \ && docker-php-ext-enable swoole \
&& cd / && rm -rf /tmp/swoole \ && (rm -rf /usr/local/lib/php/test/swoole || true) \
&& (rm -rf /usr/local/lib/php/doc/swoole || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ && (rm -rf /usr/local/lib/php/test/tidy || true) \
&& git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ && (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
&& cd /tmp/uploadprogress \ && cd /tmp/uploadprogress \
&& phpize \ && phpize \
&& ./configure --enable-uploadprogress \ && ./configure --enable-uploadprogress \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
&& docker-php-ext-enable uploadprogress \ && docker-php-ext-enable uploadprogress \
&& cd / && rm -rf /tmp/uploadprogress \ && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/wddx || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ && (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\ \
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^apcu$' \
&& php-fpm -m | grep -oiE '^apcu$' \ && php-fpm -m | grep -oiE '^apcu$' \
&& php -m | grep -oiE '^bcmath$' \ && php -m | grep -oiE '^bcmath$' \
@@ -306,6 +447,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^exif$' \ && php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \ && php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \ && php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \ && php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \ && php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \ && php -m | grep -oiE '^gd$' \
@@ -332,6 +475,10 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^json$' \ && php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \ && php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \ && php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \ && php -m | grep -oiE '^mcrypt$' \
&& php-fpm -m | grep -oiE '^mcrypt$' \ && php-fpm -m | grep -oiE '^mcrypt$' \
&& php -m | grep -oiE '^memcached$' \ && php -m | grep -oiE '^memcached$' \
@@ -340,10 +487,16 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^mongodb$' \ && php-fpm -m | grep -oiE '^mongodb$' \
&& php -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \ && php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \ && php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \ && php -m | grep -oiE '^pdo_dblib$' \
@@ -404,6 +557,8 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^wddx$' \ && php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^xml$' \ && php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \ && php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^xmlreader$' \
&& php-fpm -m | grep -oiE '^xmlreader$' \
&& php -m | grep -oiE '^xmlrpc$' \ && php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \ && php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xmlwriter$' \

View File

@@ -0,0 +1,563 @@
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
FROM devilbox/php-fpm:7.4-base
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.4 Image" \
image="devilbox/php-fpm" \
tag="7.4-mods" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BUILD_DEPS \
cmake \
firebird-dev \
freetds-dev \
libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \
libenchant-dev \
libfbclient2 \
libfreetype6-dev \
libgmp-dev \
libhiredis-dev \
libib-util \
libicu-dev \
libjpeg-dev \
libkrb5-dev \
libldap2-dev \
libmemcached-dev \
libnghttp2-dev \
libpng-dev \
libpq-dev \
libpspell-dev \
librdkafka-dev \
librecode-dev \
libsasl2-dev \
libsnmp-dev \
libssl-dev \
libtidy-dev \
libvpx-dev \
libwebp-dev \
libxml2-dev \
libxpm-dev \
libxslt-dev \
libzip-dev \
snmp \
zlib1g-dev \
ca-certificates \
git
ENV RUN_DEPS \
libaspell15 \
libc-client2007e \
libenchant1c2a \
libfbclient2 \
libfreetype6 \
libhiredis0.13 \
libicu57 \
libjpeg62-turbo \
libmemcachedutil2 \
libnghttp2-14 \
libpng16-16 \
libpq5 \
librdkafka1 \
librecode0 \
libsybdb5 \
libtidy5 \
libvpx4 \
libwebp6 \
libxpm4 \
libxslt1.1 \
libzip4 \
snmp \
ca-certificates
###
### Install
###
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \
\
\
# ---- Installing PHP Extension: bcmath ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
\
# ---- Installing PHP Extension: bz2 ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
\
# ---- Installing PHP Extension: calendar ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& (rm -rf /usr/local/lib/php/test/calendar || true) \
&& (rm -rf /usr/local/lib/php/doc/calendar || true) \
\
# ---- Installing PHP Extension: dba ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& (rm -rf /usr/local/lib/php/test/dba || true) \
&& (rm -rf /usr/local/lib/php/doc/dba || true) \
\
# ---- Installing PHP Extension: enchant ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
\
# ---- Installing PHP Extension: exif ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& (rm -rf /usr/local/lib/php/test/exif || true) \
&& (rm -rf /usr/local/lib/php/doc/exif || true) \
\
# ---- Installing PHP Extension: gd ----
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& (rm -rf /usr/local/lib/php/test/gd || true) \
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
\
# ---- Installing PHP Extension: gettext ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
\
# ---- Installing PHP Extension: gmp ----
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& (rm -rf /usr/local/lib/php/test/gmp || true) \
&& (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \
&& docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
\
# ---- Installing PHP Extension: imap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& (rm -rf /usr/local/lib/php/test/imap || true) \
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
\
# ---- Installing PHP Extension: interbase ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
\
# ---- Installing PHP Extension: intl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& (rm -rf /usr/local/lib/php/test/intl || true) \
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
\
# ---- Installing PHP Extension: ldap ----
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& (rm -rf /usr/local/lib/php/test/ldap || true) \
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
\
# ---- Installing PHP Extension: memcached ----
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
&& cd /tmp/memcached \
&& git checkout master \
&& phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install \
&& docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
\
# ---- Installing PHP Extension: mongodb ----
&& pecl install mongodb \
&& docker-php-ext-enable mongodb \
&& (rm -rf /usr/local/lib/php/test/mongodb || true) \
&& (rm -rf /usr/local/lib/php/doc/mongodb || true) \
\
# ---- Installing PHP Extension: mysqli ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& (rm -rf /usr/local/lib/php/test/mysqli || true) \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: opcache ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
\
# ---- Installing PHP Extension: pcntl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& (rm -rf /usr/local/lib/php/test/pcntl || true) \
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
\
# ---- Installing PHP Extension: pdo_dblib ----
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
\
# ---- Installing PHP Extension: pdo_firebird ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
\
# ---- Installing PHP Extension: pdo_mysql ----
&& /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pgsql ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& (rm -rf /usr/local/lib/php/test/pgsql || true) \
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
\
# ---- Installing PHP Extension: pspell ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& (rm -rf /usr/local/lib/php/test/pspell || true) \
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
\
# ---- Installing PHP Extension: recode ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& (rm -rf /usr/local/lib/php/test/recode || true) \
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
\
# ---- Installing PHP Extension: redis ----
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
&& cd /tmp/redis \
&& phpize \
&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis.c \
&& sed -i'' 's/ZEND_ACC_DTOR | //g' redis.c \
&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis_cluster.c \
&& ./configure \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
&& docker-php-ext-enable redis \
&& (rm -rf /usr/local/lib/php/test/redis || true) \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \
&& docker-php-ext-enable rdkafka \
&& (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& (rm -rf /usr/local/lib/php/doc/rdkafka || true) \
\
# ---- Installing PHP Extension: shmop ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& (rm -rf /usr/local/lib/php/test/shmop || true) \
&& (rm -rf /usr/local/lib/php/doc/shmop || true) \
\
# ---- Installing PHP Extension: snmp ----
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
\
# ---- Installing PHP Extension: soap ----
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& (rm -rf /usr/local/lib/php/test/soap || true) \
&& (rm -rf /usr/local/lib/php/doc/soap || true) \
\
# ---- Installing PHP Extension: sockets ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& (rm -rf /usr/local/lib/php/test/sockets || true) \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: swoole ----
&& git clone https://github.com/swoole/swoole-src /tmp/swoole \
&& cd /tmp/swoole \
&& git checkout master \
&& git checkout $(git describe --abbrev=0 --tags) \
&& git submodule update --init --recursive \
#`&& cd thirdparty/hiredis` \
#`&& make -j$(getconf _NPROCESSORS_ONLN)` \
#`&& make install` \
#`&& cd ../../` \
&& cd thirdparty/nghttp2 \
&& cmake . \
&& make install \
&& ldconfig \
&& cd ../.. \
&& phpize \
&& ./configure \
#`--enable-async-redis` \
--enable-openssl \
--enable-thread \
--enable-swoole \
--enable-swoole-static \
--with-swoole \
--with-openssl-dir=/usr \
--enable-mysqlnd \
--enable-coroutine \
--enable-picohttpparser \
#`--enable-timewheel` \
#`--enable-hugepage` \
#`--enable-asan` \
#`--with-phpx-dir=` \
#`--with-jemalloc-dir=/usr/include/jemalloc` \
#`--enable-coroutine-postgresql` \
#`--enable-http2` \
#`--enable-sockets` \
#`--with-libpq-dir=/usr/include/postgresql/libpq/` \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
&& docker-php-ext-enable swoole \
&& (rm -rf /usr/local/lib/php/test/swoole || true) \
&& (rm -rf /usr/local/lib/php/doc/swoole || true) \
\
# ---- Installing PHP Extension: sysvmsg ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
\
# ---- Installing PHP Extension: sysvsem ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
\
# ---- Installing PHP Extension: sysvshm ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
\
# ---- Installing PHP Extension: tidy ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& (rm -rf /usr/local/lib/php/test/tidy || true) \
&& (rm -rf /usr/local/lib/php/doc/tidy || true) \
\
# ---- Installing PHP Extension: uploadprogress ----
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
&& cd /tmp/uploadprogress \
&& phpize \
&& ./configure --enable-uploadprogress \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
&& docker-php-ext-enable uploadprogress \
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
&& (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
\
# ---- Installing PHP Extension: xsl ----
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
\
# ---- Installing PHP Extension: zip ----
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& (rm -rf /usr/local/lib/php/test/zip || true) \
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
\
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Verify
###
RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
&& /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
&& php -m | grep -oiE '^bcmath$' \
&& php-fpm -m | grep -oiE '^bcmath$' \
&& php -m | grep -oiE '^bz2$' \
&& php-fpm -m | grep -oiE '^bz2$' \
&& php -m | grep -oiE '^calendar$' \
&& php-fpm -m | grep -oiE '^calendar$' \
&& php -m | grep -oiE '^ctype$' \
&& php-fpm -m | grep -oiE '^ctype$' \
&& php -m | grep -oiE '^curl$' \
&& php-fpm -m | grep -oiE '^curl$' \
&& php -m | grep -oiE '^dba$' \
&& php-fpm -m | grep -oiE '^dba$' \
&& php -m | grep -oiE '^dom$' \
&& php-fpm -m | grep -oiE '^dom$' \
&& php -m | grep -oiE '^enchant$' \
&& php-fpm -m | grep -oiE '^enchant$' \
&& php -m | grep -oiE '^exif$' \
&& php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^filter$' \
&& php-fpm -m | grep -oiE '^filter$' \
&& php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^gd$' \
&& php-fpm -m | grep -oiE '^gd$' \
&& php -m | grep -oiE '^gettext$' \
&& php-fpm -m | grep -oiE '^gettext$' \
&& php -m | grep -oiE '^gmp$' \
&& php-fpm -m | grep -oiE '^gmp$' \
&& php -m | grep -oiE '^hash$' \
&& php-fpm -m | grep -oiE '^hash$' \
&& php -m | grep -oiE '^iconv$' \
&& php-fpm -m | grep -oiE '^iconv$' \
&& php -m | grep -oiE '^igbinary$' \
&& php-fpm -m | grep -oiE '^igbinary$' \
&& php -m | grep -oiE '^imap$' \
&& php-fpm -m | grep -oiE '^imap$' \
&& php -m | grep -oiE '^interbase$' \
&& php-fpm -m | grep -oiE '^interbase$' \
&& php -m | grep -oiE '^intl$' \
&& php-fpm -m | grep -oiE '^intl$' \
&& php -m | grep -oiE '^json$' \
&& php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^libxml$' \
&& php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^memcached$' \
&& php-fpm -m | grep -oiE '^memcached$' \
&& php -m | grep -oiE '^mongodb$' \
&& php-fpm -m | grep -oiE '^mongodb$' \
&& php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^openssl$' \
&& php-fpm -m | grep -oiE '^openssl$' \
&& php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^pcre$' \
&& php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
&& php -m | grep -oiE '^pdo_firebird$' \
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
&& php -m | grep -oiE '^pdo_mysql$' \
&& php-fpm -m | grep -oiE '^pdo_mysql$' \
&& php -m | grep -oiE '^pdo_pgsql$' \
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
&& php -m | grep -oiE '^pdo_sqlite$' \
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
&& php -m | grep -oiE '^pgsql$' \
&& php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^posix$' \
&& php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^pspell$' \
&& php-fpm -m | grep -oiE '^pspell$' \
&& php -m | grep -oiE '^readline$' \
&& php-fpm -m | grep -oiE '^readline$' \
&& php -m | grep -oiE '^recode$' \
&& php-fpm -m | grep -oiE '^recode$' \
&& php -m | grep -oiE '^redis$' \
&& php-fpm -m | grep -oiE '^redis$' \
&& php -m | grep -oiE '^rdkafka$' \
&& php-fpm -m | grep -oiE '^rdkafka$' \
&& php -m | grep -oiE '^session$' \
&& php-fpm -m | grep -oiE '^session$' \
&& php -m | grep -oiE '^shmop$' \
&& php-fpm -m | grep -oiE '^shmop$' \
&& php -m | grep -oiE '^simplexml$' \
&& php-fpm -m | grep -oiE '^simplexml$' \
&& php -m | grep -oiE '^snmp$' \
&& php-fpm -m | grep -oiE '^snmp$' \
&& php -m | grep -oiE '^soap$' \
&& php-fpm -m | grep -oiE '^soap$' \
&& php -m | grep -oiE '^sockets$' \
&& php-fpm -m | grep -oiE '^sockets$' \
&& php -m | grep -oiE '^sodium$' \
&& php-fpm -m | grep -oiE '^sodium$' \
&& php -m | grep -oiE '^swoole$' \
&& php-fpm -m | grep -oiE '^swoole$' \
&& php -m | grep -oiE '^sysvmsg$' \
&& php-fpm -m | grep -oiE '^sysvmsg$' \
&& php -m | grep -oiE '^sysvsem$' \
&& php-fpm -m | grep -oiE '^sysvsem$' \
&& php -m | grep -oiE '^sysvshm$' \
&& php-fpm -m | grep -oiE '^sysvshm$' \
&& php -m | grep -oiE '^tidy$' \
&& php-fpm -m | grep -oiE '^tidy$' \
&& php -m | grep -oiE '^tokenizer$' \
&& php-fpm -m | grep -oiE '^tokenizer$' \
&& php -m | grep -oiE '^uploadprogress$' \
&& php-fpm -m | grep -oiE '^uploadprogress$' \
&& php -m | grep -oiE '^wddx$' \
&& php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^xmlreader$' \
&& php-fpm -m | grep -oiE '^xmlreader$' \
&& php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^xmlwriter$' \
&& php-fpm -m | grep -oiE '^xmlwriter$' \
&& php -m | grep -oiE '^xsl$' \
&& php-fpm -m | grep -oiE '^xsl$' \
&& php -m | grep -oiE '^zip$' \
&& php-fpm -m | grep -oiE '^zip$' \
&& true
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -39,10 +44,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -39,10 +44,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -39,10 +44,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -39,10 +44,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -39,10 +44,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -39,10 +44,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -39,10 +44,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -39,10 +44,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -39,10 +44,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
### ###

View File

@@ -0,0 +1,92 @@
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
FROM devilbox/php-fpm:7.4-mods
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.4 Image" \
image="devilbox/php-fpm" \
tag="7.4-prod" \
vendor="devilbox" \
license="MIT"
###
### Install
###
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \
postfix \
postfix-pcre \
rsyslog \
socat \
supervisor \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
&& rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Verify
###
RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
&& /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
###
### Volumes
###
VOLUME /etc/php-custom.d
VOLUME /etc/php-fpm-custom.d
VOLUME /etc/php-modules.d
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -24,8 +24,9 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
@@ -39,13 +40,14 @@ RUN set -x \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -53,6 +55,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -62,6 +65,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -78,6 +82,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -98,17 +103,27 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
# ansible # ansible
&& pip install --upgrade setuptools \ && /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
\ \
# awesomeci # awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
@@ -122,10 +137,11 @@ RUN set -x \
&& gem install mixlib-config -v 2.2.4 \ && gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\ \
# gitflow # gitflow
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
@@ -134,7 +150,10 @@ RUN set -x \
&& cd / && rm -rf /tmp/gitflow \ && cd / && rm -rf /tmp/gitflow \
\ \
# grunt # grunt
&& npm install -g grunt grunt-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# linkcheck # linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \
@@ -148,7 +167,6 @@ RUN set -x \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\ \
# mhsendmail # mhsendmail
@@ -189,11 +207,18 @@ RUN set -x \
# sass # sass
&& gem install sass \ && gem install sass \
# webpack # webpack
&& npm install -g webpack webpack-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# yamllint # yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& pip install yamllint \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \ \
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup # cleanup
&& rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.cache \
@@ -203,6 +228,7 @@ RUN set -x \
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -212,10 +238,16 @@ RUN set -x \
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
\ \
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -242,10 +274,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
&& ansible --version | grep -E '^ansible [.0-9]+$' \ && ansible --version | grep -E '^ansible [.0-9]+$' \

View File

@@ -24,8 +24,9 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
@@ -39,13 +40,14 @@ RUN set -x \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -53,6 +55,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -62,6 +65,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -78,6 +82,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -98,19 +103,29 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
# composer # composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible # ansible
&& pip install --upgrade setuptools \ && /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
\ \
# awesomeci # awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
@@ -124,28 +139,28 @@ RUN set -x \
&& gem install mixlib-config -v 2.2.4 \ && gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\ \
# codeception # codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \ && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\ \
# drush # drush7
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush \ && cd /usr/local/src/drush7 \
&& git checkout 7.4.0 \ && git checkout 7.4.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ && ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush/.git \ && rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush/docs \ && rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush7/misc \
&& rm -rf /usr/local/src/drush/tests \
\ \
# gitflow # gitflow
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
@@ -154,7 +169,10 @@ RUN set -x \
&& cd / && rm -rf /tmp/gitflow \ && cd / && rm -rf /tmp/gitflow \
\ \
# grunt # grunt
&& npm install -g grunt grunt-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# linkcheck # linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \
@@ -168,7 +186,6 @@ RUN set -x \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\ \
# mhsendmail # mhsendmail
@@ -224,14 +241,21 @@ RUN set -x \
# sass # sass
&& gem install sass \ && gem install sass \
# webpack # webpack
&& npm install -g webpack webpack-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# wpcli # wpcli
&& curl https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \ && curl https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \
# yamllint # yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& pip install yamllint \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \ \
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup # cleanup
&& rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.cache \
@@ -241,6 +265,7 @@ RUN set -x \
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -250,10 +275,16 @@ RUN set -x \
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
\ \
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -280,10 +311,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
@@ -296,7 +337,7 @@ RUN set -x \
&& gulp --version | grep -E '[.0-9]+' \ && gulp --version | grep -E '[.0-9]+' \
\ \
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush --version | grep -E '[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \
&& git-flow version | grep -E '[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \ && linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \

View File

@@ -24,8 +24,9 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
@@ -39,13 +40,14 @@ RUN set -x \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -53,6 +55,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -62,6 +65,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -78,6 +82,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -98,19 +103,29 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
# composer # composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible # ansible
&& pip install --upgrade setuptools \ && /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
\ \
# awesomeci # awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
@@ -124,31 +139,44 @@ RUN set -x \
&& gem install mixlib-config -v 2.2.4 \ && gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\ \
# codeception # codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \ && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\ \
# deployer # deployer
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \
# drush # drush7
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush \ && cd /usr/local/src/drush7 \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep ^8 | tail -1) \ && git checkout 7.4.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ && ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush/.git \ && rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush/docs \ && rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush7/misc \
&& rm -rf /usr/local/src/drush/tests \ \
# drush8
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
\ \
# gitflow # gitflow
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
@@ -157,14 +185,17 @@ RUN set -x \
&& cd / && rm -rf /tmp/gitflow \ && cd / && rm -rf /tmp/gitflow \
\ \
# grunt # grunt
&& npm install -g grunt grunt-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# laravel # laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \
&& git checkout v1.3.7 \ && git checkout v1.3.7 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \
\ \
@@ -181,7 +212,6 @@ RUN set -x \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\ \
# mhsendmail # mhsendmail
@@ -240,14 +270,21 @@ RUN set -x \
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \
# webpack # webpack
&& npm install -g webpack webpack-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# wpcli # wpcli
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \
# yamllint # yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& pip install yamllint \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \ \
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup # cleanup
&& rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.cache \
@@ -257,6 +294,7 @@ RUN set -x \
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -266,10 +304,16 @@ RUN set -x \
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
\ \
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -296,10 +340,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
@@ -313,7 +367,8 @@ RUN set -x \
\ \
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \ && dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
&& drush --version | grep -E '[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& git-flow version | grep -E '[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \

View File

@@ -24,8 +24,9 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
@@ -39,13 +40,14 @@ RUN set -x \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -53,6 +55,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -62,6 +65,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -78,6 +82,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -98,19 +103,29 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
# composer # composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible # ansible
&& pip install --upgrade setuptools \ && /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
\ \
# asgardcms # asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -128,31 +143,44 @@ RUN set -x \
&& gem install mixlib-config -v 2.2.4 \ && gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\ \
# codeception # codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \ && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\ \
# deployer # deployer
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \
# drush # drush7
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush \ && cd /usr/local/src/drush7 \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep ^8 | tail -1) \ && git checkout 7.4.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ && ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush/.git \ && rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush/docs \ && rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush7/misc \
&& rm -rf /usr/local/src/drush/tests \ \
# drush8
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
\ \
# drupalconsole # drupalconsole
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
@@ -164,14 +192,17 @@ RUN set -x \
&& cd / && rm -rf /tmp/gitflow \ && cd / && rm -rf /tmp/gitflow \
\ \
# grunt # grunt
&& npm install -g grunt grunt-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# laravel # laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \
&& git checkout v2.0.0 \ && git checkout v2.0.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \
\ \
@@ -188,7 +219,6 @@ RUN set -x \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\ \
# mhsendmail # mhsendmail
@@ -251,14 +281,21 @@ RUN set -x \
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \
# webpack # webpack
&& npm install -g webpack webpack-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# wpcli # wpcli
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \
# yamllint # yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& pip install yamllint \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \ \
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup # cleanup
&& rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.cache \
@@ -268,6 +305,7 @@ RUN set -x \
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -277,10 +315,16 @@ RUN set -x \
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
\ \
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -307,10 +351,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
@@ -325,7 +379,8 @@ RUN set -x \
\ \
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \ && dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
&& drush --version | grep -E '[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \

View File

@@ -24,8 +24,9 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
@@ -39,13 +40,14 @@ RUN set -x \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -53,6 +55,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -62,6 +65,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -78,6 +82,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -98,19 +103,29 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
# composer # composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible # ansible
&& pip install --upgrade setuptools \ && /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
\ \
# asgardcms # asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -128,31 +143,57 @@ RUN set -x \
&& gem install mixlib-config -v 2.2.4 \ && gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\ \
# codeception # codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \ && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\ \
# deployer # deployer
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \
# drush # drush7
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush \ && cd /usr/local/src/drush7 \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout 7.4.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ && ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush/.git \ && rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush/docs \ && rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush7/misc \
&& rm -rf /usr/local/src/drush/tests \ \
# drush8
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
\
# drush9
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
&& cd /usr/local/src/drush9 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
&& rm -rf /usr/local/src/drush9/.git \
&& rm -rf /usr/local/src/drush9/docs \
&& rm -rf /usr/local/src/drush9/examples \
&& rm -rf /usr/local/src/drush9/misc \
\ \
# drupalconsole # drupalconsole
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
@@ -164,14 +205,17 @@ RUN set -x \
&& cd / && rm -rf /tmp/gitflow \ && cd / && rm -rf /tmp/gitflow \
\ \
# grunt # grunt
&& npm install -g grunt grunt-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# laravel # laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \
&& git checkout v2.0.0 \ && git checkout v2.0.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \
\ \
@@ -188,7 +232,6 @@ RUN set -x \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\ \
# mhsendmail # mhsendmail
@@ -251,14 +294,21 @@ RUN set -x \
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \
# webpack # webpack
&& npm install -g webpack webpack-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# wpcli # wpcli
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \
# yamllint # yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& pip install yamllint \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \ \
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup # cleanup
&& rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.cache \
@@ -268,6 +318,7 @@ RUN set -x \
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -277,10 +328,16 @@ RUN set -x \
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
\ \
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -307,10 +364,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
@@ -325,7 +392,9 @@ RUN set -x \
\ \
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \ && dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
&& drush --version | grep -E '[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \

View File

@@ -24,8 +24,9 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
@@ -39,13 +40,14 @@ RUN set -x \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -53,6 +55,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -62,6 +65,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -78,6 +82,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -98,19 +103,29 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
# composer # composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible # ansible
&& pip install --upgrade setuptools \ && /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
\ \
# asgardcms # asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -128,31 +143,57 @@ RUN set -x \
&& gem install mixlib-config -v 2.2.4 \ && gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\ \
# codeception # codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \ && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\ \
# deployer # deployer
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \
# drush # drush7
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush \ && cd /usr/local/src/drush7 \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout 7.4.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ && ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush/.git \ && rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush/docs \ && rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush7/misc \
&& rm -rf /usr/local/src/drush/tests \ \
# drush8
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
\
# drush9
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
&& cd /usr/local/src/drush9 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
&& rm -rf /usr/local/src/drush9/.git \
&& rm -rf /usr/local/src/drush9/docs \
&& rm -rf /usr/local/src/drush9/examples \
&& rm -rf /usr/local/src/drush9/misc \
\ \
# drupalconsole # drupalconsole
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
@@ -164,14 +205,17 @@ RUN set -x \
&& cd / && rm -rf /tmp/gitflow \ && cd / && rm -rf /tmp/gitflow \
\ \
# grunt # grunt
&& npm install -g grunt grunt-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# laravel # laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \
&& git checkout v2.0.0 \ && git checkout v2.0.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \
\ \
@@ -188,7 +232,6 @@ RUN set -x \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\ \
# mhsendmail # mhsendmail
@@ -251,14 +294,21 @@ RUN set -x \
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \
# webpack # webpack
&& npm install -g webpack webpack-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# wpcli # wpcli
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \
# yamllint # yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& pip install yamllint \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \ \
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup # cleanup
&& rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.cache \
@@ -268,6 +318,7 @@ RUN set -x \
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -277,10 +328,16 @@ RUN set -x \
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
\ \
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -307,10 +364,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
@@ -325,7 +392,9 @@ RUN set -x \
\ \
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \ && dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
&& drush --version | grep -E '[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \

View File

@@ -24,8 +24,9 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
@@ -39,13 +40,14 @@ RUN set -x \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -53,6 +55,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -62,6 +65,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -78,6 +82,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -98,19 +103,29 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
# composer # composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible # ansible
&& pip install --upgrade setuptools \ && /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
\ \
# asgardcms # asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -128,31 +143,57 @@ RUN set -x \
&& gem install mixlib-config -v 2.2.4 \ && gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\ \
# codeception # codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \ && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\ \
# deployer # deployer
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \
# drush # drush7
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush \ && cd /usr/local/src/drush7 \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout 7.4.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ && ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush/.git \ && rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush/docs \ && rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush7/misc \
&& rm -rf /usr/local/src/drush/tests \ \
# drush8
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
\
# drush9
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
&& cd /usr/local/src/drush9 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
&& rm -rf /usr/local/src/drush9/.git \
&& rm -rf /usr/local/src/drush9/docs \
&& rm -rf /usr/local/src/drush9/examples \
&& rm -rf /usr/local/src/drush9/misc \
\ \
# drupalconsole # drupalconsole
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
@@ -164,14 +205,17 @@ RUN set -x \
&& cd / && rm -rf /tmp/gitflow \ && cd / && rm -rf /tmp/gitflow \
\ \
# grunt # grunt
&& npm install -g grunt grunt-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# laravel # laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \
&& git checkout $(git describe --abbrev=0 --tags) \ && git checkout $(git describe --abbrev=0 --tags) \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \
\ \
@@ -188,7 +232,6 @@ RUN set -x \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\ \
# mhsendmail # mhsendmail
@@ -251,14 +294,21 @@ RUN set -x \
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \
# webpack # webpack
&& npm install -g webpack webpack-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# wpcli # wpcli
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \
# yamllint # yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& pip install yamllint \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \ \
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup # cleanup
&& rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.cache \
@@ -268,6 +318,7 @@ RUN set -x \
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -277,10 +328,16 @@ RUN set -x \
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
\ \
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -307,10 +364,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
@@ -325,7 +392,9 @@ RUN set -x \
\ \
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \ && dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
&& drush --version | grep -E '[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \

View File

@@ -24,8 +24,9 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
@@ -39,13 +40,14 @@ RUN set -x \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -53,6 +55,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -62,6 +65,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -78,6 +82,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -98,19 +103,29 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
# composer # composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible # ansible
&& pip install --upgrade setuptools \ && /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
\ \
# asgardcms # asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -128,31 +143,57 @@ RUN set -x \
&& gem install mixlib-config -v 2.2.4 \ && gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\ \
# codeception # codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \ && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\ \
# deployer # deployer
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \
# drush # drush7
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush \ && cd /usr/local/src/drush7 \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout 7.4.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ && ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush/.git \ && rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush/docs \ && rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush7/misc \
&& rm -rf /usr/local/src/drush/tests \ \
# drush8
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
\
# drush9
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
&& cd /usr/local/src/drush9 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
&& rm -rf /usr/local/src/drush9/.git \
&& rm -rf /usr/local/src/drush9/docs \
&& rm -rf /usr/local/src/drush9/examples \
&& rm -rf /usr/local/src/drush9/misc \
\ \
# drupalconsole # drupalconsole
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
@@ -164,14 +205,17 @@ RUN set -x \
&& cd / && rm -rf /tmp/gitflow \ && cd / && rm -rf /tmp/gitflow \
\ \
# grunt # grunt
&& npm install -g grunt grunt-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# laravel # laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \
&& git checkout $(git describe --abbrev=0 --tags) \ && git checkout $(git describe --abbrev=0 --tags) \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \
\ \
@@ -188,7 +232,6 @@ RUN set -x \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\ \
# mhsendmail # mhsendmail
@@ -251,14 +294,21 @@ RUN set -x \
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \
# webpack # webpack
&& npm install -g webpack webpack-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# wpcli # wpcli
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \
# yamllint # yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& pip install yamllint \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \ \
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup # cleanup
&& rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.cache \
@@ -268,6 +318,7 @@ RUN set -x \
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -277,10 +328,16 @@ RUN set -x \
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
\ \
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -307,10 +364,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
@@ -325,7 +392,9 @@ RUN set -x \
\ \
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \ && dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
&& drush --version | grep -E '[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \

View File

@@ -24,8 +24,9 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
@@ -39,13 +40,14 @@ RUN set -x \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -53,6 +55,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -62,6 +65,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -78,6 +82,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -98,19 +103,29 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
# composer # composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible # ansible
&& pip install --upgrade setuptools \ && /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
\ \
# asgardcms # asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -128,31 +143,57 @@ RUN set -x \
&& gem install mixlib-config -v 2.2.4 \ && gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\ \
# codeception # codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \ && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\ \
# deployer # deployer
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \
# drush # drush7
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush \ && cd /usr/local/src/drush7 \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout 7.4.0 \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ && ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush/.git \ && rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush/docs \ && rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush7/misc \
&& rm -rf /usr/local/src/drush/tests \ \
# drush8
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
\
# drush9
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
&& cd /usr/local/src/drush9 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
&& rm -rf /usr/local/src/drush9/.git \
&& rm -rf /usr/local/src/drush9/docs \
&& rm -rf /usr/local/src/drush9/examples \
&& rm -rf /usr/local/src/drush9/misc \
\ \
# drupalconsole # drupalconsole
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
@@ -164,14 +205,17 @@ RUN set -x \
&& cd / && rm -rf /tmp/gitflow \ && cd / && rm -rf /tmp/gitflow \
\ \
# grunt # grunt
&& npm install -g grunt grunt-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# laravel # laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \
&& git checkout $(git describe --abbrev=0 --tags) \ && git checkout $(git describe --abbrev=0 --tags) \
\ \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \
\ \
@@ -188,7 +232,6 @@ RUN set -x \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\ \
# mhsendmail # mhsendmail
@@ -240,14 +283,21 @@ RUN set -x \
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \
# webpack # webpack
&& npm install -g webpack webpack-cli \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# wpcli # wpcli
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \
# yamllint # yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& pip install yamllint \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \ \
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup # cleanup
&& rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.cache \
@@ -257,6 +307,7 @@ RUN set -x \
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -266,10 +317,16 @@ RUN set -x \
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
\ \
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -296,10 +353,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
@@ -314,7 +381,9 @@ RUN set -x \
\ \
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \ && dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
&& drush --version | grep -E '[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \

View File

@@ -0,0 +1,446 @@
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
FROM devilbox/php-fpm:7.4-prod
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.4 Image" \
image="devilbox/php-fpm" \
tag="7.4-work" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BASH_PROFILE=".bashrc"
###
### Install Tools
###
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -q "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
&& curl -q https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \
aspell \
autoconf \
automake \
bash-completion \
binutils \
build-essential \
bzip2 \
coreutils \
curl \
dnsutils \
dos2unix \
file \
gawk \
gcc \
git \
git-flow \
git-svn \
graphviz \
hostname \
htop \
imagemagick \
iputils-ping \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libyaml-dev \
make \
mongodb-org-shell \
mongodb-org-tools \
moreutils \
mysql-client \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
ruby-dev \
shellcheck \
silversearcher-ag \
subversion \
sudo \
tig \
tree \
unzip \
vim \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zsh \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
\
# asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
&& cd /usr/local/src/awesome-ci \
&& git checkout $(git describe --abbrev=0 --tags) \
&& ./configure --prefix=/usr/local \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\
# deployer
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
&& chmod +x /usr/local/bin/dep \
# drush7
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush7 \
&& git checkout 7.4.0 \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush7/misc \
\
# drush8
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
\
# drush9
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
&& cd /usr/local/src/drush9 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
&& rm -rf /usr/local/src/drush9/.git \
&& rm -rf /usr/local/src/drush9/docs \
&& rm -rf /usr/local/src/drush9/examples \
&& rm -rf /usr/local/src/drush9/misc \
\
# drupalconsole
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
&& chmod +x /usr/local/bin/drupal \
# gitflow
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
&& cd /tmp/gitflow \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
\
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
&& git checkout $(git describe --abbrev=0 --tags) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
\
# linuxbrew
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
\
# mysqldumpsecure
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
&& cd /usr/local/src/mysqldump-secure \
&& git checkout $(git describe --abbrev=0 --tags) \
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
&& touch /var/log/mysqldump-secure.log \
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
&& chmod 0400 /etc/mysqldump-secure.conf \
&& chmod 0400 /etc/mysqldump-secure.cnf \
&& chmod 0644 /var/log/mysqldump-secure.log \
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
&& cd / \
&& rm -rf /usr/local/src/mysqldump-secure \
\
# phpcs
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
&& chmod +x /usr/local/bin/phpcs \
\
# phpcbf
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# phpunit
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# photon
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# wpcli
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup
&& rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \
&& rm -rf /home/${MY_USER}/.composer \
&& rm -rf /home/${MY_USER}/.config \
&& rm -rf /home/${MY_USER}/.drush \
&& rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\
&& rm -rf /root/.*json \
&& rm -rf /root/.cache \
&& rm -rf /root/.composer \
&& rm -rf /root/.config \
&& rm -rf /root/.drush \
&& rm -rf /root/.gem \
&& rm -rf /root/.npm \
&& rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\
&& rm -rf /tmp/* \
\
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Configure Bash
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
echo " if [ -r \"\${f}\" ]; then"; \
echo " . \"\${f}\""; \
echo " fi"; \
echo " done"; \
echo " unset f"; \
echo "fi"; \
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
###
### Verify
###
RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
&& /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
\
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wp --allow-root --version | grep -E '[.0-9]+' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
###
### Copy files
###
COPY ./data/php-ini.d/php-7.4.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
COPY ./data/php-fpm.conf/php-fpm-7.4.conf /usr/local/etc/php-fpm.conf
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
###
### Volumes
###
VOLUME /etc/bashrc-devilbox.d
VOLUME /etc/php-custom.d
VOLUME /etc/php-fpm-custom.d
VOLUME /etc/php-modules.d
VOLUME /shared/backups
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Where to start inside the container
###
WORKDIR /shared/httpd
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -19,7 +19,7 @@ _clr_usr='\[\e[0;31m\]'
_clr_ver='\[\e[0;36m\]' _clr_ver='\[\e[0;36m\]'
_clr_dir='\[\e[0;34m\]' _clr_dir='\[\e[0;34m\]'
_clr_off='\[\e[0m\]' _clr_off='\[\e[0m\]'
PS1_PHP="$( php -v 2>/dev/null | grep -Eo '^PHP\s([-_.a-z0-9])+' )" PS1_PHP="$( php -v 2>/dev/null | grep -Eo '^PHP\s([-_.a-zA-Z0-9])+' )"
PS1_PHP="${PS1_PHP//PHP[[:space:]]}" PS1_PHP="${PS1_PHP//PHP[[:space:]]}"
PS1_USR="$( whoami )" PS1_USR="$( whoami )"
PS1="${_clr_usr}${PS1_USR}${_clr_off}@${_clr_ver}php-${PS1_PHP}${_clr_off} in ${_clr_dir}\w${_clr_off} \$ " PS1="${_clr_usr}${PS1_USR}${_clr_off}@${_clr_ver}php-${PS1_PHP}${_clr_off} in ${_clr_dir}\w${_clr_off} \$ "

View File

@@ -0,0 +1,134 @@
; ################################################################################
; ####
; #### The following settings can be overwritten by later includes
; ####
; ################################################################################
; ############################################################
; Timeouts
; ############################################################
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; ############################################################
; Logging
; ############################################################
[global]
error_log = /proc/self/fd/2
log_level = notice
[www]
; if we send this to /proc/self/fd/1, it never appears
access.log = /proc/self/fd/2
; ############################################################
; Backlog configuration
; ############################################################
[www]
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; ############################################################
; Worker configuration
; ############################################################
[www]
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; ############################################################
; Include
; ############################################################
[global]
include = /usr/local/etc/php-fpm.d/*.conf
; ################################################################################
; ####
; #### The following settings overwrite any includes again
; ####
; ################################################################################
; ############################################################
; Required for Dockerization
; ############################################################
[global]
daemonize = no
[www]
; Keep env variables set by docker
clear_env = no
; Redirect worker stdout and stderr into main error log. If not set, stdout and
; stderr will be redirected to /dev/null according to FastCGI specs.
; Note: on highloaded environement, this can cause some delay in the page
; process time (several ms).
; Default Value: no
catch_workers_output = yes
; ############################################################
; User and Group
; ############################################################
[www]
user = devilbox
group = devilbox
; ############################################################
; Networking
; ############################################################
[www]
; Ensure to listen here
listen = 9000

View File

@@ -0,0 +1,49 @@
; ############################################################
; # Devilbox PHP defaults for 7.4-work
; ############################################################
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
; If none is present, the one from the previous flavour is inherited.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off

View File

@@ -36,6 +36,7 @@ help:
@printf "%s\n" "make build-base-71: Build PHP 7.1 base image" @printf "%s\n" "make build-base-71: Build PHP 7.1 base image"
@printf "%s\n" "make build-base-72: Build PHP 7.2 base image" @printf "%s\n" "make build-base-72: Build PHP 7.2 base image"
@printf "%s\n" "make build-base-73: Build PHP 7.3 base image" @printf "%s\n" "make build-base-73: Build PHP 7.3 base image"
@printf "%s\n" "make build-base-74: Build PHP 7.4 base image"
@printf "\n" @printf "\n"
@printf "%s\n" "make build-mods-52: Build PHP 5.2 mods image" @printf "%s\n" "make build-mods-52: Build PHP 5.2 mods image"
@printf "%s\n" "make build-mods-53: Build PHP 5.3 mods image" @printf "%s\n" "make build-mods-53: Build PHP 5.3 mods image"
@@ -46,6 +47,7 @@ help:
@printf "%s\n" "make build-mods-71: Build PHP 7.1 mods image" @printf "%s\n" "make build-mods-71: Build PHP 7.1 mods image"
@printf "%s\n" "make build-mods-72: Build PHP 7.2 mods image" @printf "%s\n" "make build-mods-72: Build PHP 7.2 mods image"
@printf "%s\n" "make build-mods-73: Build PHP 7.3 mods image" @printf "%s\n" "make build-mods-73: Build PHP 7.3 mods image"
@printf "%s\n" "make build-mods-74: Build PHP 7.4 mods image"
@printf "\n" @printf "\n"
@printf "%s\n" "make build-prod-52: Build PHP 5.2 prod image" @printf "%s\n" "make build-prod-52: Build PHP 5.2 prod image"
@printf "%s\n" "make build-prod-53: Build PHP 5.3 prod image" @printf "%s\n" "make build-prod-53: Build PHP 5.3 prod image"
@@ -56,6 +58,7 @@ help:
@printf "%s\n" "make build-prod-71: Build PHP 7.1 prod image" @printf "%s\n" "make build-prod-71: Build PHP 7.1 prod image"
@printf "%s\n" "make build-prod-72: Build PHP 7.2 prod image" @printf "%s\n" "make build-prod-72: Build PHP 7.2 prod image"
@printf "%s\n" "make build-prod-73: Build PHP 7.3 prod image" @printf "%s\n" "make build-prod-73: Build PHP 7.3 prod image"
@printf "%s\n" "make build-prod-74: Build PHP 7.4 prod image"
@printf "\n" @printf "\n"
@printf "%s\n" "make build-work-52: Build PHP 5.2 work image" @printf "%s\n" "make build-work-52: Build PHP 5.2 work image"
@printf "%s\n" "make build-work-53: Build PHP 5.3 work image" @printf "%s\n" "make build-work-53: Build PHP 5.3 work image"
@@ -66,6 +69,7 @@ help:
@printf "%s\n" "make build-work-71: Build PHP 7.1 work image" @printf "%s\n" "make build-work-71: Build PHP 7.1 work image"
@printf "%s\n" "make build-work-72: Build PHP 7.2 work image" @printf "%s\n" "make build-work-72: Build PHP 7.2 work image"
@printf "%s\n" "make build-work-73: Build PHP 7.3 work image" @printf "%s\n" "make build-work-73: Build PHP 7.3 work image"
@printf "%s\n" "make build-work-74: Build PHP 7.4 work image"
@printf "\n" @printf "\n"
@printf "%s\n" "make rebuild-base-52: Build PHP 5.2 base image" @printf "%s\n" "make rebuild-base-52: Build PHP 5.2 base image"
@printf "%s\n" "make rebuild-base-53: Build PHP 5.3 base image" @printf "%s\n" "make rebuild-base-53: Build PHP 5.3 base image"
@@ -76,6 +80,7 @@ help:
@printf "%s\n" "make rebuild-base-71: Build PHP 7.1 base image" @printf "%s\n" "make rebuild-base-71: Build PHP 7.1 base image"
@printf "%s\n" "make rebuild-base-72: Build PHP 7.2 base image" @printf "%s\n" "make rebuild-base-72: Build PHP 7.2 base image"
@printf "%s\n" "make rebuild-base-73: Build PHP 7.3 base image" @printf "%s\n" "make rebuild-base-73: Build PHP 7.3 base image"
@printf "%s\n" "make rebuild-base-74: Build PHP 7.4 base image"
@printf "\n" @printf "\n"
@printf "%s\n" "make rebuild-mods-52: Build PHP 5.2 mods image" @printf "%s\n" "make rebuild-mods-52: Build PHP 5.2 mods image"
@printf "%s\n" "make rebuild-mods-53: Build PHP 5.3 mods image" @printf "%s\n" "make rebuild-mods-53: Build PHP 5.3 mods image"
@@ -86,6 +91,7 @@ help:
@printf "%s\n" "make rebuild-mods-71: Build PHP 7.1 mods image" @printf "%s\n" "make rebuild-mods-71: Build PHP 7.1 mods image"
@printf "%s\n" "make rebuild-mods-72: Build PHP 7.2 mods image" @printf "%s\n" "make rebuild-mods-72: Build PHP 7.2 mods image"
@printf "%s\n" "make rebuild-mods-73: Build PHP 7.3 mods image" @printf "%s\n" "make rebuild-mods-73: Build PHP 7.3 mods image"
@printf "%s\n" "make rebuild-mods-74: Build PHP 7.4 mods image"
@printf "\n" @printf "\n"
@printf "%s\n" "make rebuild-prod-52: Build PHP 5.2 prod image" @printf "%s\n" "make rebuild-prod-52: Build PHP 5.2 prod image"
@printf "%s\n" "make rebuild-prod-53: Build PHP 5.3 prod image" @printf "%s\n" "make rebuild-prod-53: Build PHP 5.3 prod image"
@@ -96,6 +102,7 @@ help:
@printf "%s\n" "make rebuild-prod-71: Build PHP 7.1 prod image" @printf "%s\n" "make rebuild-prod-71: Build PHP 7.1 prod image"
@printf "%s\n" "make rebuild-prod-72: Build PHP 7.2 prod image" @printf "%s\n" "make rebuild-prod-72: Build PHP 7.2 prod image"
@printf "%s\n" "make rebuild-prod-73: Build PHP 7.3 prod image" @printf "%s\n" "make rebuild-prod-73: Build PHP 7.3 prod image"
@printf "%s\n" "make rebuild-prod-74: Build PHP 7.4 prod image"
@printf "\n" @printf "\n"
@printf "%s\n" "make rebuild-work-52: Build PHP 5.2 work image" @printf "%s\n" "make rebuild-work-52: Build PHP 5.2 work image"
@printf "%s\n" "make rebuild-work-53: Build PHP 5.3 work image" @printf "%s\n" "make rebuild-work-53: Build PHP 5.3 work image"
@@ -106,6 +113,7 @@ help:
@printf "%s\n" "make rebuild-work-71: Build PHP 7.1 work image" @printf "%s\n" "make rebuild-work-71: Build PHP 7.1 work image"
@printf "%s\n" "make rebuild-work-72: Build PHP 7.2 work image" @printf "%s\n" "make rebuild-work-72: Build PHP 7.2 work image"
@printf "%s\n" "make rebuild-work-73: Build PHP 7.3 work image" @printf "%s\n" "make rebuild-work-73: Build PHP 7.3 work image"
@printf "%s\n" "make rebuild-work-74: Build PHP 7.4 work image"
@@ -141,15 +149,15 @@ rebuild-all: rebuild-base rebuild-mods rebuild-prod rebuild-work
### ###
### Build categories ### Build categories
### ###
build-base: build-base-52 build-base-53 build-base-54 build-base-55 build-base-56 build-base-70 build-base-71 build-base-72 build-base-73 build-base: build-base-52 build-base-53 build-base-54 build-base-55 build-base-56 build-base-70 build-base-71 build-base-72 build-base-73 build-base-74
build-mods: build-mods-52 build-mods-53 build-mods-54 build-mods-55 build-mods-56 build-mods-70 build-mods-71 build-mods-72 build-mods-73 build-mods: build-mods-52 build-mods-53 build-mods-54 build-mods-55 build-mods-56 build-mods-70 build-mods-71 build-mods-72 build-mods-73 build-mods-74
build-prod: build-prod-52 build-prod-53 build-prod-54 build-prod-55 build-prod-56 build-prod-70 build-prod-71 build-prod-72 build-prod-73 build-prod: build-prod-52 build-prod-53 build-prod-54 build-prod-55 build-prod-56 build-prod-70 build-prod-71 build-prod-72 build-prod-73 build-prod-74
build-work: build-work-52 build-work-53 build-work-54 build-work-55 build-work-56 build-work-70 build-work-71 build-work-72 build-work-73 build-work: build-work-52 build-work-53 build-work-54 build-work-55 build-work-56 build-work-70 build-work-71 build-work-72 build-work-73 build-work-74
rebuild-base: rebuild-base-52 rebuild-base-53 rebuild-base-54 rebuild-base-55 rebuild-base-56 rebuild-base-70 rebuild-base-71 rebuild-base-72 rebuild-base-73 rebuild-base: rebuild-base-52 rebuild-base-53 rebuild-base-54 rebuild-base-55 rebuild-base-56 rebuild-base-70 rebuild-base-71 rebuild-base-72 rebuild-base-73 rebuild-base-74
rebuild-mods: rebuild-mods-52 rebuild-mods-53 rebuild-mods-54 rebuild-mods-55 rebuild-mods-56 rebuild-mods-70 rebuild-mods-71 rebuild-mods-72 rebuild-mods-73 rebuild-mods: rebuild-mods-52 rebuild-mods-53 rebuild-mods-54 rebuild-mods-55 rebuild-mods-56 rebuild-mods-70 rebuild-mods-71 rebuild-mods-72 rebuild-mods-73 rebuild-mods-74
rebuild-prod: rebuild-prod-52 rebuild-prod-53 rebuild-prod-54 rebuild-prod-55 rebuild-prod-56 rebuild-prod-70 rebuild-prod-71 rebuild-prod-72 rebuild-prod-73 rebuild-prod: rebuild-prod-52 rebuild-prod-53 rebuild-prod-54 rebuild-prod-55 rebuild-prod-56 rebuild-prod-70 rebuild-prod-71 rebuild-prod-72 rebuild-prod-73 rebuild-prod-74
rebuild-work: rebuild-work-52 rebuild-work-53 rebuild-work-54 rebuild-work-55 rebuild-work-56 rebuild-work-70 rebuild-work-71 rebuild-work-72 rebuild-work-73 rebuild-work: rebuild-work-52 rebuild-work-53 rebuild-work-54 rebuild-work-55 rebuild-work-56 rebuild-work-70 rebuild-work-71 rebuild-work-72 rebuild-work-73 rebuild-work-74
@@ -174,6 +182,8 @@ build-base-72: pull-from-72
docker build -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base docker build -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base
build-base-73: pull-from-73 build-base-73: pull-from-73
docker build -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base docker build -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base
build-base-74: pull-from-74
docker build -t devilbox/php-fpm:7.4-base -f $(location)/base/Dockerfile-7.4 $(location)/base
build-mods-52: build-mods-52:
docker build -t devilbox/php-fpm:5.2-mods -f $(location)/mods/Dockerfile-5.2 $(location)/mods docker build -t devilbox/php-fpm:5.2-mods -f $(location)/mods/Dockerfile-5.2 $(location)/mods
@@ -193,6 +203,8 @@ build-mods-72:
docker build -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods docker build -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods
build-mods-73: build-mods-73:
docker build -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods docker build -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods
build-mods-74:
docker build -t devilbox/php-fpm:7.4-mods -f $(location)/mods/Dockerfile-7.4 $(location)/mods
build-prod-52: build-prod-52:
docker build -t devilbox/php-fpm:5.2-prod -f $(location)/prod/Dockerfile-5.2 $(location)/prod docker build -t devilbox/php-fpm:5.2-prod -f $(location)/prod/Dockerfile-5.2 $(location)/prod
@@ -212,6 +224,8 @@ build-prod-72:
docker build -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod docker build -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod
build-prod-73: build-prod-73:
docker build -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod docker build -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod
build-prod-74:
docker build -t devilbox/php-fpm:7.4-prod -f $(location)/prod/Dockerfile-7.4 $(location)/prod
build-work-52: build-work-52:
docker build -t devilbox/php-fpm:5.2-work -f $(location)/work/Dockerfile-5.2 $(location)/work docker build -t devilbox/php-fpm:5.2-work -f $(location)/work/Dockerfile-5.2 $(location)/work
@@ -231,6 +245,8 @@ build-work-72:
docker build -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work docker build -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work
build-work-73: build-work-73:
docker build -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work docker build -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work
build-work-74:
docker build -t devilbox/php-fpm:7.4-work -f $(location)/work/Dockerfile-7.4 $(location)/work
@@ -255,6 +271,8 @@ rebuild-base-72: pull-from-72
docker build --no-cache -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base docker build --no-cache -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base
rebuild-base-73: pull-from-73 rebuild-base-73: pull-from-73
docker build --no-cache -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base docker build --no-cache -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base
rebuild-base-74: pull-from-74
docker build --no-cache -t devilbox/php-fpm:7.4-base -f $(location)/base/Dockerfile-7.4 $(location)/base
rebuild-mods-52: rebuild-mods-52:
docker build --no-cache -t devilbox/php-fpm:5.2-mods -f $(location)/mods/Dockerfile-5.2 $(location)/mods docker build --no-cache -t devilbox/php-fpm:5.2-mods -f $(location)/mods/Dockerfile-5.2 $(location)/mods
@@ -274,6 +292,8 @@ rebuild-mods-72:
docker build --no-cache -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods docker build --no-cache -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods
rebuild-mods-73: rebuild-mods-73:
docker build --no-cache -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods docker build --no-cache -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods
rebuild-mods-74:
docker build --no-cache -t devilbox/php-fpm:7.4-mods -f $(location)/mods/Dockerfile-7.4 $(location)/mods
rebuild-prod-52: rebuild-prod-52:
docker build --no-cache -t devilbox/php-fpm:5.2-prod -f $(location)/prod/Dockerfile-5.2 $(location)/prod docker build --no-cache -t devilbox/php-fpm:5.2-prod -f $(location)/prod/Dockerfile-5.2 $(location)/prod
@@ -293,6 +313,8 @@ rebuild-prod-72:
docker build --no-cache -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod docker build --no-cache -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod
rebuild-prod-73: rebuild-prod-73:
docker build --no-cache -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod docker build --no-cache -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod
rebuild-prod-74:
docker build --no-cache -t devilbox/php-fpm:7.4-prod -f $(location)/prod/Dockerfile-7.4 $(location)/prod
rebuild-work-52: rebuild-work-52:
docker build --no-cache -t devilbox/php-fpm:5.2-work -f $(location)/work/Dockerfile-5.2 $(location)/work docker build --no-cache -t devilbox/php-fpm:5.2-work -f $(location)/work/Dockerfile-5.2 $(location)/work
@@ -312,6 +334,8 @@ rebuild-work-72:
docker build --no-cache -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work docker build --no-cache -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work
rebuild-work-73: rebuild-work-73:
docker build --no-cache -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work docker build --no-cache -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work
rebuild-work-74:
docker build --no-cache -t devilbox/php-fpm:7.4-work -f $(location)/work/Dockerfile-7.4 $(location)/work
@@ -336,6 +360,8 @@ pull-from-72:
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.2 | sed 's/^FROM\s*//g';) docker pull $(shell grep FROM $(location)/base/Dockerfile-7.2 | sed 's/^FROM\s*//g';)
pull-from-73: pull-from-73:
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.3 | sed 's/^FROM\s*//g';) docker pull $(shell grep FROM $(location)/base/Dockerfile-7.3 | sed 's/^FROM\s*//g';)
pull-from-74:
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.4 | sed 's/^FROM\s*//g';)
### ###
@@ -343,10 +369,10 @@ pull-from-73:
### ###
test-all: test-base test-mods test-prod test-work test-all: test-base test-mods test-prod test-work
test-base: test-base-52 test-base-53 test-base-54 test-base-55 test-base-56 test-base-70 test-base-71 test-base-72 test-base-73 test-base: test-base-52 test-base-53 test-base-54 test-base-55 test-base-56 test-base-70 test-base-71 test-base-72 test-base-73 test-base-74
test-mods: test-mods-52 test-mods-53 test-mods-54 test-mods-55 test-mods-56 test-mods-70 test-mods-71 test-mods-72 test-mods-73 test-mods: test-mods-52 test-mods-53 test-mods-54 test-mods-55 test-mods-56 test-mods-70 test-mods-71 test-mods-72 test-mods-73 test-mods-74
test-prod: test-prod-52 test-prod-53 test-prod-54 test-prod-55 test-prod-56 test-prod-70 test-prod-71 test-prod-72 test-prod-73 test-prod: test-prod-52 test-prod-53 test-prod-54 test-prod-55 test-prod-56 test-prod-70 test-prod-71 test-prod-72 test-prod-73 test-prod-74
test-work: test-work-52 test-work-53 test-work-54 test-work-55 test-work-56 test-work-70 test-work-71 test-work-72 test-work-73 test-work: test-work-52 test-work-53 test-work-54 test-work-55 test-work-56 test-work-70 test-work-71 test-work-72 test-work-73 test-work-74
### ###
@@ -370,6 +396,8 @@ test-base-72:
./tests/test.sh 7.2 base ./tests/test.sh 7.2 base
test-base-73: test-base-73:
./tests/test.sh 7.3 base ./tests/test.sh 7.3 base
test-base-74:
./tests/test.sh 7.4 base
test-mods-52: test-mods-52:
./tests/test.sh 5.2 mods ./tests/test.sh 5.2 mods
@@ -389,6 +417,8 @@ test-mods-72:
./tests/test.sh 7.2 mods ./tests/test.sh 7.2 mods
test-mods-73: test-mods-73:
./tests/test.sh 7.3 mods ./tests/test.sh 7.3 mods
test-mods-74:
./tests/test.sh 7.4 mods
test-prod-52: test-prod-52:
./tests/test.sh 5.2 prod ./tests/test.sh 5.2 prod
@@ -408,6 +438,8 @@ test-prod-72:
./tests/test.sh 7.2 prod ./tests/test.sh 7.2 prod
test-prod-73: test-prod-73:
./tests/test.sh 7.3 prod ./tests/test.sh 7.3 prod
test-prod-74:
./tests/test.sh 7.4 prod
test-work-52: test-work-52:
./tests/test.sh 5.2 work ./tests/test.sh 5.2 work
@@ -427,3 +459,5 @@ test-work-72:
./tests/test.sh 7.2 work ./tests/test.sh 7.2 work
test-work-73: test-work-73:
./tests/test.sh 7.3 work ./tests/test.sh 7.3 work
test-work-74:
./tests/test.sh 7.4 work

View File

@@ -173,7 +173,7 @@ The following table shows a more complete overview about the offered Docker imag
<tbody> <tbody>
<tr> <tr>
<td rowspan="9"><strong>base</strong></td> <td rowspan="10"><strong>base</strong></td>
<td><code>devilbox/php-fpm:5.2-base</code></td> <td><code>devilbox/php-fpm:5.2-base</code></td>
<td> <td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-base.svg" /></a> <a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-base.svg" /></a>
@@ -235,9 +235,16 @@ The following table shows a more complete overview about the offered Docker imag
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-base.svg" /></a> <a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-base.svg" /></a>
</td> </td>
</tr> </tr>
<tr>
<td><code>devilbox/php-fpm:7.4-base</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:7.4-base.svg" /></a>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.4-base.svg" /></a>
</td>
</tr>
<tr> <tr>
<td rowspan="9"><strong>mods</strong></td> <td rowspan="10"><strong>mods</strong></td>
<td><code>devilbox/php-fpm:5.2-mods</code></td> <td><code>devilbox/php-fpm:5.2-mods</code></td>
<td> <td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-mods.svg" /></a> <a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-mods.svg" /></a>
@@ -300,9 +307,16 @@ The following table shows a more complete overview about the offered Docker imag
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-mods.svg" /></a> <a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-mods.svg" /></a>
</td> </td>
</tr> </tr>
<tr>
<td><code>devilbox/php-fpm:7.4-mods</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:7.4-mods.svg" /></a>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.4-mods.svg" /></a>
</td>
</tr>
<tr> <tr>
<td rowspan="9"><strong>prod</strong></td> <td rowspan="10"><strong>prod</strong></td>
<td><code>devilbox/php-fpm:5.2-prod</code></td> <td><code>devilbox/php-fpm:5.2-prod</code></td>
<td> <td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-prod.svg" /></a> <a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-prod.svg" /></a>
@@ -365,9 +379,16 @@ The following table shows a more complete overview about the offered Docker imag
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-prod.svg" /></a> <a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-prod.svg" /></a>
</td> </td>
</tr> </tr>
<tr>
<td><code>devilbox/php-fpm:7.4-prod</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:7.4-prod.svg" /></a>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.4-prod.svg" /></a>
</td>
</tr>
<tr> <tr>
<td rowspan="9"><strong>work</strong></td> <td rowspan="10"><strong>work</strong></td>
<td><code>devilbox/php-fpm:5.2-work</code></td> <td><code>devilbox/php-fpm:5.2-work</code></td>
<td> <td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-work.svg" /></a> <a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-work.svg" /></a>
@@ -430,6 +451,13 @@ The following table shows a more complete overview about the offered Docker imag
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-work.svg" /></a> <a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-work.svg" /></a>
</td> </td>
</tr> </tr>
<tr>
<td><code>devilbox/php-fpm:7.4-work</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:7.4-work.svg" /></a>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.4-work.svg" /></a>
</td>
</tr>
</tbody> </tbody>
</table> </table>
@@ -540,6 +568,11 @@ Check out this table to see which Docker image provides what PHP modules.
<td id="73-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="73-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="73-mods">apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcached, mongodb, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="73-mods">apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcached, mongodb, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr> </tr>
<tr>
<th>7.4</th>
<td id="74-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="74-mods">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr>
</tbody> </tbody>
</table> </table>
@@ -558,6 +591,7 @@ docker pull devilbox/php-fpm:7.0-base
docker pull devilbox/php-fpm:7.1-base docker pull devilbox/php-fpm:7.1-base
docker pull devilbox/php-fpm:7.2-base docker pull devilbox/php-fpm:7.2-base
docker pull devilbox/php-fpm:7.3-base docker pull devilbox/php-fpm:7.3-base
docker pull devilbox/php-fpm:7.4-base
``` ```
Generic PHP-FPM base image. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.<br/><br/><sub>(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`)</sub> Generic PHP-FPM base image. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.<br/><br/><sub>(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`)</sub>
@@ -573,6 +607,7 @@ docker pull devilbox/php-fpm:7.0-mods
docker pull devilbox/php-fpm:7.1-mods docker pull devilbox/php-fpm:7.1-mods
docker pull devilbox/php-fpm:7.2-mods docker pull devilbox/php-fpm:7.2-mods
docker pull devilbox/php-fpm:7.3-mods docker pull devilbox/php-fpm:7.3-mods
docker pull devilbox/php-fpm:7.4-mods
``` ```
Generic PHP-FPM image with fully loaded extensions. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.<br/><br/><sub>(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`)</sub></td> Generic PHP-FPM image with fully loaded extensions. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.<br/><br/><sub>(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`)</sub></td>
@@ -588,6 +623,7 @@ docker pull devilbox/php-fpm:7.0-prod
docker pull devilbox/php-fpm:7.1-prod docker pull devilbox/php-fpm:7.1-prod
docker pull devilbox/php-fpm:7.2-prod docker pull devilbox/php-fpm:7.2-prod
docker pull devilbox/php-fpm:7.3-prod docker pull devilbox/php-fpm:7.3-prod
docker pull devilbox/php-fpm:7.4-prod
``` ```
Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting. Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting.
@@ -603,6 +639,7 @@ docker pull devilbox/php-fpm:7.0-work
docker pull devilbox/php-fpm:7.1-work docker pull devilbox/php-fpm:7.1-work
docker pull devilbox/php-fpm:7.2-work docker pull devilbox/php-fpm:7.2-work
docker pull devilbox/php-fpm:7.3-work docker pull devilbox/php-fpm:7.3-work
docker pull devilbox/php-fpm:7.4-work
``` ```
Devilbox development image. Same as prod, but comes with lots of locally installed tools to make development inside the container as convenient as possible. See [Integrated Development Environment](#integrated-development-environment) for more information about this. Devilbox development image. Same as prod, but comes with lots of locally installed tools to make development inside the container as convenient as possible. See [Integrated Development Environment](#integrated-development-environment) for more information about this.
@@ -874,6 +911,10 @@ You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpc
<td><a href="https://github.com/zaach/jsonlint">jsonlint</a></td> <td><a href="https://github.com/zaach/jsonlint">jsonlint</a></td>
<td>Json command line linter.</td> <td>Json command line linter.</td>
</tr> </tr>
<tr>
<td><a href="https://stedolan.github.io/jq/">jq</a></td>
<td>Command-line JSON processor.</td>
</tr>
<tr> <tr>
<td><a href="https://github.com/laravel/installer">laravel installer</a></td> <td><a href="https://github.com/laravel/installer">laravel installer</a></td>
<td>A CLI tool to easily install and manage the laravel framework.</td> <td>A CLI tool to easily install and manage the laravel framework.</td>

View File

@@ -4,7 +4,9 @@ FROM devilbox/php-fpm-5.2
{% elif php_version == 5.3 %} {% elif php_version == 5.3 %}
FROM devilbox/php-fpm-5.3 FROM devilbox/php-fpm-5.3
{% elif php_version == 7.3 %} {% elif php_version == 7.3 %}
FROM devilbox/php-fpm-7.3 FROM php:{{ php_version }}-rc-fpm
{% elif php_version == 7.4 %}
FROM devilbox/php-fpm-7.4
{% else %} {% else %}
FROM php:{{ php_version }}-fpm FROM php:{{ php_version }}-fpm
{% endif %} {% endif %}
@@ -44,9 +46,8 @@ RUN set -x \
### Upgrade (install ps) ### Upgrade (install ps)
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
&& apt-get install --no-install-recommends --no-install-suggests -y procps \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
@@ -77,10 +78,20 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
{% endif %} {% endif %}

View File

@@ -18,43 +18,56 @@ LABEL \
### Envs ### Envs
### ###
ENV BUILD_DEPS \ ENV BUILD_DEPS \
{# Loop over enabled build dependencies #} {# Loop over enabled build dependencies -#}
{% for ext in extensions_enabled %} {%- set build_deps = [] -%}
{# Not disabled #} {%- for ext in extensions_enabled -%}
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} {#- Not disabled AND not already available by default -#}
{# Version specific build dependency available? #} {%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']))
{% if php_version in extensions_available[ext] and 'build_dep' in extensions_available[ext][php_version] %} and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) -%}
{% for build_dep in extensions_available[ext][php_version]['build_dep'] %} {#- Version specific build dependency available? -#}
{%- if php_version in extensions_available[ext] and 'build_dep' in extensions_available[ext][php_version] -%}
{%- for build_dep in extensions_available[ext][php_version]['build_dep'] -%}
{#- Append build dependencies to our array -#}
{{- build_deps.append(build_dep) -}}
{%- endfor -%}
{#- Generic build dependency available? -#}
{%- elif 'all' in extensions_available[ext] and 'build_dep' in extensions_available[ext]['all'] -%}
{%- for build_dep in extensions_available[ext]['all']['build_dep'] -%}
{#- Append build dependencies to our array -#}
{{- build_deps.append(build_dep) -}}
{%- endfor -%}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{% for build_dep in build_deps | unique | sort %}
{{ build_dep }} \ {{ build_dep }} \
{% endfor %}
{# Generic build dependency available? #}
{% elif 'all' in extensions_available[ext] and 'build_dep' in extensions_available[ext]['all'] %}
{% for build_dep in extensions_available[ext]['all']['build_dep'] %}
{{ build_dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endfor %} {% endfor %}
ca-certificates \ ca-certificates \
git git
ENV RUN_DEPS \ ENV RUN_DEPS \
{# Loop over enabled run-time dependencies #} {# Loop over enabled run-time dependencies -#}
{% for ext in extensions_enabled %} {%- set run_deps = [] -%}
{# Not disabled #} {%- for ext in extensions_enabled -%}
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} {#- Not disabled -#}
{# Version specific run-time dependency available? #} {%- if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) -%}
{% if php_version in extensions_available[ext] and 'run_dep' in extensions_available[ext][php_version] %} {#- Version specific run-time dependency available? -#}
{% for run_dep in extensions_available[ext][php_version]['run_dep'] %} {%- if php_version in extensions_available[ext] and 'run_dep' in extensions_available[ext][php_version] -%}
{%- for run_dep in extensions_available[ext][php_version]['run_dep'] -%}
{#- Append run dependencies to our array -#}
{{- run_deps.append(run_dep) -}}
{%- endfor -%}
{#- Generic run-time dependency available? -#}
{%- elif 'all' in extensions_available[ext] and 'run_dep' in extensions_available[ext]['all'] -%}
{%- for run_dep in extensions_available[ext]['all']['run_dep'] -%}
{#- Append run dependencies to our array -#}
{{- run_deps.append(run_dep) -}}
{%- endfor -%}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{% for run_dep in run_deps | unique | sort %}
{{ run_dep }} \ {{ run_dep }} \
{% endfor %}
{# Generic run-time dependency available? #}
{% elif 'all' in extensions_available[ext] and 'run_dep' in extensions_available[ext]['all'] %}
{% for run_dep in extensions_available[ext]['all']['run_dep'] %}
{{ run_dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endfor %} {% endfor %}
ca-certificates ca-certificates
@@ -63,111 +76,126 @@ ENV RUN_DEPS \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
${BUILD_DEPS} \ ${BUILD_DEPS} \
\ \
\ \
{# Loop over enabled extensions #} {# Loop over enabled extensions #}
{% for ext in extensions_enabled %} {% for ext in extensions_enabled %}
{# Not disabled #} {# Not disabled AND not already enabled #}
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} {% if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %}
{# ---------- Pre Command ---------- #} # ---- Installing PHP Extension: {{ ext }} ----
{# Version specific pre-command available? #} {# ---------- Pre Command ---------- #}
{% if php_version in extensions_available[ext] and 'pre' in extensions_available[ext][php_version] %} {# Version specific pre-command available? #}
{% if php_version in extensions_available[ext] and 'pre' in extensions_available[ext][php_version] %}
&& {{ extensions_available[ext][php_version]['pre'] }} \ && {{ extensions_available[ext][php_version]['pre'] }} \
{# Generic pre-command available? #} {# Generic pre-command available? #}
{% elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %} {% elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %}
&& {{ extensions_available[ext]['all']['pre'] }} \ && {{ extensions_available[ext]['all']['pre'] }} \
{% endif %} {% endif %}
{# ---------- Installation (specific) ---------- #} {# ---------- Installation (specific) ---------- #}
{% if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] %} {% if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] %}
{# ---- 1.) Builtin ---- #} {# ---- 1.) Builtin ---- #}
{% if extensions_available[ext][php_version]['type'] == 'builtin' %} {% if extensions_available[ext][php_version]['type'] == 'builtin' %}
{% if 'configure' in extensions_available[ext][php_version] %} {% if 'configure' in extensions_available[ext][php_version] %}
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \ && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \
{% endif %} {% endif %}
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
{# ---- 2.) PECL ---- #} {# ---- 2.) PECL ---- #}
{% elif extensions_available[ext][php_version]['type'] == 'pecl' %} {% elif extensions_available[ext][php_version]['type'] == 'pecl' %}
{% if 'command' in extensions_available[ext][php_version] %} {% if 'command' in extensions_available[ext][php_version] %}
&& {{ extensions_available[ext][php_version]['command'] }} \ && {{ extensions_available[ext][php_version]['command'] }} \
{% else %} {% else %}
&& pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \ && pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \
{% endif %} {% endif %}
&& docker-php-ext-enable {{ ext }} \ && docker-php-ext-enable {{ ext }} \
{# ---- 3.) GIT ---- #} {# ---- 3.) GIT ---- #}
{% elif extensions_available[ext][php_version]['type'] == 'git' %} {% elif extensions_available[ext][php_version]['type'] == 'git' %}
&& git clone -v {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \ && git clone {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \
&& cd /tmp/{{ ext }} \ && cd /tmp/{{ ext }} \
{% if 'git_ref' in extensions_available[ext][php_version] %} {% if 'git_ref' in extensions_available[ext][php_version] %}
&& git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \ && git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \
{% endif %} {% endif %}
{% if 'command' in extensions_available[ext][php_version] %} {% if 'command' in extensions_available[ext][php_version] %}
&& {{ extensions_available[ext][php_version]['command'] }} \ && {{ extensions_available[ext][php_version]['command'] }} \
{% else %} {% else %}
&& phpize \ && phpize \
&& ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \ && ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
{% endif %} {% endif %}
&& docker-php-ext-enable {{ ext }} \ && docker-php-ext-enable {{ ext }} \
&& cd / && rm -rf /tmp/{{ ext }} \ {# ---- 4.) CUSTOM ---- #}
{# ---- 4.) CUSTOM ---- #} {% elif extensions_available[ext][php_version]['type'] == 'custom' %}
{% elif extensions_available[ext][php_version]['type'] == 'custom' %}
&& {{ extensions_available[ext][php_version]['command'] }} \ && {{ extensions_available[ext][php_version]['command'] }} \
{% endif %} {% endif %}
{# ---------- Installation (generic) ---------- #} {# ---------- Installation (generic) ---------- #}
{% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %} {% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %}
{# ---- 1.) Builtin ---- #} {# ---- 1.) Builtin ---- #}
{% if extensions_available[ext]['all']['type'] == 'builtin' %} {% if extensions_available[ext]['all']['type'] == 'builtin' %}
{% if 'configure' in extensions_available[ext]['all'] %} {% if 'configure' in extensions_available[ext]['all'] %}
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \ && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
{% endif %} {% endif %}
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
{# ---- 2.) PECL ---- #} {# ---- 2.) PECL ---- #}
{% elif extensions_available[ext]['all']['type'] == 'pecl' %} {% elif extensions_available[ext]['all']['type'] == 'pecl' %}
{% if 'command' in extensions_available[ext]['all'] %} {% if 'command' in extensions_available[ext]['all'] %}
&& {{ extensions_available[ext]['all']['command'] }} \ && {{ extensions_available[ext]['all']['command'] }} \
{% else %} {% else %}
&& pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \ && pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \
{% endif %} {% endif %}
&& docker-php-ext-enable {{ ext }} \ && docker-php-ext-enable {{ ext }} \
{# ---- 3.) GIT ---- #} {# ---- 3.) GIT ---- #}
{% elif extensions_available[ext]['all']['type'] == 'git' %} {% elif extensions_available[ext]['all']['type'] == 'git' %}
&& git clone -v {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \ && git clone {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \
&& cd /tmp/{{ ext }} \ && cd /tmp/{{ ext }} \
{% if 'git_ref' in extensions_available[ext]['all'] %} {% if 'git_ref' in extensions_available[ext]['all'] %}
&& git checkout {{ extensions_available[ext]['all']['git_ref'] }} \ && git checkout {{ extensions_available[ext]['all']['git_ref'] }} \
{% endif %} {% endif %}
{% if 'command' in extensions_available[ext]['all'] %} {% if 'command' in extensions_available[ext]['all'] %}
&& {{ extensions_available[ext]['all']['command'] }} \ && {{ extensions_available[ext]['all']['command'] }} \
{% else %} {% else %}
&& phpize \ && phpize \
&& ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \ && ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
{% endif %} {% endif %}
&& docker-php-ext-enable {{ ext }} \ && docker-php-ext-enable {{ ext }} \
&& cd / && rm -rf /tmp/{{ ext }} \ {# ---- 4.) CUSTOM ---- #}
{# ---- 4.) CUSTOM ---- #} {% elif extensions_available[ext]['all']['type'] == 'custom' %}
{% elif extensions_available[ext]['all']['type'] == 'custom' %}
&& {{ extensions_available[ext]['all']['command'] }} \ && {{ extensions_available[ext]['all']['command'] }} \
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endif %} {# Only delete files for extensions we've actually installed, not those that were already available by default #}
&& (rm -rf /usr/local/lib/php/test/{{ ext }} || true) \
&& (rm -rf /usr/local/lib/php/doc/{{ ext }} || true) \
\
{% endif %}
{# Ensure modules that are not disabled have an appropriate ini directive and are loaded #}
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %}
{% if php_version in extensions_available[ext] and 'load_ext' in extensions_available[ext][php_version] %}
&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then echo "extension={{ extensions_available[ext][php_version]['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; fi \
{% elif 'all' in extensions_available[ext] and 'load_ext' in extensions_available[ext]['all'] %}
&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then echo "extenstion={{ extensions_available[ext]['all']['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; fi \
{% endif %}
{% endif %}
{% endfor %} {% endfor %}
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
&& rm -rf /tmp/* \
\ \
\ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
${BUILD_DEPS} \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
\
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\
&& update-ca-certificates \ && update-ca-certificates \
&& sh -c "find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true" \
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
{% if debug %} {% if debug %}
@@ -175,25 +203,34 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \
\
{% for ext in extensions_enabled %} {% for ext in extensions_enabled %}
{# Not disabled #} {#- Not disabled #}
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} {%- if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %}
{% if ext == 'opcache' %} {%- if ext == 'opcache' %}
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \ && php-fpm -m | grep -oiE '^Zend Opcache$' \
{% elif ext == 'ioncube' %} {# #}
{# Not enabled #} {%- elif ext not in ['ioncube'] %}
{% else %}
&& php -m | grep -oiE '^{{ ext }}$' \ && php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \ && php-fpm -m | grep -oiE '^{{ ext }}$' \
{% endif %} {# #}
{% endif %} {%- endif %}
{%- endif %}
{% endfor %} {% endfor %}
&& true && true

View File

@@ -18,20 +18,25 @@ LABEL \
### Install ### Install
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
locales-all \ locales-all \
postfix \ postfix \
postfix-pcre \ postfix-pcre \
rsyslog \ rsyslog \
socat \ socat \
supervisor \ supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \
&& rm -rf /etc/supervisor* \ && rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \ && mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor && mkdir -p /var/log/supervisor \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
@@ -40,10 +45,20 @@ RUN set -x \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
{% endif %} {% endif %}

View File

@@ -24,43 +24,51 @@ ENV BASH_PROFILE=".bashrc"
### Install Tools ### Install Tools
### ###
RUN set -x \ RUN set -x \
&& apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
dirmngr \ dirmngr \
gnupg \ gnupg \
{% for repo in apt_repositories_enabled %} {% for repo in apt_repositories_enabled -%}
{# Not disabled #} {#- Not disabled -#}
{% if ('disabled' not in apt_repositories_available[repo]) or (php_version not in apt_repositories_available[repo]['disabled']) %} {%- if ('disabled' not in apt_repositories_available[repo]) or (php_version not in apt_repositories_available[repo]['disabled']) -%}
{# Version specific pre-command available? #} {#- Version specific pre-command available? -#}
{% if php_version in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo][php_version] %} {%- if php_version in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo][php_version] %}
&& {{ apt_repositories_available[repo][php_version]['pre'] }} \ && {{ apt_repositories_available[repo][php_version]['pre'] }} \
{# Generic pre-command available? #} {# #}
{% elif 'all' in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo]['all'] %} {#- Generic pre-command available? -#}
{%- elif 'all' in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo]['all'] %}
&& {{ apt_repositories_available[repo]['all']['pre'] }} \ && {{ apt_repositories_available[repo]['all']['pre'] }} \
{% endif %} {# #}
{# Version specific key available? #} {%- endif -%}
{% if php_version in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo][php_version] %} {#- Version specific key available? -#}
{%- if php_version in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo][php_version] %}
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo][php_version]['key'] }} \ && apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo][php_version]['key'] }} \
{# Generic key available? #} {# #}
{% elif 'all' in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo]['all'] %} {#- Generic key available? -#}
{%- elif 'all' in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo]['all'] %}
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo]['all']['key'] }} \ && apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo]['all']['key'] }} \
{% endif %} {# #}
{# Version specific repository available? #} {%- endif -%}
{% if php_version in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo][php_version] %} {#- Version specific repository available? -#}
{%- if php_version in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo][php_version] %}
&& echo "{{ apt_repositories_available[repo][php_version]['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \ && echo "{{ apt_repositories_available[repo][php_version]['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
{# Generic repository available? #} {# #}
{% else %} {#- Generic repository available? -#}
{%- else %}
&& echo "{{ apt_repositories_available[repo]['all']['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \ && echo "{{ apt_repositories_available[repo]['all']['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
{% endif %} {# #}
{% endif %} {%- endif -%}
{% endfor %} {%- endif -%}
&& apt-get update \ {%- endfor %}
&& apt-get install --no-install-recommends --no-install-suggests -y \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
ack-grep \ ack-grep \
aspell \ aspell \
autoconf \ autoconf \
automake \ automake \
bash-completion \ bash-completion \
binutils \
build-essential \ build-essential \
bzip2 \ bzip2 \
coreutils \ coreutils \
@@ -68,6 +76,7 @@ RUN set -x \
dnsutils \ dnsutils \
dos2unix \ dos2unix \
file \ file \
gawk \
gcc \ gcc \
git \ git \
git-flow \ git-flow \
@@ -77,6 +86,7 @@ RUN set -x \
htop \ htop \
imagemagick \ imagemagick \
iputils-ping \ iputils-ping \
jq \
less \ less \
libc-dev \ libc-dev \
libffi-dev\ libffi-dev\
@@ -93,6 +103,7 @@ RUN set -x \
nodejs \ nodejs \
openssh-client \ openssh-client \
patch \ patch \
patchelf \
postgresql-client \ postgresql-client \
python-cffi \ python-cffi \
python-dev \ python-dev \
@@ -113,11 +124,21 @@ RUN set -x \
w3m \ w3m \
wget \ wget \
whois \ whois \
wkhtmltopdf \
xz-utils \ xz-utils \
yarn \ yarn \
zsh \ zsh \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
RUN set -x \ RUN set -x \
@@ -148,7 +169,12 @@ RUN set -x \
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
&& true \
&& (rm -rf /usr/local/src/composer/cache/* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
### ###
@@ -176,10 +202,20 @@ RUN \
### Verify ### Verify
### ###
RUN set -x \ RUN set -x \
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
&& /usr/local/sbin/php-fpm --test \ && /usr/local/sbin/php-fpm --test \
\
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
\
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \ RUN set -x \
{% for tool in software_enabled %} {% for tool in software_enabled %}

View File

@@ -18,6 +18,7 @@ php_all_versions:
- 7.1 - 7.1
- 7.2 - 7.2
- 7.3 - 7.3
- 7.4
### ###
@@ -203,7 +204,9 @@ software_enabled:
- awesomeci - awesomeci
- codeception - codeception
- deployer - deployer
- drush - drush7
- drush8
- drush9
- drupalconsole - drupalconsole
- gitflow - gitflow
- grunt - grunt
@@ -247,6 +250,8 @@ apt_repositories_available:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
7.3: 7.3:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
7.4:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
all: all:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main
key: A1715D88E1DF1F24 key: A1715D88E1DF1F24
@@ -259,6 +264,8 @@ apt_repositories_available:
deb: deb http://deb.nodesource.com/node_8.x stretch main deb: deb http://deb.nodesource.com/node_8.x stretch main
7.3: 7.3:
deb: deb http://deb.nodesource.com/node_8.x stretch main deb: deb http://deb.nodesource.com/node_8.x stretch main
7.4:
deb: deb http://deb.nodesource.com/node_8.x stretch main
all: all:
deb: deb http://deb.nodesource.com/node_8.x jessie main deb: deb http://deb.nodesource.com/node_8.x jessie main
pre: curl -q "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | apt-key add - pre: curl -q "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | apt-key add -
@@ -267,6 +274,8 @@ apt_repositories_available:
deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main
7.3: 7.3:
deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main
7.4:
deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main
all: all:
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
pre: curl -q https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | apt-key add - pre: curl -q https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | apt-key add -
@@ -301,8 +310,8 @@ software_available:
check: ansible --version | grep -E '^ansible [.0-9]+$' check: ansible --version | grep -E '^ansible [.0-9]+$'
all: all:
command: | command: |
pip install --upgrade setuptools \ /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& pip install ansible \ && /usr/local/bin/pip install --no-cache-dir ansible \
awesomeci: awesomeci:
check: | check: |
mdl --version | grep -E '[.0-9]+' \ mdl --version | grep -E '[.0-9]+' \
@@ -325,10 +334,11 @@ software_available:
gem install mixlib-config -v 2.2.4 \ gem install mixlib-config -v 2.2.4 \
&& gem install mdl \ && gem install mdl \
&& gem install scss_lint \ && gem install scss_lint \
&& npm install -g eslint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& npm install -g jsonlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& npm install -g mdlint \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& npm install -g gulp \ && yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
composer: composer:
disabled: [5.2] disabled: [5.2]
check: composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' check: composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+'
@@ -340,49 +350,60 @@ software_available:
all: all:
command: curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep command: curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep
post: chmod +x /usr/local/bin/dep post: chmod +x /usr/local/bin/dep
drush: drush7:
disabled: [5.2] disabled: [5.2]
check: drush --version | grep -E '[.0-9]+' check: drush7 --version | grep -E '7[.0-9]+\s*$'
5.2:
pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
&& git checkout 7.4.0 \
5.3:
pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
&& git checkout 7.4.0 \
5.4:
pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep ^8 | tail -1) \
5.5:
pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep ^8 | tail -1) \
all: all:
pre: | pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush \ && cd /usr/local/src/drush7 \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ && git checkout 7.4.0 \
command: | command: |
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ && ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush/.git \ && rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush/docs \ && rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush7/misc \
&& rm -rf /usr/local/src/drush/tests \ drush8:
disabled: [5.2, 5.3]
check: drush8 --version | grep -E '8[.0-9]+\s*$'
all:
pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
command: |
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
drush9:
disabled: [5.2, 5.3, 5.4, 5.5]
check: drush9 --version | grep -E '9[.0-9]+\s*$'
all:
pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
&& cd /usr/local/src/drush9 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
command: |
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
&& rm -rf /usr/local/src/drush9/.git \
&& rm -rf /usr/local/src/drush9/docs \
&& rm -rf /usr/local/src/drush9/examples \
&& rm -rf /usr/local/src/drush9/misc \
codeception: codeception:
disabled: [5.2] disabled: [5.2]
check: codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' check: codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$'
all: all:
command: | command: |
COMPOSER_HOME="{{ compose_home }}" composer global require codeception/codeception --dev \ COMPOSER_HOME="{{ compose_home }}" composer global require codeception/codeception \
&& ln -s {{ compose_home }}/vendor/codeception/codeception/codecept /usr/local/bin/codecept \ && ln -s {{ compose_home }}/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
drupalconsole: drupalconsole:
disabled: [5.2, 5.3, 5.4] disabled: [5.2, 5.3, 5.4]
@@ -401,7 +422,10 @@ software_available:
grunt: grunt:
check: grunt --version | grep -E '[.0-9]+' check: grunt --version | grep -E '[.0-9]+'
all: all:
command: npm install -g grunt grunt-cli command: |
yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
&& rm -rf /tmp/y \
laravel: laravel:
check: laravel --version | grep -E '(Installer|version)\s*[.0-9]+' check: laravel --version | grep -E '(Installer|version)\s*[.0-9]+'
disabled: [5.2, 5.3] disabled: [5.2, 5.3]
@@ -432,7 +456,7 @@ software_available:
&& git checkout $(git describe --abbrev=0 --tags) \ && git checkout $(git describe --abbrev=0 --tags) \
command: | command: |
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \
linkcheck: linkcheck:
@@ -453,7 +477,6 @@ software_available:
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
mhsendmail: mhsendmail:
all: all:
@@ -486,7 +509,7 @@ software_available:
&& cd / \ && cd / \
&& rm -rf /usr/local/src/mysqldump-secure \ && rm -rf /usr/local/src/mysqldump-secure \
phalcon: phalcon:
disabled: [5.2, 7.3] disabled: [5.2, 7.3, 7.4]
check: phalcon commands | grep -E '[.0-9]+' check: phalcon commands | grep -E '[.0-9]+'
5.3: 5.3:
pre: | pre: |
@@ -593,13 +616,20 @@ software_available:
webpack: webpack:
check: webpack --version | grep -E '[.0-9]+' check: webpack --version | grep -E '[.0-9]+'
all: all:
command: npm install -g webpack webpack-cli command: |
yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
yamllint: yamllint:
check: yamllint --version 2>&1 | grep -E '[.0-9]+' check: yamllint --version 2>&1 | grep -E '[.0-9]+'
all: all:
pre: apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev pre: |
command: pip install yamllint DEBIAN_FRONTEND=noninteractive apt-get update -qq \
post: apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
command: /usr/local/bin/pip install --no-cache-dir yamllint
post: |
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
cleanup: cleanup:
all: all:
command: | command: |
@@ -611,6 +641,7 @@ software_available:
&& rm -rf /home/${MY_USER}/.gem \ && rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \ && rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \ && rm -rf /home/${MY_USER}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\ \
&& rm -rf /root/.*json \ && rm -rf /root/.*json \
&& rm -rf /root/.cache \ && rm -rf /root/.cache \
@@ -620,6 +651,7 @@ software_available:
&& rm -rf /root/.gem \ && rm -rf /root/.gem \
&& rm -rf /root/.npm \ && rm -rf /root/.npm \
&& rm -rf /root/.subversion \ && rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\ \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
@@ -724,29 +756,31 @@ extensions_enabled:
### ###
# all: is generic version of defines # all: is generic version of defines
# 7.2: is specific version of defines # 7.2: is specific version of defines
# disabled: [optional] Array of PHP versions for which to disable this module # disabled: [optional] Array of PHP versions for which to disable this module
# already_avail: [optional] Array of PHP versions for which we don't install the module, but
# the dependencies, as it is already loaded by core
# #
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4: # all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
# pre: [optional] Run command before anything else # pre: [optional] Run command before anything else
# build_dep: [optional] Array of build dependencies # build_dep: [optional] Array of build dependencies
# run_dep: [optional] Array of run-time dependencies # run_dep: [optional] Array of run-time dependencies
# type: [required] One of 'builtin', 'pecl' or 'git' # type: [required] One of 'builtin', 'pecl' or 'git'
# #
# type: builtin # type: builtin
# configure: [optional] Add './configure' arguments # configure: [optional] Add './configure' arguments
# type: pecl # type: pecl
# version: [optional] Pecl packet version # version: [optional] Pecl packet version
# command: [optional] Overwrite pecl command (pecl install ext) # command: [optional] Overwrite pecl command (pecl install ext)
# type: git # type: git
# git_url: [required] Git repository URL # git_url: [required] Git repository URL
# git_ref: [optional] Tag, branch, commit to checkout # git_ref: [optional] Tag, branch, commit to checkout
# configure: [optional] Add './configure' arguments # configure: [optional] Add './configure' arguments
# command: [optional] Overwrite default command (phpize && ./configure && make && make install) # command: [optional] Overwrite default command (phpize && ./configure && make && make install)
# type: custom # type: custom
# command: [required] Custom command to install and enable a module # command: [required] Custom command to install and enable a module
extensions_available: extensions_available:
amqp: amqp:
disabled: [7.3] disabled: [7.3, 7.4]
5.2: 5.2:
run_dep: [librabbitmq1] run_dep: [librabbitmq1]
type: pecl type: pecl
@@ -763,7 +797,7 @@ extensions_available:
build_dep: [librabbitmq-dev] build_dep: [librabbitmq-dev]
run_dep: [librabbitmq4] run_dep: [librabbitmq4]
apcu: apcu:
disabled: [5.2] disabled: [5.2, 7.4]
5.3: 5.3:
type: pecl type: pecl
version: 4.0.11 version: 4.0.11
@@ -789,9 +823,11 @@ extensions_available:
all: all:
type: builtin type: builtin
ctype: ctype:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
curl: curl:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
build_dep: [libcurl4-openssl-dev] build_dep: [libcurl4-openssl-dev]
@@ -799,6 +835,7 @@ extensions_available:
all: all:
type: builtin type: builtin
dom: dom:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
configure: --with-libxml-dir=/usr configure: --with-libxml-dir=/usr
@@ -815,14 +852,16 @@ extensions_available:
all: all:
type: builtin type: builtin
fileinfo: fileinfo:
already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
5.2: 5.2:
type: pecl type: pecl
build_dep: [libmagic-dev] build_dep: [libmagic-dev]
all: all:
type: builtin type: builtin
filter: filter:
disabled: "{{ php_all_versions }}" # Available by default already_avail: "{{ php_all_versions }}" # Available by default
ftp: ftp:
already_avail: [5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
configure: --with-openssl-dir configure: --with-openssl-dir
@@ -873,6 +912,9 @@ extensions_available:
7.3: 7.3:
type: builtin type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv
7.4:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv
all: all:
type: builtin type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/
@@ -889,16 +931,21 @@ extensions_available:
pre: ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ pre: ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/
build_dep: [libgmp-dev] build_dep: [libgmp-dev]
hash: hash:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
iconv: iconv:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
igbinary: igbinary:
5.2:
type: pecl
version: 2.0.7
all: all:
type: pecl type: pecl
imagick: imagick:
disabled: [5.2] disabled: [5.2, 7.4]
5.3: 5.3:
type: pecl type: pecl
version: 3.3.0 version: 3.3.0
@@ -943,7 +990,7 @@ extensions_available:
build_dep: [libicu-dev] build_dep: [libicu-dev]
run_dep: [libicu57] run_dep: [libicu57]
ioncube: ioncube:
disabled: [7.3] disabled: [7.3, 7.4]
all: all:
type: custom type: custom
command: | command: |
@@ -957,6 +1004,7 @@ extensions_available:
&& rm -rf ioncube \ && rm -rf ioncube \
&& rm -rf ioncube.tar.gz \ && rm -rf ioncube.tar.gz \
json: json:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
7.0: 7.0:
type: builtin type: builtin
build_dep: [bison] build_dep: [bison]
@@ -969,12 +1017,13 @@ extensions_available:
configure: --with-ldap --with-ldap-sasl configure: --with-ldap --with-ldap-sasl
build_dep: [libldap2-dev, libsasl2-dev] build_dep: [libldap2-dev, libsasl2-dev]
libxml: libxml:
disabled: "{{ php_all_versions }}" # Available by default already_avail: "{{ php_all_versions }}" # Available by default
mbstring: mbstring:
disabled: [7.3] already_avail: [5.2, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
mcrypt: mcrypt:
disabled: [7.4]
7.2: 7.2:
type: pecl type: pecl
version: 1.0.1 version: 1.0.1
@@ -986,7 +1035,7 @@ extensions_available:
run_dep: [libmcrypt4] run_dep: [libmcrypt4]
build_dep: [libmcrypt-dev] build_dep: [libmcrypt-dev]
memcache: memcache:
disabled: [7.3] disabled: [7.3, 7.4]
7.0: 7.0:
type: git type: git
git_url: https://github.com/websupport-sk/pecl-memcache git_url: https://github.com/websupport-sk/pecl-memcache
@@ -1023,12 +1072,17 @@ extensions_available:
git_url: https://github.com/php-memcached-dev/php-memcached git_url: https://github.com/php-memcached-dev/php-memcached
git_ref: master git_ref: master
command: phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install command: phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install
7.4:
type: git
git_url: https://github.com/php-memcached-dev/php-memcached
git_ref: master
command: phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install
all: all:
type: pecl type: pecl
build_dep: [zlib1g-dev, libmemcached-dev] build_dep: [zlib1g-dev, libmemcached-dev]
run_dep: [libmemcachedutil2] run_dep: [libmemcachedutil2]
mongo: mongo:
disabled: [7.0, 7.1, 7.2, 7.3] # Deprecated disabled: [7.0, 7.1, 7.2, 7.3, 7.4] # Deprecated
5.2: 5.2:
type: pecl type: pecl
command: yes | pecl install mongo-1.5.8 command: yes | pecl install mongo-1.5.8
@@ -1048,7 +1102,7 @@ extensions_available:
type: pecl type: pecl
build_dep: [libssl-dev, libsasl2-dev] build_dep: [libssl-dev, libsasl2-dev]
msgpack: msgpack:
disabled: [7.3] disabled: [7.3, 7.4]
5.2: 5.2:
type: pecl type: pecl
version: 0.5.7 version: 0.5.7
@@ -1067,7 +1121,8 @@ extensions_available:
all: all:
type: pecl type: pecl
mysql: mysql:
disabled: [7.0, 7.1, 7.2, 7.3] # Deprecated in newer versions already_avail: [5.2, 5.3]
disabled: [7.0, 7.1, 7.2, 7.3, 7.4] # Deprecated in newer versions
5.6: 5.6:
type: builtin type: builtin
run_dep: [libmariadbclient18] run_dep: [libmariadbclient18]
@@ -1075,10 +1130,12 @@ extensions_available:
type: builtin type: builtin
run_dep: [libmysqlclient18] run_dep: [libmysqlclient18]
mysqli: mysqli:
already_avail: [5.2]
all: all:
type: builtin type: builtin
mysqlnd: mysqlnd:
disabled: "{{ php_all_versions }}" # Available by default disabled: [5.2]
already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
oci8: oci8:
disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing
odbc: odbc:
@@ -1096,15 +1153,16 @@ extensions_available:
all: all:
type: builtin type: builtin
openssl: openssl:
disabled: "{{ php_all_versions }}" # Available by default already_avail: "{{ php_all_versions }}" # Available by default
pcntl: pcntl:
all: all:
type: builtin type: builtin
pcre: pcre:
disabled: "{{ php_all_versions }}" # Available by default already_avail: "{{ php_all_versions }}" # Available by default
pdo: pdo:
# https://github.com/docker-library/php/issues/618 # https://github.com/docker-library/php/issues/618
disabled: [7.0] # TODO: Currently disabled due to bug in built #disabled: [7.0] # TODO: Currently disabled due to bug in built
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
pdo_dblib: pdo_dblib:
@@ -1119,12 +1177,16 @@ extensions_available:
build_dep: [libfbclient2, libib-util, firebird-dev] build_dep: [libfbclient2, libib-util, firebird-dev]
run_dep: [libfbclient2] run_dep: [libfbclient2]
pdo_mysql: pdo_mysql:
already_avail: [5.2]
all: all:
type: builtin type: builtin
configure: --with-zlib-dir=/usr configure: --with-zlib-dir=/usr
build_dep: [zlib1g-dev] build_dep: [zlib1g-dev]
pdo_oci: pdo_oci:
disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing
# disabled: [5.2]
# all:
# type: builtin
pdo_odbc: pdo_odbc:
disabled: "{{ php_all_versions }}" # TODO: Build errors disabled: "{{ php_all_versions }}" # TODO: Build errors
pdo_pgsql: pdo_pgsql:
@@ -1133,6 +1195,7 @@ extensions_available:
build_dep: [libpq-dev] build_dep: [libpq-dev]
run_dep: [libpq5] run_dep: [libpq5]
pdo_sqlite: pdo_sqlite:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
build_dep: [libsqlite3-dev] build_dep: [libsqlite3-dev]
@@ -1142,12 +1205,12 @@ extensions_available:
build_dep: [libpq-dev] build_dep: [libpq-dev]
run_dep: [libpq5] run_dep: [libpq5]
phalcon: phalcon:
disabled: [5.2, 7.3] disabled: [5.2, 7.3, 7.4]
5.3: 5.3:
type: git type: git
git_url: https://github.com/phalcon/cphalcon git_url: https://github.com/phalcon/cphalcon
git_ref: phalcon-v2.0.9 git_ref: phalcon-v2.0.9
command: cd build && ./install command: cd build && ./install >/dev/null
5.4: 5.4:
type: git type: git
git_url: https://github.com/phalcon/cphalcon git_url: https://github.com/phalcon/cphalcon
@@ -1167,12 +1230,14 @@ extensions_available:
phar: phar:
# https://github.com/docker-library/php/issues/618 # https://github.com/docker-library/php/issues/618
disabled: [5.6, 7.0] # TODO: Currently disabled due to bug in built disabled: [5.6, 7.0] # TODO: Currently disabled due to bug in built
already_avail: [5.3, 5.4, 5.5, 7.1, 7.2, 7.3, 7.4]
5.2: 5.2:
type: pecl type: pecl
all: all:
type: builtin type: builtin
build_dep: [libssl-dev] build_dep: [libssl-dev]
posix: posix:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
pspell: pspell:
@@ -1181,11 +1246,13 @@ extensions_available:
build_dep: [libpspell-dev] build_dep: [libpspell-dev]
run_dep: [libaspell15] run_dep: [libaspell15]
readline: readline:
disabled: [5.2, 5.3, 5.4] # Available by default disabled: [5.3]
already_avail: [5.2, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
build_dep: [libedit-dev, libreadline-dev] build_dep: [libedit-dev, libreadline-dev]
recode: recode:
already_avail: [5.3, 5.4]
all: all:
type: builtin type: builtin
build_dep: [librecode-dev] build_dep: [librecode-dev]
@@ -1194,6 +1261,18 @@ extensions_available:
5.2: 5.2:
type: pecl type: pecl
version: 2.2.7 version: 2.2.7
7.4:
type: git
git_url: https://github.com/phpredis/phpredis
# This is a nasty work-around to fix current phpredis implementation for PHP 7.4
command: |
phpize \
&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis.c \
&& sed -i'' 's/ZEND_ACC_DTOR | //g' redis.c \
&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis_cluster.c \
&& ./configure \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
all: all:
type: pecl type: pecl
rdkafka: rdkafka:
@@ -1203,6 +1282,7 @@ extensions_available:
build_dep: [librdkafka-dev] build_dep: [librdkafka-dev]
run_dep: [librdkafka1] run_dep: [librdkafka1]
session: session:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
configure: --with-mm configure: --with-mm
@@ -1211,6 +1291,7 @@ extensions_available:
all: all:
type: builtin type: builtin
simplexml: simplexml:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
configure: --with-libxml-dir=/usr configure: --with-libxml-dir=/usr
@@ -1222,6 +1303,7 @@ extensions_available:
build_dep: [libssl-dev, libsnmp-dev, snmp] build_dep: [libssl-dev, libsnmp-dev, snmp]
run_dep: [snmp] run_dep: [snmp]
soap: soap:
already_avail: [5.2]
all: all:
type: builtin type: builtin
configure: --with-libxml-dir=/usr configure: --with-libxml-dir=/usr
@@ -1231,6 +1313,7 @@ extensions_available:
type: builtin type: builtin
sodium: sodium:
disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1] disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1]
already_avail: [7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
build_dep: [libsodium-dev] build_dep: [libsodium-dev]
@@ -1253,19 +1336,18 @@ extensions_available:
5.6: 5.6:
type: pecl type: pecl
version: 1.9.23 version: 1.9.23
7.0:
type: pecl
version: 2.2.0
7.3: 7.3:
type: git type: git
git_url: https://github.com/swoole/swoole-src git_url: https://github.com/swoole/swoole-src
git_ref: master git_ref: master
command: | command: |
git submodule update --init --recursive \ git checkout $(git describe --abbrev=0 --tags) \
&& cd thirdparty/hiredis \ && git submodule update --init --recursive \
&& make -j$(getconf _NPROCESSORS_ONLN) \ #`&& cd thirdparty/hiredis` \
&& make install \ #`&& make -j$(getconf _NPROCESSORS_ONLN)` \
&& cd ../nghttp2 \ #`&& make install` \
#`&& cd ../../` \
&& cd thirdparty/nghttp2 \
&& cmake . \ && cmake . \
&& make install \ && make install \
&& ldconfig \ && ldconfig \
@@ -1295,6 +1377,47 @@ extensions_available:
&& make install \ && make install \
run_dep: [libnghttp2-14, libhiredis0.13] run_dep: [libnghttp2-14, libhiredis0.13]
build_dep: [libnghttp2-dev, libssl-dev, libhiredis-dev, cmake] build_dep: [libnghttp2-dev, libssl-dev, libhiredis-dev, cmake]
7.4:
type: git
git_url: https://github.com/swoole/swoole-src
git_ref: master
command: |
git checkout $(git describe --abbrev=0 --tags) \
&& git submodule update --init --recursive \
#`&& cd thirdparty/hiredis` \
#`&& make -j$(getconf _NPROCESSORS_ONLN)` \
#`&& make install` \
#`&& cd ../../` \
&& cd thirdparty/nghttp2 \
&& cmake . \
&& make install \
&& ldconfig \
&& cd ../.. \
&& phpize \
&& ./configure \
#`--enable-async-redis` \
--enable-openssl \
--enable-thread \
--enable-swoole \
--enable-swoole-static \
--with-swoole \
--with-openssl-dir=/usr \
--enable-mysqlnd \
--enable-coroutine \
--enable-picohttpparser \
#`--enable-timewheel` \
#`--enable-hugepage` \
#`--enable-asan` \
#`--with-phpx-dir=` \
#`--with-jemalloc-dir=/usr/include/jemalloc` \
#`--enable-coroutine-postgresql` \
#`--enable-http2` \
#`--enable-sockets` \
#`--with-libpq-dir=/usr/include/postgresql/libpq/` \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
run_dep: [libnghttp2-14, libhiredis0.13]
build_dep: [libnghttp2-dev, libssl-dev, libhiredis-dev, cmake]
all: all:
type: pecl type: pecl
build_dep: [libnghttp2-dev, libssl-dev] build_dep: [libnghttp2-dev, libssl-dev]
@@ -1326,6 +1449,7 @@ extensions_available:
build_dep: [libtidy-dev] build_dep: [libtidy-dev]
run_dep: [libtidy5] run_dep: [libtidy5]
tokenizer: tokenizer:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
uploadprogress: uploadprogress:
@@ -1345,6 +1469,10 @@ extensions_available:
type: git type: git
git_url: https://github.com/php/pecl-php-uploadprogress git_url: https://github.com/php/pecl-php-uploadprogress
configure: --enable-uploadprogress configure: --enable-uploadprogress
7.4:
type: git
git_url: https://github.com/php/pecl-php-uploadprogress
configure: --enable-uploadprogress
all: all:
type: pecl type: pecl
wddx: wddx:
@@ -1353,7 +1481,7 @@ extensions_available:
configure: --with-libxml-dir=/usr configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev] build_dep: [libxml2-dev]
xdebug: xdebug:
disabled: [7.3] disabled: [7.3, 7.4]
5.2: 5.2:
type: pecl type: pecl
version: 2.2.7 version: 2.2.7
@@ -1372,12 +1500,13 @@ extensions_available:
all: all:
type: pecl type: pecl
xml: xml:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
configure: --with-libxml-dir=/usr configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev] build_dep: [libxml2-dev]
xmlreader: xmlreader:
disabled: [7.0, 7.1, 7.2, 7.3] # Available by default already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
configure: --with-libxml-dir=/usr configure: --with-libxml-dir=/usr
@@ -1388,6 +1517,7 @@ extensions_available:
configure: --with-libxml-dir=/usr --with-iconv-dir=/usr configure: --with-libxml-dir=/usr --with-iconv-dir=/usr
build_dep: [libxml2-dev] build_dep: [libxml2-dev]
xmlwriter: xmlwriter:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4]
all: all:
type: builtin type: builtin
configure: --with-libxml-dir=/usr configure: --with-libxml-dir=/usr

View File

@@ -8,3 +8,4 @@ php-7.0 php_version=7.0 ansible_connection=local
php-7.1 php_version=7.1 ansible_connection=local php-7.1 php_version=7.1 ansible_connection=local
php-7.2 php_version=7.2 ansible_connection=local php-7.2 php_version=7.2 ansible_connection=local
php-7.3 php_version=7.3 ansible_connection=local php-7.3 php_version=7.3 ansible_connection=local
php-7.4 php_version=7.4 ansible_connection=local

View File

@@ -23,6 +23,7 @@ print_usage() {
echo " gen-readme.sh 7.1" echo " gen-readme.sh 7.1"
echo " gen-readme.sh 7.2" echo " gen-readme.sh 7.2"
echo " gen-readme.sh 7.3" echo " gen-readme.sh 7.3"
echo " gen-readme.sh 7.4"
} }
@@ -73,6 +74,7 @@ if [ "${#}" -eq "0" ]; then
update_readme "7.1" update_readme "7.1"
update_readme "7.2" update_readme "7.2"
update_readme "7.3" update_readme "7.3"
update_readme "7.4"
elif [ "${#}" -gt "1" ]; then elif [ "${#}" -gt "1" ]; then
# Specifying more than 1 argument is wrong # Specifying more than 1 argument is wrong
echo "Error, invalid number of arguments." echo "Error, invalid number of arguments."
@@ -87,7 +89,8 @@ else
&& [ "${1}" != "7.0" ] \ && [ "${1}" != "7.0" ] \
&& [ "${1}" != "7.1" ] \ && [ "${1}" != "7.1" ] \
&& [ "${1}" != "7.2" ] \ && [ "${1}" != "7.2" ] \
&& [ "${1}" != "7.3" ]; then && [ "${1}" != "7.3" ] \
&& [ "${1}" != "7.4" ]; then
# Argument does not match any of the PHP versions # Argument does not match any of the PHP versions
echo "Error, invalid argument." echo "Error, invalid argument."
print_usage print_usage