diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/37-fix-php-5.3-env-vars.sh b/Dockerfiles/prod/data/docker-entrypoint.d/37-fix-php-5.3-env-vars.sh new file mode 100755 index 0000000..2221e70 --- /dev/null +++ b/Dockerfiles/prod/data/docker-entrypoint.d/37-fix-php-5.3-env-vars.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# +# PHP FPM 5.3 does not allow to pass through environment variables +# This is a hacky shell script to create: +# env[NAME]='VALUE' entries for PHP FPM config out of all current env vars + + +# Check if an environment variable is valid +# for PHP-FPM config and if yes return it +_get_env_php_fpm() { + local name="${1}" + local env= + + # Not set + if ! printenv "${name}" >/dev/null 2>&1; then + return 1 + fi + + # Empty variables are not supported by PHP-FPM config syntax + env="$( printenv "${name}" )" + if [ -z "${env}" ]; then + return 1 + fi + + # Values containing a = are not supported by PHP-FPM config syntax + if echo "${env}" | grep -q '='; then + return 1 + fi + + echo "${env}" +} + +# Write all valid environment variables to a PHP-FPM config +set_env_php_fpm() { + local config="${1}" + + # Clear file + echo "[www]" > "${config}" + + # Append env variables + for name in $(printenv | awk -F'=' '{print $1}'); do + + if _get_env_php_fpm "${name}" >/dev/null 2>&1; then + echo "env[${name}]='$( _get_env_php_fpm "${name}" )'" >> "${config}" + fi + done +} diff --git a/Dockerfiles/prod/data/docker-entrypoint.sh b/Dockerfiles/prod/data/docker-entrypoint.sh index 130cdad..15834bd 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.sh @@ -78,6 +78,14 @@ set_gid "NEW_GID" "${MY_GROUP}" "/home/${MY_USER}" "${DEBUG_LEVEL}" set_timezone "TIMEZONE" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" +### +### PHP-FPM 5.3 Env variables +### +if php -v 2>/dev/null | grep -Eoq '^PHP[[:space:]]5\.3'; then + set_env_php_fpm "/usr/local/etc/php-fpm.d/env.conf" +fi + + ### ### Set Logging ### diff --git a/Dockerfiles/work/Dockerfile-5.3 b/Dockerfiles/work/Dockerfile-5.3 index 430f421..00ada80 100644 --- a/Dockerfiles/work/Dockerfile-5.3 +++ b/Dockerfiles/work/Dockerfile-5.3 @@ -115,7 +115,7 @@ RUN set -x \ # drush && 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) \ +&& git checkout 7.4.0 \ \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ diff --git a/Dockerfiles/work/data/docker-entrypoint.sh b/Dockerfiles/work/data/docker-entrypoint.sh index cc13262..fceedc1 100755 --- a/Dockerfiles/work/data/docker-entrypoint.sh +++ b/Dockerfiles/work/data/docker-entrypoint.sh @@ -78,6 +78,14 @@ set_gid "NEW_GID" "${MY_GROUP}" "/home/${MY_USER}" "${DEBUG_LEVEL}" set_timezone "TIMEZONE" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" +### +### PHP-FPM 5.3 Env variables +### +if php -v 2>/dev/null | grep -Eoq '^PHP[[:space:]]5\.3'; then + set_env_php_fpm "/usr/local/etc/php-fpm.d/env.conf" +fi + + ### ### Set Logging ### diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index 916d7c0..1d35918 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -168,7 +168,7 @@ software_available: 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) \ + && git checkout 7.4.0 \ 5.4: pre: | git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \