From f9782dbab6e79eeee4788962fa217d10610d8b99 Mon Sep 17 00:00:00 2001 From: cytopia Date: Fri, 23 Feb 2018 08:53:30 +0100 Subject: [PATCH 01/35] REL-0.1 Initial Release --- .gitignore | 74 +++ .travis.yml | 320 ++++++++++-- Dockerfiles/base/Dockerfile-5.4 | 71 +++ Dockerfiles/base/Dockerfile-5.5 | 71 +++ Dockerfiles/base/Dockerfile-5.6 | 71 +++ Dockerfiles/base/Dockerfile-7.0 | 71 +++ Dockerfiles/base/Dockerfile-7.1 | 71 +++ Dockerfiles/base/Dockerfile-7.2 | 71 +++ .../data/docker-entrypoint.d/00-base-libs.sh | 140 +++++ .../base/data/docker-entrypoint.d/01-debug.sh | 22 + .../data/docker-entrypoint.d/02-uid-gid.sh | 104 ++++ Dockerfiles/base/data/docker-entrypoint.sh | 51 ++ Dockerfiles/base/data/php-fpm.conf | 5 + Dockerfiles/base/data/php-fpm.d/devilbox.conf | 24 + Dockerfiles/mods/Dockerfile-5.4 | 388 ++++++++++++++ Dockerfiles/mods/Dockerfile-5.5 | 402 +++++++++++++++ Dockerfiles/mods/Dockerfile-5.6 | 404 +++++++++++++++ Dockerfiles/mods/Dockerfile-7.0 | 394 ++++++++++++++ Dockerfiles/mods/Dockerfile-7.1 | 394 ++++++++++++++ Dockerfiles/mods/Dockerfile-7.2 | 399 +++++++++++++++ Dockerfiles/prod/Dockerfile-5.4 | 89 ++++ Dockerfiles/prod/Dockerfile-5.5 | 89 ++++ Dockerfiles/prod/Dockerfile-5.6 | 89 ++++ Dockerfiles/prod/Dockerfile-7.0 | 89 ++++ Dockerfiles/prod/Dockerfile-7.1 | 89 ++++ Dockerfiles/prod/Dockerfile-7.2 | 89 ++++ .../data/docker-entrypoint.d/30-timezone.sh | 60 +++ .../data/docker-entrypoint.d/31-postfix.sh | 71 +++ .../docker-entrypoint.d/32-docker-logs.sh | 116 +++++ .../33-socat-port-forwarding.sh | 204 ++++++++ .../34-custom-ini-files.sh | 58 +++ .../data/docker-entrypoint.d/35-supervisor.sh | 60 +++ Dockerfiles/prod/data/docker-entrypoint.sh | 132 +++++ Dockerfiles/prod/data/postfix.sh | 95 ++++ Dockerfiles/prod/data/supervisord.conf | 9 + LICENSE.md | 21 + build/ansible/DOCKERFILES/Dockerfile-base.j2 | 73 +++ build/ansible/DOCKERFILES/Dockerfile-mods.j2 | 349 +++++++++++++ build/ansible/DOCKERFILES/Dockerfile-prod.j2 | 91 ++++ build/ansible/README.md | 6 + build/ansible/ansible.cfg | 3 + build/ansible/generate.yml | 8 + build/ansible/group_vars/all.yml | 479 ++++++++++++++++++ build/ansible/inventory | 7 + .../ansible/roles/template/defaults/main.yml | 5 + build/ansible/roles/template/tasks/main.yml | 10 + build/gen-readme.sh | 45 ++ 47 files changed, 5952 insertions(+), 31 deletions(-) create mode 100755 .gitignore create mode 100644 Dockerfiles/base/Dockerfile-5.4 create mode 100644 Dockerfiles/base/Dockerfile-5.5 create mode 100644 Dockerfiles/base/Dockerfile-5.6 create mode 100644 Dockerfiles/base/Dockerfile-7.0 create mode 100644 Dockerfiles/base/Dockerfile-7.1 create mode 100644 Dockerfiles/base/Dockerfile-7.2 create mode 100755 Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh create mode 100755 Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh create mode 100755 Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh create mode 100755 Dockerfiles/base/data/docker-entrypoint.sh create mode 100644 Dockerfiles/base/data/php-fpm.conf create mode 100644 Dockerfiles/base/data/php-fpm.d/devilbox.conf create mode 100644 Dockerfiles/mods/Dockerfile-5.4 create mode 100644 Dockerfiles/mods/Dockerfile-5.5 create mode 100644 Dockerfiles/mods/Dockerfile-5.6 create mode 100644 Dockerfiles/mods/Dockerfile-7.0 create mode 100644 Dockerfiles/mods/Dockerfile-7.1 create mode 100644 Dockerfiles/mods/Dockerfile-7.2 create mode 100644 Dockerfiles/prod/Dockerfile-5.4 create mode 100644 Dockerfiles/prod/Dockerfile-5.5 create mode 100644 Dockerfiles/prod/Dockerfile-5.6 create mode 100644 Dockerfiles/prod/Dockerfile-7.0 create mode 100644 Dockerfiles/prod/Dockerfile-7.1 create mode 100644 Dockerfiles/prod/Dockerfile-7.2 create mode 100755 Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh create mode 100755 Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh create mode 100755 Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh create mode 100755 Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh create mode 100755 Dockerfiles/prod/data/docker-entrypoint.d/34-custom-ini-files.sh create mode 100755 Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh create mode 100755 Dockerfiles/prod/data/docker-entrypoint.sh create mode 100755 Dockerfiles/prod/data/postfix.sh create mode 100644 Dockerfiles/prod/data/supervisord.conf create mode 100644 LICENSE.md create mode 100644 build/ansible/DOCKERFILES/Dockerfile-base.j2 create mode 100644 build/ansible/DOCKERFILES/Dockerfile-mods.j2 create mode 100644 build/ansible/DOCKERFILES/Dockerfile-prod.j2 create mode 100644 build/ansible/README.md create mode 100644 build/ansible/ansible.cfg create mode 100644 build/ansible/generate.yml create mode 100644 build/ansible/group_vars/all.yml create mode 100644 build/ansible/inventory create mode 100644 build/ansible/roles/template/defaults/main.yml create mode 100644 build/ansible/roles/template/tasks/main.yml create mode 100755 build/gen-readme.sh diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..beb7276 --- /dev/null +++ b/.gitignore @@ -0,0 +1,74 @@ +###################################### +# CUSTOM +###################################### + +build/ansible/*.retry + + + +###################################### +# GENERIC +###################################### + +###### std ###### +.lock +*.log + +###### patches/diffs ###### +*.patch +*.diff +*.orig +*.rej + + +###################################### +# Operating Systems +###################################### + +###### OSX ###### +._* +.DS* +.Spotlight-V100 +.Trashes + +###### Windows ###### +Thumbs.db +ehthumbs.db +Desktop.ini +$RECYCLE.BIN/ +*.lnk + + +###################################### +# Editors +###################################### + +###### Sublime ###### +*.sublime-workspace +*.sublime-project + +###### Eclipse ###### +.classpath +.buildpath +.project +.settings/ + +###### Netbeans ###### +nbproject/private/ + +###### Intellij IDE ###### +.idea/ +.idea_modules/ + +###### vim ###### +*.swp +*.swo +*~ + +###### TextMate ###### +.tm_properties +*.tmproj + +###### BBEdit ###### +*.bbprojectd +*.bbproject diff --git a/.travis.yml b/.travis.yml index 722cd18..ec9b70d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,35 +1,293 @@ --- -env: - matrix: - v=5.4 - v=5.5 - v=5.6 - v=7.0 - v=7.1 - v=7.2 +sudo: required +language: python +services: + - docker + +env: + global: + - IMAGE: devilbox/php-fpm + # travis encrypt DOCKER_USERNAME=user + # travis encrypt DOCKER_PASSWORD=pass + # Must be regenerated when repository name/owner changes + # DOCKER_USERNAME + - secure: "Y7xt3qZW9Zwrsgdd/aCf8ZqA7I039506ZDf/u/WVzGwNHta5YJJ7XYy8XG7XugyqGGXRVpfBiaqmDH4xsPLXyHXdOt2G38GXZHZXIgJOiEJ6aUfpdUxyeu8XIXkD2MDMmc3Kb27Yub/OadxRMLWEflzRnSXXs3KJ8TsbPHh0yRWDMsmHYOYl16gDGUX1izLkEx4J+9iA3+JwIFZk8by/OUuIIQ93bSNORpwHT8A1j7Y1kh8kYkPZ6nRxWO8xrc2wI1Rbp0X+ivLnOotxDZo53UI/0KroeSckDpoWfoz+B7mP+M+5B6kGlI2pKDNQB/ErYvnya6PdtFSS9skbvepR4tBhUOZDDY7NMRg9m3w0b9T1no+g3A4LBGXy6+OZZoiYAGy9LvqMhFkINqbBhRBX+mZhtG0pNXunfcu5dk81Ni/XpXDiy9JU98jItwsRj4SeaPfSt0LUNNXMS/fEwZyTy6TihN1CM3krJpV30Ic5rN64FRnrRjUuNU4lJ/W36yUhM29gb13ahh+f7sDsYoCzMwDM9HFe0YLb3ar3mW1lb3FuUugU2f2EupgCPY60X2XrY9aSgCfbdiVsA84dbLtRfHTPG7UbEcJW5RH8HS+9qVZBK+AcPqon9jbOJRVh7q99YW+R8X/XeyYpz7amacVmRus80+toZ16bbU7D2Qgjdek=" + # DOCKER_PASSWORD + - secure: "ZRrVOVOkSCS2UxEi1HNF1iKefK4sDT/sPRl1HxMQjLnRRaAMdG0aRnBwQf2YAM2qzhCfN85qt6zZtC4awc2mHiZ88JrAZxBjK6xj4BwOyLbDuzpBsKXnx8Nix+wyYYKSjsC3LOYrsUe+4rvkw3tVvVaX8G2llojwdksF34VDmmHBmzCG/Bsexk7UqC+qw0PZm7BtctQO+IL0btmMDijRDElxfR+AuPvf9JdkhYzw9TOO7Jqd53NssNVGyL+XSV0dfGn8PkZTp1e8D+28pLK4oGVog+Wk7Cq94hSGjk5AkWKvL5441rupG1AA8K3njeDNMKdov4o+dmnkAH7Jh8tjShMhNhoxHce3IzpczjhoE1EyYQcyPf1qdfhV35Xv096iWX5809pp1MZF2oE5eism8JaU9NpGClryVbKVKtup8ko9/tCqz01Czq5Vue40feMkGtdePulg59OhyyPLYldsObw8QlZydkrmgVZe6b+GyybeiHraTfDq4pvTgUrC4Cmm5J3IB5Ig1THEiYKHfRJ5hSSMDDODeBXc8Xh6mFssEVshNx/jbUQWuAVYQFw/GIquVHxr6btbevrWIoD+zmqcc0L98u9pYH8w7b+gMgVJNCC4QQz2NCGGWw9l9/TmLrKJgeXbG18n8D314le1zuna6/VfH9pXIlbNO4hgz5NLHJk=" + matrix: + - PHP=5.5 + - PHP=5.5 + - PHP=5.6 + - PHP=7.0 + - PHP=7.1 + - PHP=7.2 + #stages: + # - generate + # - PHP 5.4 + # - PHP 5.5 + # - PHP 5.6 + # - PHP 7.0 + # - PHP 7.1 + # - PHP 7.2 + + +# TODO: No need for stages anymore, use simple build matrix and don't repease the code!! +install: + # Get newer docker version + - max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update; then break; else i=$((i+1)); fi done + - max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi done + - docker version -stages: - - base - - mods - - prod - - work before_script: - # Regenerate Dockerfiles and make sure nothing has changed (every stage) - - make generate - - git diff-index --quiet HEAD || { echo "Build Changes"; git diff; git status; false; } - -jobs: - include: - - stage: base - script: - - echo "${v}-base" - - stage: mods - script: - - echo "${v}-mods" - - stage: prod - script: - - echo "${v}-prod" - - stage: work - script: - - echo "${v}-work" + # Build (multiple tries due to network outages) + - max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + - max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + - max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + - max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi +script: + # Test + - true +after_success: + # Push + - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then + docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" && + if [ "${TRAVIS_BRANCH}" == "master" ]; then + docker push "${IMAGE}:${PHP}-base"; + docker push "${IMAGE}:${PHP}-mods"; + docker push "${IMAGE}:${PHP}-prod"; + docker push "${IMAGE}:${PHP}-work"; + elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then + docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${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}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" && + docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}"; + docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}"; + docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}"; + docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}"; + elif [ -n "${TRAVIS_TAG}" ]; then + docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${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}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" && + docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}"; + docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}"; + docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}"; + docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}"; + else + echo "Skipping push to dockerhub on normal branches"; + fi + else + echo "Skipping push to dockerhub on PR"; + fi + # + # + # + # + # + # + # + # + # + #jobs: + # include: + # ############################################################ + # # TEST + # ############################################################ + # - stage: generate + # env: All + # install: skip + # before_script: skip + # script: + # # Regenerate Dockerfiles and make sure nothing has changed (every stage) + # - pip install ansible + # - make generate + # - git diff --quiet || { echo "Build Changes"; git diff; git status; false; } + # ############################################################ + # # BUILD BASE IMAGE + # ############################################################ + # - stage: PHP 5.4 + # env: PHP=5.4 + # before_script: + # # Build (multiple tries due to network outages) + # - max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + # - max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + # - max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + # - max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + # script: + # # Test + # - true + # after_success: + # # Push + # - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then + # docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" && + # if [ "${TRAVIS_BRANCH}" == "master" ]; then + # docker push "${IMAGE}:${PHP}-base"; + # docker push "${IMAGE}:${PHP}-mods"; + # docker push "${IMAGE}:${PHP}-prod"; + # docker push "${IMAGE}:${PHP}-work"; + # elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then + # docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${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}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" && + # docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}"; + # docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}"; + # docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}"; + # docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}"; + # elif [ -n "${TRAVIS_TAG}" ]; then + # docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${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}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" && + # docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}"; + # docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}"; + # docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}"; + # docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}"; + # else + # echo "Skipping push to dockerhub on normal branches"; + # fi + # else + # echo "Skipping push to dockerhub on PR"; + # fi + # - stage: Build base image + # env: PHP=5.5 t=base + # before_script: + # # Build + # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi; done + # script: + # # Test + # - result=1; false + # after_success: + # # Push + # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" + # - docker push "${IMAGE}:${PHP}-${t}"; + # + # - stage: Build base image + # env: PHP=5.6 t=base + # script: + # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi + # - if [ $i -gt 98 ]; then false; fi + # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" + # - docker push "${IMAGE}:${PHP}-${t}" + # + # - stage: Build base image + # env: PHP=7.0 t=base + # script: + # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi + # - if [ $i -gt 98 ]; then false; fi + # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" + # - docker push "${IMAGE}:${PHP}-${t}" + # + # - stage: Build base image + # env: PHP=7.1 t=base + # script: + # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi + # - if [ $i -gt 98 ]; then false; fi + # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" + # - docker push "${IMAGE}:${PHP}-${t}" + # + # - stage: Build base image + # env: PHP=7.2 t=base + # script: + # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi + # - if [ $i -gt 98 ]; then false; fi + # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" + # - docker push "${IMAGE}:${PHP}-${t}" + # ############################################################ + # # BUILD MODS IMAGE + # ############################################################ + # - stage: Build mods image + # env: PHP-5.4 + # script: + # - make build-mods-54 + # + # - stage: Build mods image + # env: PHP-5.5 + # script: + # - make build-mods-55 + # + # - stage: Build mods image + # env: PHP-5.6 + # script: + # - make build-mods-56 + # + # - stage: Build mods image + # env: PHP-7.0 + # script: + # - make build-mods-70 + # + # - stage: Build mods image + # env: PHP-7.1 + # script: + # - make build-mods-71 + # + # - stage: Build mods image + # env: PHP-7.2 + # script: + # - make build-mods-72 + # ############################################################ + # # BUILD PROD IMAGE + # ############################################################ + # - stage: Build prod image + # env: PHP-5.4 + # script: + # - make build-prod-5.4 + # + # - stage: Build prod image + # env: PHP-5.5 + # script: + # - make build-prod-5.5 + # + # - stage: Build prod image + # env: PHP-5.6 + # script: + # - make build-prod-5.6 + # + # - stage: Build prod image + # env: PHP-7.0 + # script: + # - make build-prod-7.0 + # + # - stage: Build prod image + # env: PHP-7.1 + # script: + # - make build-prod-7.1 + # + # - stage: Build prod image + # env: PHP-7.2 + # script: + # - make build-prod-7.2 + # ############################################################ + # # BUILD WORK IMAGE + # ############################################################ + # - stage: Build work image + # env: PHP-5.4 + # script: + # - make build-work-5.4 + # + # - stage: Build work image + # env: PHP-5.5 + # script: + # - make build-work-5.5 + # + # - stage: Build work image + # env: PHP-5.6 + # script: + # - make build-work-5.6 + # + # - stage: Build work image + # env: PHP-7.0 + # script: + # - make build-work-7.0 + # + # - stage: Build work image + # env: PHP-7.1 + # script: + # - make build-work-7.1 + # + # - stage: Build work image + # env: PHP-7.2 + # script: + # - make build-work-7.2 diff --git a/Dockerfiles/base/Dockerfile-5.4 b/Dockerfiles/base/Dockerfile-5.4 new file mode 100644 index 0000000..5da2e79 --- /dev/null +++ b/Dockerfiles/base/Dockerfile-5.4 @@ -0,0 +1,71 @@ +# Auto-generated via Ansible +FROM php:5.4-fpm +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.4 Image" \ + image="devilbox/php-fpm" \ + tag="5.4-base" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV MY_USER="devilbox" \ + MY_GROUP="devilbox" \ + MY_UID="1000" \ + MY_GID="1000" + + +### +### 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 +### +RUN set -x \ + && apt-get update \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d /docker-entrypoint.d +COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf +COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.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 + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/base/Dockerfile-5.5 b/Dockerfiles/base/Dockerfile-5.5 new file mode 100644 index 0000000..9fafe2f --- /dev/null +++ b/Dockerfiles/base/Dockerfile-5.5 @@ -0,0 +1,71 @@ +# Auto-generated via Ansible +FROM php:5.5-fpm +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.5 Image" \ + image="devilbox/php-fpm" \ + tag="5.5-base" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV MY_USER="devilbox" \ + MY_GROUP="devilbox" \ + MY_UID="1000" \ + MY_GID="1000" + + +### +### 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 +### +RUN set -x \ + && apt-get update \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d /docker-entrypoint.d +COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf +COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ + && /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 + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/base/Dockerfile-5.6 b/Dockerfiles/base/Dockerfile-5.6 new file mode 100644 index 0000000..0217520 --- /dev/null +++ b/Dockerfiles/base/Dockerfile-5.6 @@ -0,0 +1,71 @@ +# Auto-generated via Ansible +FROM php:5.6-fpm +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.6 Image" \ + image="devilbox/php-fpm" \ + tag="5.6-base" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV MY_USER="devilbox" \ + MY_GROUP="devilbox" \ + MY_UID="1000" \ + MY_GID="1000" + + +### +### 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 +### +RUN set -x \ + && apt-get update \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d /docker-entrypoint.d +COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf +COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ + && /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 + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/base/Dockerfile-7.0 b/Dockerfiles/base/Dockerfile-7.0 new file mode 100644 index 0000000..174bae9 --- /dev/null +++ b/Dockerfiles/base/Dockerfile-7.0 @@ -0,0 +1,71 @@ +# Auto-generated via Ansible +FROM php:7.0-fpm +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.0 Image" \ + image="devilbox/php-fpm" \ + tag="7.0-base" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV MY_USER="devilbox" \ + MY_GROUP="devilbox" \ + MY_UID="1000" \ + MY_GID="1000" + + +### +### 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 +### +RUN set -x \ + && apt-get update \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d /docker-entrypoint.d +COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf +COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ + && /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 + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/base/Dockerfile-7.1 b/Dockerfiles/base/Dockerfile-7.1 new file mode 100644 index 0000000..827bd16 --- /dev/null +++ b/Dockerfiles/base/Dockerfile-7.1 @@ -0,0 +1,71 @@ +# Auto-generated via Ansible +FROM php:7.1-fpm +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.1 Image" \ + image="devilbox/php-fpm" \ + tag="7.1-base" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV MY_USER="devilbox" \ + MY_GROUP="devilbox" \ + MY_UID="1000" \ + MY_GID="1000" + + +### +### 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 +### +RUN set -x \ + && apt-get update \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d /docker-entrypoint.d +COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf +COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ + && /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 + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/base/Dockerfile-7.2 b/Dockerfiles/base/Dockerfile-7.2 new file mode 100644 index 0000000..7e571a1 --- /dev/null +++ b/Dockerfiles/base/Dockerfile-7.2 @@ -0,0 +1,71 @@ +# Auto-generated via Ansible +FROM php:7.2-fpm +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.2 Image" \ + image="devilbox/php-fpm" \ + tag="7.2-base" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV MY_USER="devilbox" \ + MY_GROUP="devilbox" \ + MY_UID="1000" \ + MY_GID="1000" + + +### +### 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 +### +RUN set -x \ + && apt-get update \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d /docker-entrypoint.d +COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf +COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ + && /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 + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh b/Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh new file mode 100755 index 0000000..1094b2b --- /dev/null +++ b/Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh @@ -0,0 +1,140 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +set -e +set -u + + +############################################################ +# Functions +############################################################ + +### +### Log to stdout/stderr +### +log() { + log_lvl="${1}" + log_msg="${2}" + + log_clr_ok="\033[0;32m" + log_clr_info="\033[0;34m" + log_clr_warn="\033[0;33m" + log_clr_err="\033[0;31m" + log_clr_rst="\033[0m" + + if [ "${log_lvl}" = "ok" ]; then + if [ "${DEBUG_LEVEL}" -gt "0" ]; then + printf "${log_clr_ok}[OK] %s${log_clr_rst}\n" "${log_msg}" + fi + elif [ "${log_lvl}" = "info" ]; then + if [ "${DEBUG_LEVEL}" -gt "0" ]; then + printf "${log_clr_info}[INFO] %s${log_clr_rst}\n" "${log_msg}" + fi + elif [ "${log_lvl}" = "warn" ]; then + printf "${log_clr_warn}[WARN] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr + elif [ "${log_lvl}" = "err" ]; then + printf "${log_clr_err}[ERR] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr + else + printf "${log_clr_err}[???] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr + fi + + unset -v log_lvl + unset -v log_msg + unset -v log_clr_ok + unset -v log_clr_info + unset -v log_clr_warn + unset -v log_clr_err + unset -v log_clr_rst +} + + +### +### Wrapper for run_run command +### +run() { + run_cmd="${1}" + + run_clr_red="\033[0;31m" + run_clr_green="\033[0;32m" + run_clr_reset="\033[0m" + + if [ "${DEBUG_LEVEL}" -gt "1" ]; then + printf "${run_clr_red}%s \$ ${run_clr_green}${run_cmd}${run_clr_reset}\n" "$( whoami )" + fi + /bin/sh -c "LANG=C LC_ALL=C ${run_cmd}" + + unset -v run_cmd + unset -v run_clr_red + unset -v run_clr_green + unset -v run_clr_reset +} + + +### +### Is argument an integer? +### +isint() { + echo "${1}" | grep -Eq '^([0-9]|[1-9][0-9]*)$' +} + + +### +### Is env variable set? +### +env_set() { + if set | grep "^${1}=" >/dev/null 2>&1; then + return 0 + else + return 1 + fi +} + + +### +### Get env variable by name +### +env_get() { + if ! env_set "${1}"; then + return 1 + fi + + env_get_value="$( set | grep "^${1}=" | awk -F '=' '{for (i=2; i/dev/null 2>&1; then + log "err" "grep not found, but required." + exit 1 +fi +if ! command -v sed >/dev/null 2>&1; then + log "err" "sed not found, but required." + exit 1 +fi +if ! command -v awk >/dev/null 2>&1; then + log "err" "awk not found, but required." + exit 1 +fi +if ! command -v getent >/dev/null 2>&1; then + log "err" "getent not found, but required." + exit 1 +fi diff --git a/Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh b/Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh new file mode 100755 index 0000000..e059dcc --- /dev/null +++ b/Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e +set -u + + +############################################################ +# Functions +############################################################ + +### +### Debug level +### +get_debug_level() { + if ! env_set "${1}"; then + # Return default specified value + echo "${2}" + else + # Return env value + env_get "${1}" + fi +} diff --git a/Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh b/Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh new file mode 100755 index 0000000..48bb013 --- /dev/null +++ b/Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh @@ -0,0 +1,104 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + +set -e +set -u + + +############################################################ +# Functions +############################################################ + +### +### Change UID +### +set_uid() { + uid_varname="${1}" + + if ! env_set "${uid_varname}"; then + log "info" "\$${uid_varname} not set. Keeping default uid for '${MY_USER}'." + else + uid_env_uid="$( env_get "${uid_varname}" )" + + if ! isint "${uid_env_uid}"; then + log "err" "\$${uid_varname} is not an integer: '${uid_env_uid}'" + exit 1 + else + if uid_getent_row="$( getent passwd "${uid_env_uid}" )"; then + uid_getent_name="$( echo "${uid_getent_row}" | awk -F ':' '{print $1}' )" + if [ "${uid_getent_name}" != "${MY_USER}" ]; then + log "warn" "User with ${uid_env_uid} already exists: ${uid_getent_name}" + log "info" "Changing UID of ${uid_getent_name} to 9999" + run "usermod -u 9999 ${uid_getent_name}" + fi + fi + log "info" "Changing user '${MY_USER}' uid to: ${uid_env_uid}" + run "usermod -u ${uid_env_uid} ${MY_USER}" + fi + fi + + # Fix homedir permissions + run "chown -R ${MY_USER} /home/${MY_USER}" + + unset -v uid_varname + unset -v uid_env_uid + unset -v uid_getent_row + unset -v uid_getent_name +} + + +### +### Change GID +### +set_gid() { + gid_varname="${1}" + + if ! env_set "${gid_varname}"; then + log "info" "\$${gid_varname} not set. Keeping default gid for '${MY_GROUP}'." + else + # Retrieve the value from env + gid_env_gid="$( env_get "${gid_varname}" )" + + if ! isint "${gid_env_gid}"; then + log "err" "\$${gid_varname} is not an integer: '${gid_env_gid}'" + exit 1 + else + if gid_getent_row="$( getent group "${gid_env_gid}" )"; then + gid_getent_name="$( echo "${gid_getent_row}" | awk -F ':' '{print $1}' )" + if [ "${gid_getent_name}" != "${MY_GROUP}" ]; then + log "warn" "Group with ${gid_env_gid} already exists: ${gid_getent_name}" + log "info" "Changing GID of ${gid_getent_name} to 9999" + run "groupmod -g 9999 ${gid_getent_name}" + fi + fi + log "info" "Changing group '${MY_GROUP}' gid to: ${gid_env_gid}" + run "groupmod -g ${gid_env_gid} ${MY_GROUP}" + fi + fi + + # Fix homedir permissions + run "chown -R :${MY_GROUP} /home/${MY_USER}" + + unset -v gid_varname + unset -v gid_env_gid + unset -v gid_getent_row + unset -v gid_getent_name +} + + +############################################################ +# Sanity Checks +############################################################ + +if ! command -v usermod >/dev/null 2>&1; then + log "err" "usermod not found, but required." + exit 1 +fi +if ! command -v groupmod >/dev/null 2>&1; then + log "err" "groupmod not found, but required." + exit 1 +fi diff --git a/Dockerfiles/base/data/docker-entrypoint.sh b/Dockerfiles/base/data/docker-entrypoint.sh new file mode 100755 index 0000000..ae79564 --- /dev/null +++ b/Dockerfiles/base/data/docker-entrypoint.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +### +### Settings +### +set -e +set -u + +CONFIG_DIR="/docker-entrypoint.d" + + +### +### Source libs +### +init="$( find "${CONFIG_DIR}" -name '*.sh' -type f | sort -u )" +for f in ${init}; do + # shellcheck disable=SC1090 + . "${f}" +done + + +### +### Set Debug level +### +DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )" +log "info" "Debug level: ${DEBUG_LEVEL}" + + + +############################################################# +## Entry Point +############################################################# + +### +### Change uid/gid +### +set_uid "NEW_UID" +set_gid "NEW_GID" + + +### +### Startup +### +log "info" "Starting $( php-fpm -v 2>&1 | head -1 )" +exec /usr/local/sbin/php-fpm diff --git a/Dockerfiles/base/data/php-fpm.conf b/Dockerfiles/base/data/php-fpm.conf new file mode 100644 index 0000000..93be5cd --- /dev/null +++ b/Dockerfiles/base/data/php-fpm.conf @@ -0,0 +1,5 @@ +[global] +error_log = /proc/self/fd/2 +log_level = notice +daemonize = no +include = /usr/local/etc/php-fpm.d/*.conf diff --git a/Dockerfiles/base/data/php-fpm.d/devilbox.conf b/Dockerfiles/base/data/php-fpm.d/devilbox.conf new file mode 100644 index 0000000..ace645a --- /dev/null +++ b/Dockerfiles/base/data/php-fpm.d/devilbox.conf @@ -0,0 +1,24 @@ +[www] + +; User and Group +user = devilbox +group = devilbox + +; if we send this to /proc/self/fd/1, it never appears +access.log = /proc/self/fd/2 + +; Ensure to listen here +listen = 9000 + +; Keep env variables set by docker +clear_env = no + +; Ensure worker stdout and stderr are sent to the main error log. +catch_workers_output = yes + +; Pool config +pm = dynamic +pm.max_children = 5 +pm.start_servers = 2 +pm.min_spare_servers = 1 +pm.max_spare_servers = 3 diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 new file mode 100644 index 0000000..4f6cf56 --- /dev/null +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -0,0 +1,388 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.4-base +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.4 Image" \ + image="devilbox/php-fpm" \ + tag="5.4-mods" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV BUILD_DEPS \ + libicu-dev \ + libtidy-dev \ + libssl-dev \ + libpng-dev \ + libjpeg-dev \ + libxpm-dev \ + libvpx-dev \ + zlib1g-dev \ + libfreetype6-dev \ + librecode-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libpq-dev \ + zlib1g-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libpq-dev \ + libldap2-dev \ + libsasl2-dev \ + libgmp-dev \ + libxml2-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libxml2-dev \ + libpspell-dev \ + libsqlite3-dev \ + libc-client-dev \ + libkrb5-dev \ + libcurl4-openssl-dev \ + libbz2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + freetds-dev \ + libxml2-dev \ + libmm-dev \ + libxml2-dev \ + libmcrypt-dev \ + libenchant-dev \ + libxslt-dev \ + librabbitmq-dev \ + libnghttp2-dev \ + libssl-dev \ + libnghttp2-5 \ + libssl-dev \ + zlib1g-dev \ + libmagickwand-dev \ + zlib1g-dev \ + libmemcached-dev \ + git \ + ca-certificates + +ENV RUN_DEPS \ + libicu52 \ + libtidy-0.99-0 \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + librecode0 \ + libpq5 \ + snmp \ + libpq5 \ + libfbclient2 \ + libaspell15 \ + libc-client2007e \ + libsybdb5 \ + libmcrypt4 \ + libenchant1c2a \ + libxslt1.1 \ + librabbitmq1 \ + libnghttp2-5 \ + libmagickwand-6.q16-2 \ + libmemcachedutil2 \ + ca-certificates + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${BUILD_DEPS} \ + \ + \ + && /usr/local/bin/docker-php-ext-install pdo_mysql \ + && /usr/local/bin/docker-php-ext-install tokenizer \ + && /usr/local/bin/docker-php-ext-install dba \ + && /usr/local/bin/docker-php-ext-install intl \ + && /usr/local/bin/docker-php-ext-install shmop \ + && /usr/local/bin/docker-php-ext-install tidy \ + && /usr/local/bin/docker-php-ext-install bcmath \ + && /usr/local/bin/docker-php-ext-install phar \ + && 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-install gd \ + && /usr/local/bin/docker-php-ext-install recode \ + && /usr/local/bin/docker-php-ext-install mysql \ + && /usr/local/bin/docker-php-ext-install pcntl \ + && /usr/local/bin/docker-php-ext-install curl \ + && /usr/local/bin/docker-php-ext-install sockets \ + && /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 iconv \ + && /usr/local/bin/docker-php-ext-install pdo_pgsql \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install xmlwriter \ + && /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 gettext \ + && /usr/local/bin/docker-php-ext-install pgsql \ + && /usr/local/bin/docker-php-ext-install json \ + && /usr/local/bin/docker-php-ext-install mbstring \ + && 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 ldap \ + && /usr/local/bin/docker-php-ext-install sysvmsg \ + && 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 sysvshm \ + && /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 pdo_firebird \ + && /usr/local/bin/docker-php-ext-install hash \ + && /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 pdo \ + && /usr/local/bin/docker-php-ext-install ctype \ + && /usr/local/bin/docker-php-ext-install fileinfo \ + && /usr/local/bin/docker-php-ext-install sysvsem \ + && /usr/local/bin/docker-php-ext-install pspell \ + && /usr/local/bin/docker-php-ext-install mysqli \ + && /usr/local/bin/docker-php-ext-install pdo_sqlite \ + && 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 imap \ + && /usr/local/bin/docker-php-ext-install bz2 \ + && /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 exif \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install xml \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install dom \ + && 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-configure xmlreader --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install xmlreader \ + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install session \ + && /usr/local/bin/docker-php-ext-install posix \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install simplexml \ + && /usr/local/bin/docker-php-ext-install calendar \ + && /usr/local/bin/docker-php-ext-install mcrypt \ + && /usr/local/bin/docker-php-ext-install enchant \ + && /usr/local/bin/docker-php-ext-install xsl \ + \ + \ + && pecl install xdebug-2.4.1 \ + && docker-php-ext-enable xdebug \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install swoole-1.9.23 \ + && docker-php-ext-enable swoole \ + && pecl install mongodb-1.2.11 \ + && docker-php-ext-enable mongodb \ + && pecl install memcache \ + && docker-php-ext-enable memcache \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && pecl install uploadprogress \ + && docker-php-ext-enable uploadprogress \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && pecl install msgpack-0.5.7 \ + && docker-php-ext-enable msgpack \ + && pecl install memcached-2.2.0 \ + && docker-php-ext-enable memcached \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install apcu-4.0.11 \ + && docker-php-ext-enable apcu \ + \ + \ + && git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + && git checkout phalcon-v2.0.13 \ + && cd /tmp/phalcon && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + \ + \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + ${BUILD_DEPS} \ + \ + \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${RUN_DEPS} \ + && rm -rf /var/lib/apt/lists/* \ + && update-ca-certificates \ + && find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.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 + +RUN set -x \ + && php -m | grep -oiE '^pdo_mysql$' \ + && php-fpm -m | grep -oiE '^pdo_mysql$' \ + && php -m | grep -oiE '^tokenizer$' \ + && php-fpm -m | grep -oiE '^tokenizer$' \ + && php -m | grep -oiE '^dba$' \ + && php-fpm -m | grep -oiE '^dba$' \ + && php -m | grep -oiE '^intl$' \ + && php-fpm -m | grep -oiE '^intl$' \ + && php -m | grep -oiE '^shmop$' \ + && php-fpm -m | grep -oiE '^shmop$' \ + && php -m | grep -oiE '^tidy$' \ + && php-fpm -m | grep -oiE '^tidy$' \ + && php -m | grep -oiE '^bcmath$' \ + && php-fpm -m | grep -oiE '^bcmath$' \ + && php -m | grep -oiE '^phar$' \ + && php-fpm -m | grep -oiE '^phar$' \ + && php -m | grep -oiE '^gd$' \ + && php-fpm -m | grep -oiE '^gd$' \ + && php -m | grep -oiE '^recode$' \ + && php-fpm -m | grep -oiE '^recode$' \ + && php -m | grep -oiE '^mysql$' \ + && php-fpm -m | grep -oiE '^mysql$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && php -m | grep -oiE '^curl$' \ + && php-fpm -m | grep -oiE '^curl$' \ + && php -m | grep -oiE '^sockets$' \ + && php-fpm -m | grep -oiE '^sockets$' \ + && php -m | grep -oiE '^ftp$' \ + && php-fpm -m | grep -oiE '^ftp$' \ + && php -m | grep -oiE '^iconv$' \ + && php-fpm -m | grep -oiE '^iconv$' \ + && php -m | grep -oiE '^pdo_pgsql$' \ + && php-fpm -m | grep -oiE '^pdo_pgsql$' \ + && php -m | grep -oiE '^zip$' \ + && php-fpm -m | grep -oiE '^zip$' \ + && php -m | grep -oiE '^xmlwriter$' \ + && php-fpm -m | grep -oiE '^xmlwriter$' \ + && php -m | grep -oiE '^snmp$' \ + && php-fpm -m | grep -oiE '^snmp$' \ + && php -m | grep -oiE '^gettext$' \ + && php-fpm -m | grep -oiE '^gettext$' \ + && php -m | grep -oiE '^pgsql$' \ + && php-fpm -m | grep -oiE '^pgsql$' \ + && php -m | grep -oiE '^json$' \ + && php-fpm -m | grep -oiE '^json$' \ + && php -m | grep -oiE '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^ldap$' \ + && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^sysvmsg$' \ + && php-fpm -m | grep -oiE '^sysvmsg$' \ + && php -m | grep -oiE '^gmp$' \ + && php-fpm -m | grep -oiE '^gmp$' \ + && php -m | grep -oiE '^sysvshm$' \ + && php-fpm -m | grep -oiE '^sysvshm$' \ + && php -m | grep -oiE '^soap$' \ + && php-fpm -m | grep -oiE '^soap$' \ + && php -m | grep -oiE '^pdo_firebird$' \ + && php-fpm -m | grep -oiE '^pdo_firebird$' \ + && php -m | grep -oiE '^hash$' \ + && php-fpm -m | grep -oiE '^hash$' \ + && php -m | grep -oiE '^xmlrpc$' \ + && php-fpm -m | grep -oiE '^xmlrpc$' \ + && php -m | grep -oiE '^pdo$' \ + && php-fpm -m | grep -oiE '^pdo$' \ + && php -m | grep -oiE '^ctype$' \ + && php-fpm -m | grep -oiE '^ctype$' \ + && php -m | grep -oiE '^fileinfo$' \ + && php-fpm -m | grep -oiE '^fileinfo$' \ + && php -m | grep -oiE '^sysvsem$' \ + && php-fpm -m | grep -oiE '^sysvsem$' \ + && php -m | grep -oiE '^pspell$' \ + && php-fpm -m | grep -oiE '^pspell$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^pdo_sqlite$' \ + && php-fpm -m | grep -oiE '^pdo_sqlite$' \ + && php -m | grep -oiE '^imap$' \ + && php-fpm -m | grep -oiE '^imap$' \ + && php -m | grep -oiE '^bz2$' \ + && php-fpm -m | grep -oiE '^bz2$' \ + && php -m | grep -oiE '^wddx$' \ + && php-fpm -m | grep -oiE '^wddx$' \ + && php -m | grep -oiE '^exif$' \ + && php-fpm -m | grep -oiE '^exif$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && php -m | grep -oiE '^dom$' \ + && php-fpm -m | grep -oiE '^dom$' \ + && php -m | grep -oiE '^pdo_dblib$' \ + && php-fpm -m | grep -oiE '^pdo_dblib$' \ + && php -m | grep -oiE '^xmlreader$' \ + && php-fpm -m | grep -oiE '^xmlreader$' \ + && php -m | grep -oiE '^session$' \ + && php-fpm -m | grep -oiE '^session$' \ + && php -m | grep -oiE '^posix$' \ + && php-fpm -m | grep -oiE '^posix$' \ + && php -m | grep -oiE '^simplexml$' \ + && php-fpm -m | grep -oiE '^simplexml$' \ + && php -m | grep -oiE '^calendar$' \ + && php-fpm -m | grep -oiE '^calendar$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^enchant$' \ + && php-fpm -m | grep -oiE '^enchant$' \ + && php -m | grep -oiE '^xsl$' \ + && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^swoole$' \ + && php-fpm -m | grep -oiE '^swoole$' \ + && php -m | grep -oiE '^mongodb$' \ + && php-fpm -m | grep -oiE '^mongodb$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && php -m | grep -oiE '^uploadprogress$' \ + && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && php -m | grep -oiE '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^memcached$' \ + && php-fpm -m | grep -oiE '^memcached$' \ + && php -m | grep -oiE '^igbinary$' \ + && php-fpm -m | grep -oiE '^igbinary$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && php -m | grep -oiE '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && true + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 new file mode 100644 index 0000000..220d3c9 --- /dev/null +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -0,0 +1,402 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.5-base +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.5 Image" \ + image="devilbox/php-fpm" \ + tag="5.5-mods" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV BUILD_DEPS \ + libicu-dev \ + libtidy-dev \ + libssl-dev \ + libpng-dev \ + libjpeg-dev \ + libxpm-dev \ + libvpx-dev \ + zlib1g-dev \ + libfreetype6-dev \ + librecode-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libpq-dev \ + zlib1g-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libpq-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libldap2-dev \ + libsasl2-dev \ + libgmp-dev \ + libxml2-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libxml2-dev \ + libpspell-dev \ + libedit-dev \ + libreadline-dev \ + libsqlite3-dev \ + libc-client-dev \ + libkrb5-dev \ + libcurl4-openssl-dev \ + libbz2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + freetds-dev \ + libxml2-dev \ + libmm-dev \ + libxml2-dev \ + libmcrypt-dev \ + libenchant-dev \ + libxslt-dev \ + librabbitmq-dev \ + libnghttp2-dev \ + libssl-dev \ + libnghttp2-5 \ + zlib1g-dev \ + libmagickwand-dev \ + zlib1g-dev \ + libmemcached-dev \ + git \ + ca-certificates + +ENV RUN_DEPS \ + libicu52 \ + libtidy-0.99-0 \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + librecode0 \ + libpq5 \ + snmp \ + libpq5 \ + libfbclient2 \ + libfbclient2 \ + libaspell15 \ + libc-client2007e \ + libsybdb5 \ + libmcrypt4 \ + libenchant1c2a \ + libxslt1.1 \ + librabbitmq1 \ + libnghttp2-5 \ + libmagickwand-6.q16-2 \ + libmemcachedutil2 \ + ca-certificates + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${BUILD_DEPS} \ + \ + \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && /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) iconv \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /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) gettext \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && 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) sysvshm \ + && /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) pdo_firebird \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ + && /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) pdo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /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) exif \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && 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-configure xmlreader --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + \ + \ + && pecl install xdebug-2.5.5 \ + && docker-php-ext-enable xdebug \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install swoole-1.9.23 \ + && docker-php-ext-enable swoole \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install memcache \ + && docker-php-ext-enable memcache \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && pecl install uploadprogress \ + && docker-php-ext-enable uploadprogress \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && pecl install msgpack-0.5.7 \ + && docker-php-ext-enable msgpack \ + && pecl install memcached-2.2.0 \ + && docker-php-ext-enable memcached \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install apcu-4.0.11 \ + && docker-php-ext-enable apcu \ + \ + \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd /tmp/phalcon && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + \ + \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + ${BUILD_DEPS} \ + \ + \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${RUN_DEPS} \ + && rm -rf /var/lib/apt/lists/* \ + && update-ca-certificates \ + && find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ + && /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 + +RUN set -x \ + && php -m | grep -oiE '^pdo_mysql$' \ + && php-fpm -m | grep -oiE '^pdo_mysql$' \ + && php -m | grep -oiE '^tokenizer$' \ + && php-fpm -m | grep -oiE '^tokenizer$' \ + && php -m | grep -oiE '^dba$' \ + && php-fpm -m | grep -oiE '^dba$' \ + && php -m | grep -oiE '^intl$' \ + && php-fpm -m | grep -oiE '^intl$' \ + && php -m | grep -oiE '^shmop$' \ + && php-fpm -m | grep -oiE '^shmop$' \ + && php -m | grep -oiE '^tidy$' \ + && php-fpm -m | grep -oiE '^tidy$' \ + && php -m | grep -oiE '^bcmath$' \ + && php-fpm -m | grep -oiE '^bcmath$' \ + && php -m | grep -oiE '^phar$' \ + && php-fpm -m | grep -oiE '^phar$' \ + && php -m | grep -oiE '^gd$' \ + && php-fpm -m | grep -oiE '^gd$' \ + && php -m | grep -oiE '^recode$' \ + && php-fpm -m | grep -oiE '^recode$' \ + && php -m | grep -oiE '^mysql$' \ + && php-fpm -m | grep -oiE '^mysql$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && php -m | grep -oiE '^curl$' \ + && php-fpm -m | grep -oiE '^curl$' \ + && php -m | grep -oiE '^sockets$' \ + && php-fpm -m | grep -oiE '^sockets$' \ + && php -m | grep -oiE '^ftp$' \ + && php-fpm -m | grep -oiE '^ftp$' \ + && php -m | grep -oiE '^iconv$' \ + && php-fpm -m | grep -oiE '^iconv$' \ + && php -m | grep -oiE '^pdo_pgsql$' \ + && php-fpm -m | grep -oiE '^pdo_pgsql$' \ + && php -m | grep -oiE '^zip$' \ + && php-fpm -m | grep -oiE '^zip$' \ + && php -m | grep -oiE '^xmlwriter$' \ + && php-fpm -m | grep -oiE '^xmlwriter$' \ + && php -m | grep -oiE '^snmp$' \ + && php-fpm -m | grep -oiE '^snmp$' \ + && php -m | grep -oiE '^gettext$' \ + && php-fpm -m | grep -oiE '^gettext$' \ + && php -m | grep -oiE '^pgsql$' \ + && php-fpm -m | grep -oiE '^pgsql$' \ + && php -m | grep -oiE '^json$' \ + && php-fpm -m | grep -oiE '^json$' \ + && php -m | grep -oiE '^interbase$' \ + && php-fpm -m | grep -oiE '^interbase$' \ + && php -m | grep -oiE '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^ldap$' \ + && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^sysvmsg$' \ + && php-fpm -m | grep -oiE '^sysvmsg$' \ + && php -m | grep -oiE '^gmp$' \ + && php-fpm -m | grep -oiE '^gmp$' \ + && php -m | grep -oiE '^sysvshm$' \ + && php-fpm -m | grep -oiE '^sysvshm$' \ + && php -m | grep -oiE '^soap$' \ + && php-fpm -m | grep -oiE '^soap$' \ + && php -m | grep -oiE '^pdo_firebird$' \ + && php-fpm -m | grep -oiE '^pdo_firebird$' \ + && php -m | grep -oiE '^hash$' \ + && php-fpm -m | grep -oiE '^hash$' \ + && php -m | grep -oiE '^xmlrpc$' \ + && php-fpm -m | grep -oiE '^xmlrpc$' \ + && php -m | grep -oiE '^pdo$' \ + && php-fpm -m | grep -oiE '^pdo$' \ + && php -m | grep -oiE '^ctype$' \ + && php-fpm -m | grep -oiE '^ctype$' \ + && php -m | grep -oiE '^fileinfo$' \ + && php-fpm -m | grep -oiE '^fileinfo$' \ + && php -m | grep -oiE '^sysvsem$' \ + && php-fpm -m | grep -oiE '^sysvsem$' \ + && php -m | grep -oiE '^pspell$' \ + && php-fpm -m | grep -oiE '^pspell$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^readline$' \ + && php-fpm -m | grep -oiE '^readline$' \ + && php -m | grep -oiE '^pdo_sqlite$' \ + && php-fpm -m | grep -oiE '^pdo_sqlite$' \ + && php -m | grep -oiE '^imap$' \ + && php-fpm -m | grep -oiE '^imap$' \ + && php -m | grep -oiE '^bz2$' \ + && php-fpm -m | grep -oiE '^bz2$' \ + && php -m | grep -oiE '^wddx$' \ + && php-fpm -m | grep -oiE '^wddx$' \ + && php -m | grep -oiE '^exif$' \ + && php-fpm -m | grep -oiE '^exif$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && php -m | grep -oiE '^dom$' \ + && php-fpm -m | grep -oiE '^dom$' \ + && php -m | grep -oiE '^pdo_dblib$' \ + && php-fpm -m | grep -oiE '^pdo_dblib$' \ + && php -m | grep -oiE '^xmlreader$' \ + && php-fpm -m | grep -oiE '^xmlreader$' \ + && php -m | grep -oiE '^session$' \ + && php-fpm -m | grep -oiE '^session$' \ + && php -m | grep -oiE '^posix$' \ + && php-fpm -m | grep -oiE '^posix$' \ + && php -m | grep -oiE '^simplexml$' \ + && php-fpm -m | grep -oiE '^simplexml$' \ + && php -m | grep -oiE '^calendar$' \ + && php-fpm -m | grep -oiE '^calendar$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^enchant$' \ + && php-fpm -m | grep -oiE '^enchant$' \ + && php -m | grep -oiE '^xsl$' \ + && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^swoole$' \ + && php-fpm -m | grep -oiE '^swoole$' \ + && php -m | grep -oiE '^mongodb$' \ + && php-fpm -m | grep -oiE '^mongodb$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && php -m | grep -oiE '^uploadprogress$' \ + && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && php -m | grep -oiE '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^memcached$' \ + && php-fpm -m | grep -oiE '^memcached$' \ + && php -m | grep -oiE '^igbinary$' \ + && php-fpm -m | grep -oiE '^igbinary$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && php -m | grep -oiE '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && true + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 new file mode 100644 index 0000000..f5af183 --- /dev/null +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -0,0 +1,404 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.6-base +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.6 Image" \ + image="devilbox/php-fpm" \ + tag="5.6-mods" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV BUILD_DEPS \ + libicu-dev \ + libtidy-dev \ + libssl-dev \ + libpng-dev \ + libjpeg-dev \ + libxpm-dev \ + libvpx-dev \ + zlib1g-dev \ + libfreetype6-dev \ + librecode-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libpq-dev \ + zlib1g-dev \ + libzip-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libpq-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libldap2-dev \ + libsasl2-dev \ + libgmp-dev \ + libxml2-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libxml2-dev \ + libpspell-dev \ + libedit-dev \ + libreadline-dev \ + libsqlite3-dev \ + libc-client-dev \ + libkrb5-dev \ + libcurl4-openssl-dev \ + libbz2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + freetds-dev \ + libxml2-dev \ + libmm-dev \ + libxml2-dev \ + libmcrypt-dev \ + libenchant-dev \ + libxslt-dev \ + librabbitmq-dev \ + libnghttp2-dev \ + libssl-dev \ + libnghttp2-5 \ + zlib1g-dev \ + libmagickwand-dev \ + zlib1g-dev \ + libmemcached-dev \ + git \ + ca-certificates + +ENV RUN_DEPS \ + libicu52 \ + libtidy-0.99-0 \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + librecode0 \ + libpq5 \ + libzip2 \ + snmp \ + libpq5 \ + libfbclient2 \ + libfbclient2 \ + libaspell15 \ + libc-client2007e \ + libsybdb5 \ + libmcrypt4 \ + libenchant1c2a \ + libxslt1.1 \ + librabbitmq1 \ + libnghttp2-5 \ + libmagickwand-6.q16-2 \ + libmemcachedutil2 \ + ca-certificates + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${BUILD_DEPS} \ + \ + \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && /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) iconv \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /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) gettext \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && 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) sysvshm \ + && /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) pdo_firebird \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ + && /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) pdo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /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) exif \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && 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-configure xmlreader --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + \ + \ + && pecl install xdebug-2.5.5 \ + && docker-php-ext-enable xdebug \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install swoole-1.9.23 \ + && docker-php-ext-enable swoole \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install memcache \ + && docker-php-ext-enable memcache \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && pecl install uploadprogress \ + && docker-php-ext-enable uploadprogress \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && pecl install msgpack-0.5.7 \ + && docker-php-ext-enable msgpack \ + && pecl install memcached-2.2.0 \ + && docker-php-ext-enable memcached \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install apcu-4.0.11 \ + && docker-php-ext-enable apcu \ + \ + \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd /tmp/phalcon && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + \ + \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + ${BUILD_DEPS} \ + \ + \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${RUN_DEPS} \ + && rm -rf /var/lib/apt/lists/* \ + && update-ca-certificates \ + && find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ + && /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 + +RUN set -x \ + && php -m | grep -oiE '^pdo_mysql$' \ + && php-fpm -m | grep -oiE '^pdo_mysql$' \ + && php -m | grep -oiE '^tokenizer$' \ + && php-fpm -m | grep -oiE '^tokenizer$' \ + && php -m | grep -oiE '^dba$' \ + && php-fpm -m | grep -oiE '^dba$' \ + && php -m | grep -oiE '^intl$' \ + && php-fpm -m | grep -oiE '^intl$' \ + && php -m | grep -oiE '^shmop$' \ + && php-fpm -m | grep -oiE '^shmop$' \ + && php -m | grep -oiE '^tidy$' \ + && php-fpm -m | grep -oiE '^tidy$' \ + && php -m | grep -oiE '^bcmath$' \ + && php-fpm -m | grep -oiE '^bcmath$' \ + && php -m | grep -oiE '^phar$' \ + && php-fpm -m | grep -oiE '^phar$' \ + && php -m | grep -oiE '^gd$' \ + && php-fpm -m | grep -oiE '^gd$' \ + && php -m | grep -oiE '^recode$' \ + && php-fpm -m | grep -oiE '^recode$' \ + && php -m | grep -oiE '^mysql$' \ + && php-fpm -m | grep -oiE '^mysql$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && php -m | grep -oiE '^curl$' \ + && php-fpm -m | grep -oiE '^curl$' \ + && php -m | grep -oiE '^sockets$' \ + && php-fpm -m | grep -oiE '^sockets$' \ + && php -m | grep -oiE '^ftp$' \ + && php-fpm -m | grep -oiE '^ftp$' \ + && php -m | grep -oiE '^iconv$' \ + && php-fpm -m | grep -oiE '^iconv$' \ + && php -m | grep -oiE '^pdo_pgsql$' \ + && php-fpm -m | grep -oiE '^pdo_pgsql$' \ + && php -m | grep -oiE '^zip$' \ + && php-fpm -m | grep -oiE '^zip$' \ + && php -m | grep -oiE '^xmlwriter$' \ + && php-fpm -m | grep -oiE '^xmlwriter$' \ + && php -m | grep -oiE '^snmp$' \ + && php-fpm -m | grep -oiE '^snmp$' \ + && php -m | grep -oiE '^gettext$' \ + && php-fpm -m | grep -oiE '^gettext$' \ + && php -m | grep -oiE '^pgsql$' \ + && php-fpm -m | grep -oiE '^pgsql$' \ + && php -m | grep -oiE '^json$' \ + && php-fpm -m | grep -oiE '^json$' \ + && php -m | grep -oiE '^interbase$' \ + && php-fpm -m | grep -oiE '^interbase$' \ + && php -m | grep -oiE '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^ldap$' \ + && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^sysvmsg$' \ + && php-fpm -m | grep -oiE '^sysvmsg$' \ + && php -m | grep -oiE '^gmp$' \ + && php-fpm -m | grep -oiE '^gmp$' \ + && php -m | grep -oiE '^sysvshm$' \ + && php-fpm -m | grep -oiE '^sysvshm$' \ + && php -m | grep -oiE '^soap$' \ + && php-fpm -m | grep -oiE '^soap$' \ + && php -m | grep -oiE '^pdo_firebird$' \ + && php-fpm -m | grep -oiE '^pdo_firebird$' \ + && php -m | grep -oiE '^hash$' \ + && php-fpm -m | grep -oiE '^hash$' \ + && php -m | grep -oiE '^xmlrpc$' \ + && php-fpm -m | grep -oiE '^xmlrpc$' \ + && php -m | grep -oiE '^pdo$' \ + && php-fpm -m | grep -oiE '^pdo$' \ + && php -m | grep -oiE '^ctype$' \ + && php-fpm -m | grep -oiE '^ctype$' \ + && php -m | grep -oiE '^fileinfo$' \ + && php-fpm -m | grep -oiE '^fileinfo$' \ + && php -m | grep -oiE '^sysvsem$' \ + && php-fpm -m | grep -oiE '^sysvsem$' \ + && php -m | grep -oiE '^pspell$' \ + && php-fpm -m | grep -oiE '^pspell$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^readline$' \ + && php-fpm -m | grep -oiE '^readline$' \ + && php -m | grep -oiE '^pdo_sqlite$' \ + && php-fpm -m | grep -oiE '^pdo_sqlite$' \ + && php -m | grep -oiE '^imap$' \ + && php-fpm -m | grep -oiE '^imap$' \ + && php -m | grep -oiE '^bz2$' \ + && php-fpm -m | grep -oiE '^bz2$' \ + && php -m | grep -oiE '^wddx$' \ + && php-fpm -m | grep -oiE '^wddx$' \ + && php -m | grep -oiE '^exif$' \ + && php-fpm -m | grep -oiE '^exif$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && php -m | grep -oiE '^dom$' \ + && php-fpm -m | grep -oiE '^dom$' \ + && php -m | grep -oiE '^pdo_dblib$' \ + && php-fpm -m | grep -oiE '^pdo_dblib$' \ + && php -m | grep -oiE '^xmlreader$' \ + && php-fpm -m | grep -oiE '^xmlreader$' \ + && php -m | grep -oiE '^session$' \ + && php-fpm -m | grep -oiE '^session$' \ + && php -m | grep -oiE '^posix$' \ + && php-fpm -m | grep -oiE '^posix$' \ + && php -m | grep -oiE '^simplexml$' \ + && php-fpm -m | grep -oiE '^simplexml$' \ + && php -m | grep -oiE '^calendar$' \ + && php-fpm -m | grep -oiE '^calendar$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^enchant$' \ + && php-fpm -m | grep -oiE '^enchant$' \ + && php -m | grep -oiE '^xsl$' \ + && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^swoole$' \ + && php-fpm -m | grep -oiE '^swoole$' \ + && php -m | grep -oiE '^mongodb$' \ + && php-fpm -m | grep -oiE '^mongodb$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && php -m | grep -oiE '^uploadprogress$' \ + && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && php -m | grep -oiE '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^memcached$' \ + && php-fpm -m | grep -oiE '^memcached$' \ + && php -m | grep -oiE '^igbinary$' \ + && php-fpm -m | grep -oiE '^igbinary$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && php -m | grep -oiE '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && true + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 new file mode 100644 index 0000000..1e3af51 --- /dev/null +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -0,0 +1,394 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.0-base +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.0 Image" \ + image="devilbox/php-fpm" \ + tag="7.0-mods" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV BUILD_DEPS \ + libicu-dev \ + libtidy-dev \ + libssl-dev \ + libpng-dev \ + libjpeg-dev \ + libxpm-dev \ + libvpx-dev \ + zlib1g-dev \ + libfreetype6-dev \ + libwebp-dev \ + librecode-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libpq-dev \ + zlib1g-dev \ + libzip-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libpq-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libldap2-dev \ + libsasl2-dev \ + libgmp-dev \ + libxml2-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libxml2-dev \ + libpspell-dev \ + libedit-dev \ + libreadline-dev \ + libsqlite3-dev \ + libc-client-dev \ + libkrb5-dev \ + libcurl4-openssl-dev \ + libbz2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + freetds-dev \ + libmm-dev \ + libxml2-dev \ + libmcrypt-dev \ + libenchant-dev \ + libxslt-dev \ + librabbitmq-dev \ + libnghttp2-dev \ + libssl-dev \ + libnghttp2-5 \ + libmagickwand-dev \ + zlib1g-dev \ + libmemcached-dev \ + git \ + ca-certificates + +ENV RUN_DEPS \ + libicu52 \ + libtidy-0.99-0 \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libwebp-dev \ + librecode0 \ + libpq5 \ + libzip2 \ + snmp \ + libpq5 \ + libfbclient2 \ + libfbclient2 \ + libaspell15 \ + libc-client2007e \ + libsybdb5 \ + libmcrypt4 \ + libenchant1c2a \ + libxslt1.1 \ + librabbitmq1 \ + libnghttp2-5 \ + libmagickwand-6.q16-2 \ + libmemcachedutil2 \ + ca-certificates + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${BUILD_DEPS} \ + \ + \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && /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) iconv \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /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) gettext \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && 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) sysvshm \ + && /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) pdo_firebird \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ + && /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) pdo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /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) exif \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && 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-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + \ + \ + && pecl install xdebug \ + && docker-php-ext-enable xdebug \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install swoole \ + && docker-php-ext-enable swoole \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && pecl install msgpack \ + && docker-php-ext-enable msgpack \ + && pecl install memcached \ + && docker-php-ext-enable memcached \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install apcu \ + && docker-php-ext-enable apcu \ + \ + \ + && git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ + && cd /tmp/uploadprogress \ + && git checkout master \ + && cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \ + && docker-php-ext-enable uploadprogress \ + && cd / && rm -rf /tmp/uploadprogress \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd /tmp/phalcon && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + \ + \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + ${BUILD_DEPS} \ + \ + \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${RUN_DEPS} \ + && rm -rf /var/lib/apt/lists/* \ + && update-ca-certificates \ + && find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ + && /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 + +RUN set -x \ + && php -m | grep -oiE '^pdo_mysql$' \ + && php-fpm -m | grep -oiE '^pdo_mysql$' \ + && php -m | grep -oiE '^tokenizer$' \ + && php-fpm -m | grep -oiE '^tokenizer$' \ + && php -m | grep -oiE '^dba$' \ + && php-fpm -m | grep -oiE '^dba$' \ + && php -m | grep -oiE '^intl$' \ + && php-fpm -m | grep -oiE '^intl$' \ + && php -m | grep -oiE '^shmop$' \ + && php-fpm -m | grep -oiE '^shmop$' \ + && php -m | grep -oiE '^tidy$' \ + && php-fpm -m | grep -oiE '^tidy$' \ + && php -m | grep -oiE '^bcmath$' \ + && php-fpm -m | grep -oiE '^bcmath$' \ + && php -m | grep -oiE '^phar$' \ + && php-fpm -m | grep -oiE '^phar$' \ + && php -m | grep -oiE '^gd$' \ + && php-fpm -m | grep -oiE '^gd$' \ + && php -m | grep -oiE '^recode$' \ + && php-fpm -m | grep -oiE '^recode$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && php -m | grep -oiE '^curl$' \ + && php-fpm -m | grep -oiE '^curl$' \ + && php -m | grep -oiE '^sockets$' \ + && php-fpm -m | grep -oiE '^sockets$' \ + && php -m | grep -oiE '^ftp$' \ + && php-fpm -m | grep -oiE '^ftp$' \ + && php -m | grep -oiE '^iconv$' \ + && php-fpm -m | grep -oiE '^iconv$' \ + && php -m | grep -oiE '^pdo_pgsql$' \ + && php-fpm -m | grep -oiE '^pdo_pgsql$' \ + && php -m | grep -oiE '^zip$' \ + && php-fpm -m | grep -oiE '^zip$' \ + && php -m | grep -oiE '^xmlwriter$' \ + && php-fpm -m | grep -oiE '^xmlwriter$' \ + && php -m | grep -oiE '^snmp$' \ + && php-fpm -m | grep -oiE '^snmp$' \ + && php -m | grep -oiE '^gettext$' \ + && php-fpm -m | grep -oiE '^gettext$' \ + && php -m | grep -oiE '^pgsql$' \ + && php-fpm -m | grep -oiE '^pgsql$' \ + && php -m | grep -oiE '^json$' \ + && php-fpm -m | grep -oiE '^json$' \ + && php -m | grep -oiE '^interbase$' \ + && php-fpm -m | grep -oiE '^interbase$' \ + && php -m | grep -oiE '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^ldap$' \ + && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^sysvmsg$' \ + && php-fpm -m | grep -oiE '^sysvmsg$' \ + && php -m | grep -oiE '^gmp$' \ + && php-fpm -m | grep -oiE '^gmp$' \ + && php -m | grep -oiE '^sysvshm$' \ + && php-fpm -m | grep -oiE '^sysvshm$' \ + && php -m | grep -oiE '^soap$' \ + && php-fpm -m | grep -oiE '^soap$' \ + && php -m | grep -oiE '^pdo_firebird$' \ + && php-fpm -m | grep -oiE '^pdo_firebird$' \ + && php -m | grep -oiE '^hash$' \ + && php-fpm -m | grep -oiE '^hash$' \ + && php -m | grep -oiE '^xmlrpc$' \ + && php-fpm -m | grep -oiE '^xmlrpc$' \ + && php -m | grep -oiE '^pdo$' \ + && php-fpm -m | grep -oiE '^pdo$' \ + && php -m | grep -oiE '^ctype$' \ + && php-fpm -m | grep -oiE '^ctype$' \ + && php -m | grep -oiE '^fileinfo$' \ + && php-fpm -m | grep -oiE '^fileinfo$' \ + && php -m | grep -oiE '^sysvsem$' \ + && php-fpm -m | grep -oiE '^sysvsem$' \ + && 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 '^pdo_sqlite$' \ + && php-fpm -m | grep -oiE '^pdo_sqlite$' \ + && php -m | grep -oiE '^imap$' \ + && php-fpm -m | grep -oiE '^imap$' \ + && php -m | grep -oiE '^bz2$' \ + && php-fpm -m | grep -oiE '^bz2$' \ + && php -m | grep -oiE '^wddx$' \ + && php-fpm -m | grep -oiE '^wddx$' \ + && php -m | grep -oiE '^exif$' \ + && php-fpm -m | grep -oiE '^exif$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && php -m | grep -oiE '^dom$' \ + && php-fpm -m | grep -oiE '^dom$' \ + && php -m | grep -oiE '^pdo_dblib$' \ + && php-fpm -m | grep -oiE '^pdo_dblib$' \ + && php -m | grep -oiE '^session$' \ + && php-fpm -m | grep -oiE '^session$' \ + && php -m | grep -oiE '^posix$' \ + && php-fpm -m | grep -oiE '^posix$' \ + && php -m | grep -oiE '^simplexml$' \ + && php-fpm -m | grep -oiE '^simplexml$' \ + && php -m | grep -oiE '^calendar$' \ + && php-fpm -m | grep -oiE '^calendar$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^enchant$' \ + && php-fpm -m | grep -oiE '^enchant$' \ + && php -m | grep -oiE '^xsl$' \ + && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^swoole$' \ + && php-fpm -m | grep -oiE '^swoole$' \ + && php -m | grep -oiE '^mongodb$' \ + && php-fpm -m | grep -oiE '^mongodb$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && php -m | grep -oiE '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && php -m | grep -oiE '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^memcached$' \ + && php-fpm -m | grep -oiE '^memcached$' \ + && php -m | grep -oiE '^igbinary$' \ + && php-fpm -m | grep -oiE '^igbinary$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && php -m | grep -oiE '^uploadprogress$' \ + && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && true + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 new file mode 100644 index 0000000..762d3af --- /dev/null +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -0,0 +1,394 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.1-base +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.1 Image" \ + image="devilbox/php-fpm" \ + tag="7.1-mods" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV BUILD_DEPS \ + libicu-dev \ + libtidy-dev \ + libssl-dev \ + libpng-dev \ + libjpeg-dev \ + libxpm-dev \ + libvpx-dev \ + zlib1g-dev \ + libfreetype6-dev \ + libwebp-dev \ + librecode-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libpq-dev \ + zlib1g-dev \ + libzip-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libpq-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libldap2-dev \ + libsasl2-dev \ + libgmp-dev \ + libxml2-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libxml2-dev \ + libpspell-dev \ + libedit-dev \ + libreadline-dev \ + libsqlite3-dev \ + libc-client-dev \ + libkrb5-dev \ + libcurl4-openssl-dev \ + libbz2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + freetds-dev \ + libmm-dev \ + libxml2-dev \ + libmcrypt-dev \ + libenchant-dev \ + libxslt-dev \ + librabbitmq-dev \ + libnghttp2-dev \ + libssl-dev \ + libnghttp2-5 \ + libmagickwand-dev \ + zlib1g-dev \ + libmemcached-dev \ + git \ + ca-certificates + +ENV RUN_DEPS \ + libicu52 \ + libtidy-0.99-0 \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libwebp-dev \ + librecode0 \ + libpq5 \ + libzip2 \ + snmp \ + libpq5 \ + libfbclient2 \ + libfbclient2 \ + libaspell15 \ + libc-client2007e \ + libsybdb5 \ + libmcrypt4 \ + libenchant1c2a \ + libxslt1.1 \ + librabbitmq1 \ + libnghttp2-5 \ + libmagickwand-6.q16-2 \ + libmemcachedutil2 \ + ca-certificates + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${BUILD_DEPS} \ + \ + \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && /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) iconv \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /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) gettext \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && 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) sysvshm \ + && /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) pdo_firebird \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ + && /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) pdo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /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) exif \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && 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-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + \ + \ + && pecl install xdebug \ + && docker-php-ext-enable xdebug \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install swoole \ + && docker-php-ext-enable swoole \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && pecl install msgpack \ + && docker-php-ext-enable msgpack \ + && pecl install memcached \ + && docker-php-ext-enable memcached \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install apcu \ + && docker-php-ext-enable apcu \ + \ + \ + && git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ + && cd /tmp/uploadprogress \ + && git checkout master \ + && cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \ + && docker-php-ext-enable uploadprogress \ + && cd / && rm -rf /tmp/uploadprogress \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd /tmp/phalcon && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + \ + \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + ${BUILD_DEPS} \ + \ + \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${RUN_DEPS} \ + && rm -rf /var/lib/apt/lists/* \ + && update-ca-certificates \ + && find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ + && /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 + +RUN set -x \ + && php -m | grep -oiE '^pdo_mysql$' \ + && php-fpm -m | grep -oiE '^pdo_mysql$' \ + && php -m | grep -oiE '^tokenizer$' \ + && php-fpm -m | grep -oiE '^tokenizer$' \ + && php -m | grep -oiE '^dba$' \ + && php-fpm -m | grep -oiE '^dba$' \ + && php -m | grep -oiE '^intl$' \ + && php-fpm -m | grep -oiE '^intl$' \ + && php -m | grep -oiE '^shmop$' \ + && php-fpm -m | grep -oiE '^shmop$' \ + && php -m | grep -oiE '^tidy$' \ + && php-fpm -m | grep -oiE '^tidy$' \ + && php -m | grep -oiE '^bcmath$' \ + && php-fpm -m | grep -oiE '^bcmath$' \ + && php -m | grep -oiE '^phar$' \ + && php-fpm -m | grep -oiE '^phar$' \ + && php -m | grep -oiE '^gd$' \ + && php-fpm -m | grep -oiE '^gd$' \ + && php -m | grep -oiE '^recode$' \ + && php-fpm -m | grep -oiE '^recode$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && php -m | grep -oiE '^curl$' \ + && php-fpm -m | grep -oiE '^curl$' \ + && php -m | grep -oiE '^sockets$' \ + && php-fpm -m | grep -oiE '^sockets$' \ + && php -m | grep -oiE '^ftp$' \ + && php-fpm -m | grep -oiE '^ftp$' \ + && php -m | grep -oiE '^iconv$' \ + && php-fpm -m | grep -oiE '^iconv$' \ + && php -m | grep -oiE '^pdo_pgsql$' \ + && php-fpm -m | grep -oiE '^pdo_pgsql$' \ + && php -m | grep -oiE '^zip$' \ + && php-fpm -m | grep -oiE '^zip$' \ + && php -m | grep -oiE '^xmlwriter$' \ + && php-fpm -m | grep -oiE '^xmlwriter$' \ + && php -m | grep -oiE '^snmp$' \ + && php-fpm -m | grep -oiE '^snmp$' \ + && php -m | grep -oiE '^gettext$' \ + && php-fpm -m | grep -oiE '^gettext$' \ + && php -m | grep -oiE '^pgsql$' \ + && php-fpm -m | grep -oiE '^pgsql$' \ + && php -m | grep -oiE '^json$' \ + && php-fpm -m | grep -oiE '^json$' \ + && php -m | grep -oiE '^interbase$' \ + && php-fpm -m | grep -oiE '^interbase$' \ + && php -m | grep -oiE '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^ldap$' \ + && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^sysvmsg$' \ + && php-fpm -m | grep -oiE '^sysvmsg$' \ + && php -m | grep -oiE '^gmp$' \ + && php-fpm -m | grep -oiE '^gmp$' \ + && php -m | grep -oiE '^sysvshm$' \ + && php-fpm -m | grep -oiE '^sysvshm$' \ + && php -m | grep -oiE '^soap$' \ + && php-fpm -m | grep -oiE '^soap$' \ + && php -m | grep -oiE '^pdo_firebird$' \ + && php-fpm -m | grep -oiE '^pdo_firebird$' \ + && php -m | grep -oiE '^hash$' \ + && php-fpm -m | grep -oiE '^hash$' \ + && php -m | grep -oiE '^xmlrpc$' \ + && php-fpm -m | grep -oiE '^xmlrpc$' \ + && php -m | grep -oiE '^pdo$' \ + && php-fpm -m | grep -oiE '^pdo$' \ + && php -m | grep -oiE '^ctype$' \ + && php-fpm -m | grep -oiE '^ctype$' \ + && php -m | grep -oiE '^fileinfo$' \ + && php-fpm -m | grep -oiE '^fileinfo$' \ + && php -m | grep -oiE '^sysvsem$' \ + && php-fpm -m | grep -oiE '^sysvsem$' \ + && 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 '^pdo_sqlite$' \ + && php-fpm -m | grep -oiE '^pdo_sqlite$' \ + && php -m | grep -oiE '^imap$' \ + && php-fpm -m | grep -oiE '^imap$' \ + && php -m | grep -oiE '^bz2$' \ + && php-fpm -m | grep -oiE '^bz2$' \ + && php -m | grep -oiE '^wddx$' \ + && php-fpm -m | grep -oiE '^wddx$' \ + && php -m | grep -oiE '^exif$' \ + && php-fpm -m | grep -oiE '^exif$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && php -m | grep -oiE '^dom$' \ + && php-fpm -m | grep -oiE '^dom$' \ + && php -m | grep -oiE '^pdo_dblib$' \ + && php-fpm -m | grep -oiE '^pdo_dblib$' \ + && php -m | grep -oiE '^session$' \ + && php-fpm -m | grep -oiE '^session$' \ + && php -m | grep -oiE '^posix$' \ + && php-fpm -m | grep -oiE '^posix$' \ + && php -m | grep -oiE '^simplexml$' \ + && php-fpm -m | grep -oiE '^simplexml$' \ + && php -m | grep -oiE '^calendar$' \ + && php-fpm -m | grep -oiE '^calendar$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^enchant$' \ + && php-fpm -m | grep -oiE '^enchant$' \ + && php -m | grep -oiE '^xsl$' \ + && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^swoole$' \ + && php-fpm -m | grep -oiE '^swoole$' \ + && php -m | grep -oiE '^mongodb$' \ + && php-fpm -m | grep -oiE '^mongodb$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && php -m | grep -oiE '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && php -m | grep -oiE '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^memcached$' \ + && php-fpm -m | grep -oiE '^memcached$' \ + && php -m | grep -oiE '^igbinary$' \ + && php-fpm -m | grep -oiE '^igbinary$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && php -m | grep -oiE '^uploadprogress$' \ + && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && true + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 new file mode 100644 index 0000000..b6de8b5 --- /dev/null +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -0,0 +1,399 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.2-base +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.2 Image" \ + image="devilbox/php-fpm" \ + tag="7.2-mods" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV BUILD_DEPS \ + libicu-dev \ + libtidy-dev \ + libssl-dev \ + libpng-dev \ + libjpeg-dev \ + libxpm-dev \ + libvpx-dev \ + zlib1g-dev \ + libfreetype6-dev \ + libwebp-dev \ + librecode-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + libpq-dev \ + zlib1g-dev \ + libzip-dev \ + libsodium-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libpq-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libldap2-dev \ + libsasl2-dev \ + libgmp-dev \ + libxml2-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + libxml2-dev \ + libpspell-dev \ + libedit-dev \ + libreadline-dev \ + libsqlite3-dev \ + libc-client-dev \ + libkrb5-dev \ + libcurl4-openssl-dev \ + libbz2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + freetds-dev \ + libmm-dev \ + libxml2-dev \ + libenchant-dev \ + libxslt-dev \ + librabbitmq-dev \ + libnghttp2-dev \ + libssl-dev \ + libnghttp2-5 \ + libmagickwand-dev \ + libmcrypt-dev \ + zlib1g-dev \ + libmemcached-dev \ + git \ + ca-certificates + +ENV RUN_DEPS \ + libicu57 \ + libtidy5 \ + libpng16-16 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx4 \ + libfreetype6 \ + libwebp6 \ + librecode0 \ + libpq5 \ + libzip4 \ + snmp \ + libpq5 \ + libfbclient2 \ + libfbclient2 \ + libaspell15 \ + libc-client2007e \ + libsybdb5 \ + libenchant1c2a \ + libxslt1.1 \ + librabbitmq4 \ + libnghttp2-14 \ + libmagickwand-6.q16-3 \ + libmcrypt4 \ + libmemcachedutil2 \ + ca-certificates + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${BUILD_DEPS} \ + \ + \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && /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) iconv \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && /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) sodium \ + && /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /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) gettext \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && 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) sysvshm \ + && /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) pdo_firebird \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ + && /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) pdo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /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) exif \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && 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-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + \ + \ + && pecl install xdebug \ + && docker-php-ext-enable xdebug \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install swoole \ + && docker-php-ext-enable swoole \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && pecl install msgpack \ + && docker-php-ext-enable msgpack \ + && pecl install mcrypt-1.0.1 \ + && docker-php-ext-enable mcrypt \ + && pecl install memcached \ + && docker-php-ext-enable memcached \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install apcu \ + && docker-php-ext-enable apcu \ + \ + \ + && git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ + && cd /tmp/uploadprogress \ + && git checkout master \ + && cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \ + && docker-php-ext-enable uploadprogress \ + && cd / && rm -rf /tmp/uploadprogress \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd /tmp/phalcon && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + \ + \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + ${BUILD_DEPS} \ + \ + \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${RUN_DEPS} \ + && rm -rf /var/lib/apt/lists/* \ + && update-ca-certificates \ + && find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ + && /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 + +RUN set -x \ + && php -m | grep -oiE '^pdo_mysql$' \ + && php-fpm -m | grep -oiE '^pdo_mysql$' \ + && php -m | grep -oiE '^tokenizer$' \ + && php-fpm -m | grep -oiE '^tokenizer$' \ + && php -m | grep -oiE '^dba$' \ + && php-fpm -m | grep -oiE '^dba$' \ + && php -m | grep -oiE '^intl$' \ + && php-fpm -m | grep -oiE '^intl$' \ + && php -m | grep -oiE '^shmop$' \ + && php-fpm -m | grep -oiE '^shmop$' \ + && php -m | grep -oiE '^tidy$' \ + && php-fpm -m | grep -oiE '^tidy$' \ + && php -m | grep -oiE '^bcmath$' \ + && php-fpm -m | grep -oiE '^bcmath$' \ + && php -m | grep -oiE '^phar$' \ + && php-fpm -m | grep -oiE '^phar$' \ + && php -m | grep -oiE '^gd$' \ + && php-fpm -m | grep -oiE '^gd$' \ + && php -m | grep -oiE '^recode$' \ + && php-fpm -m | grep -oiE '^recode$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && php -m | grep -oiE '^curl$' \ + && php-fpm -m | grep -oiE '^curl$' \ + && php -m | grep -oiE '^sockets$' \ + && php-fpm -m | grep -oiE '^sockets$' \ + && php -m | grep -oiE '^ftp$' \ + && php-fpm -m | grep -oiE '^ftp$' \ + && php -m | grep -oiE '^iconv$' \ + && php-fpm -m | grep -oiE '^iconv$' \ + && php -m | grep -oiE '^pdo_pgsql$' \ + && php-fpm -m | grep -oiE '^pdo_pgsql$' \ + && php -m | grep -oiE '^zip$' \ + && php-fpm -m | grep -oiE '^zip$' \ + && php -m | grep -oiE '^sodium$' \ + && php-fpm -m | grep -oiE '^sodium$' \ + && php -m | grep -oiE '^xmlwriter$' \ + && php-fpm -m | grep -oiE '^xmlwriter$' \ + && php -m | grep -oiE '^snmp$' \ + && php-fpm -m | grep -oiE '^snmp$' \ + && php -m | grep -oiE '^gettext$' \ + && php-fpm -m | grep -oiE '^gettext$' \ + && php -m | grep -oiE '^pgsql$' \ + && php-fpm -m | grep -oiE '^pgsql$' \ + && php -m | grep -oiE '^json$' \ + && php-fpm -m | grep -oiE '^json$' \ + && php -m | grep -oiE '^interbase$' \ + && php-fpm -m | grep -oiE '^interbase$' \ + && php -m | grep -oiE '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^ldap$' \ + && php-fpm -m | grep -oiE '^ldap$' \ + && php -m | grep -oiE '^sysvmsg$' \ + && php-fpm -m | grep -oiE '^sysvmsg$' \ + && php -m | grep -oiE '^gmp$' \ + && php-fpm -m | grep -oiE '^gmp$' \ + && php -m | grep -oiE '^sysvshm$' \ + && php-fpm -m | grep -oiE '^sysvshm$' \ + && php -m | grep -oiE '^soap$' \ + && php-fpm -m | grep -oiE '^soap$' \ + && php -m | grep -oiE '^pdo_firebird$' \ + && php-fpm -m | grep -oiE '^pdo_firebird$' \ + && php -m | grep -oiE '^hash$' \ + && php-fpm -m | grep -oiE '^hash$' \ + && php -m | grep -oiE '^xmlrpc$' \ + && php-fpm -m | grep -oiE '^xmlrpc$' \ + && php -m | grep -oiE '^pdo$' \ + && php-fpm -m | grep -oiE '^pdo$' \ + && php -m | grep -oiE '^ctype$' \ + && php-fpm -m | grep -oiE '^ctype$' \ + && php -m | grep -oiE '^fileinfo$' \ + && php-fpm -m | grep -oiE '^fileinfo$' \ + && php -m | grep -oiE '^sysvsem$' \ + && php-fpm -m | grep -oiE '^sysvsem$' \ + && 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 '^pdo_sqlite$' \ + && php-fpm -m | grep -oiE '^pdo_sqlite$' \ + && php -m | grep -oiE '^imap$' \ + && php-fpm -m | grep -oiE '^imap$' \ + && php -m | grep -oiE '^bz2$' \ + && php-fpm -m | grep -oiE '^bz2$' \ + && php -m | grep -oiE '^wddx$' \ + && php-fpm -m | grep -oiE '^wddx$' \ + && php -m | grep -oiE '^exif$' \ + && php-fpm -m | grep -oiE '^exif$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && php -m | grep -oiE '^dom$' \ + && php-fpm -m | grep -oiE '^dom$' \ + && php -m | grep -oiE '^pdo_dblib$' \ + && php-fpm -m | grep -oiE '^pdo_dblib$' \ + && php -m | grep -oiE '^session$' \ + && php-fpm -m | grep -oiE '^session$' \ + && php -m | grep -oiE '^posix$' \ + && php-fpm -m | grep -oiE '^posix$' \ + && php -m | grep -oiE '^simplexml$' \ + && php-fpm -m | grep -oiE '^simplexml$' \ + && php -m | grep -oiE '^calendar$' \ + && php-fpm -m | grep -oiE '^calendar$' \ + && php -m | grep -oiE '^enchant$' \ + && php-fpm -m | grep -oiE '^enchant$' \ + && php -m | grep -oiE '^xsl$' \ + && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^swoole$' \ + && php-fpm -m | grep -oiE '^swoole$' \ + && php -m | grep -oiE '^mongodb$' \ + && php-fpm -m | grep -oiE '^mongodb$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && php -m | grep -oiE '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && php -m | grep -oiE '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcached$' \ + && php-fpm -m | grep -oiE '^memcached$' \ + && php -m | grep -oiE '^igbinary$' \ + && php-fpm -m | grep -oiE '^igbinary$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && php -m | grep -oiE '^uploadprogress$' \ + && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && true + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/prod/Dockerfile-5.4 b/Dockerfiles/prod/Dockerfile-5.4 new file mode 100644 index 0000000..b9ea0ae --- /dev/null +++ b/Dockerfiles/prod/Dockerfile-5.4 @@ -0,0 +1,89 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.4-mods +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.4 Image" \ + image="devilbox/php-fpm" \ + tag="5.4-prod" \ + vendor="devilbox" \ + license="MIT" + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ + locales-all \ + postfix \ + postfix-pcre \ + rsyslog \ + socat \ + supervisor \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* \ + \ + && rm -rf /etc/supervisor* \ + && mkdir -p /etc/supervisor/conf.d \ + && mkdir -p /var/log/supervisor + + + +### +### Configure +### +RUN set -x \ + && { \ + echo "[mail function]"; \ + echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ + echo ";mail.force_extra_parameters ="; \ + echo "mail.add_x_header = On"; \ + echo "mail.log = /var/log/php/mail.log"; \ + } > /usr/local/etc/php/conf.d/devilbox-mail.ini + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.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 + + +### +### 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-modules.d +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/prod/Dockerfile-5.5 b/Dockerfiles/prod/Dockerfile-5.5 new file mode 100644 index 0000000..6d046c9 --- /dev/null +++ b/Dockerfiles/prod/Dockerfile-5.5 @@ -0,0 +1,89 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.5-mods +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.5 Image" \ + image="devilbox/php-fpm" \ + tag="5.5-prod" \ + vendor="devilbox" \ + license="MIT" + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ + locales-all \ + postfix \ + postfix-pcre \ + rsyslog \ + socat \ + supervisor \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* \ + \ + && rm -rf /etc/supervisor* \ + && mkdir -p /etc/supervisor/conf.d \ + && mkdir -p /var/log/supervisor + + + +### +### Configure +### +RUN set -x \ + && { \ + echo "[mail function]"; \ + echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ + echo ";mail.force_extra_parameters ="; \ + echo "mail.add_x_header = On"; \ + echo "mail.log = /var/log/php/mail.log"; \ + } > /usr/local/etc/php/conf.d/devilbox-mail.ini + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ + && /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 + + +### +### 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-modules.d +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/prod/Dockerfile-5.6 b/Dockerfiles/prod/Dockerfile-5.6 new file mode 100644 index 0000000..0939ab3 --- /dev/null +++ b/Dockerfiles/prod/Dockerfile-5.6 @@ -0,0 +1,89 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.6-mods +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.6 Image" \ + image="devilbox/php-fpm" \ + tag="5.6-prod" \ + vendor="devilbox" \ + license="MIT" + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ + locales-all \ + postfix \ + postfix-pcre \ + rsyslog \ + socat \ + supervisor \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* \ + \ + && rm -rf /etc/supervisor* \ + && mkdir -p /etc/supervisor/conf.d \ + && mkdir -p /var/log/supervisor + + + +### +### Configure +### +RUN set -x \ + && { \ + echo "[mail function]"; \ + echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ + echo ";mail.force_extra_parameters ="; \ + echo "mail.add_x_header = On"; \ + echo "mail.log = /var/log/php/mail.log"; \ + } > /usr/local/etc/php/conf.d/devilbox-mail.ini + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ + && /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 + + +### +### 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-modules.d +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/prod/Dockerfile-7.0 b/Dockerfiles/prod/Dockerfile-7.0 new file mode 100644 index 0000000..f588959 --- /dev/null +++ b/Dockerfiles/prod/Dockerfile-7.0 @@ -0,0 +1,89 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.0-mods +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.0 Image" \ + image="devilbox/php-fpm" \ + tag="7.0-prod" \ + vendor="devilbox" \ + license="MIT" + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ + locales-all \ + postfix \ + postfix-pcre \ + rsyslog \ + socat \ + supervisor \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* \ + \ + && rm -rf /etc/supervisor* \ + && mkdir -p /etc/supervisor/conf.d \ + && mkdir -p /var/log/supervisor + + + +### +### Configure +### +RUN set -x \ + && { \ + echo "[mail function]"; \ + echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ + echo ";mail.force_extra_parameters ="; \ + echo "mail.add_x_header = On"; \ + echo "mail.log = /var/log/php/mail.log"; \ + } > /usr/local/etc/php/conf.d/devilbox-mail.ini + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ + && /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 + + +### +### 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-modules.d +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/prod/Dockerfile-7.1 b/Dockerfiles/prod/Dockerfile-7.1 new file mode 100644 index 0000000..552f057 --- /dev/null +++ b/Dockerfiles/prod/Dockerfile-7.1 @@ -0,0 +1,89 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.1-mods +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.1 Image" \ + image="devilbox/php-fpm" \ + tag="7.1-prod" \ + vendor="devilbox" \ + license="MIT" + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ + locales-all \ + postfix \ + postfix-pcre \ + rsyslog \ + socat \ + supervisor \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* \ + \ + && rm -rf /etc/supervisor* \ + && mkdir -p /etc/supervisor/conf.d \ + && mkdir -p /var/log/supervisor + + + +### +### Configure +### +RUN set -x \ + && { \ + echo "[mail function]"; \ + echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ + echo ";mail.force_extra_parameters ="; \ + echo "mail.add_x_header = On"; \ + echo "mail.log = /var/log/php/mail.log"; \ + } > /usr/local/etc/php/conf.d/devilbox-mail.ini + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ + && /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 + + +### +### 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-modules.d +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/prod/Dockerfile-7.2 b/Dockerfiles/prod/Dockerfile-7.2 new file mode 100644 index 0000000..0b14c07 --- /dev/null +++ b/Dockerfiles/prod/Dockerfile-7.2 @@ -0,0 +1,89 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.2-mods +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.2 Image" \ + image="devilbox/php-fpm" \ + tag="7.2-prod" \ + vendor="devilbox" \ + license="MIT" + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ + locales-all \ + postfix \ + postfix-pcre \ + rsyslog \ + socat \ + supervisor \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* \ + \ + && rm -rf /etc/supervisor* \ + && mkdir -p /etc/supervisor/conf.d \ + && mkdir -p /var/log/supervisor + + + +### +### Configure +### +RUN set -x \ + && { \ + echo "[mail function]"; \ + echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ + echo ";mail.force_extra_parameters ="; \ + echo "mail.add_x_header = On"; \ + echo "mail.log = /var/log/php/mail.log"; \ + } > /usr/local/etc/php/conf.d/devilbox-mail.ini + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ + && /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 + + +### +### 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-modules.d +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh b/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh new file mode 100755 index 0000000..de5d731 --- /dev/null +++ b/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +set -e +set -u + + +############################################################ +# Functions +############################################################ + +### +### Change Timezone +### +set_timezone() { + tz_env_varname="${1}" + tz_php_ini="${2}" + + if ! env_set "${tz_env_varname}"; then + log "info" "\$${tz_env_varname} not set." + log "info" "Setting PHP: timezone=UTC" + run "sed -i'' 's|^[[:space:]]*;*[[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = UTF|g' ${tz_php_ini}" + else + tz_timezone="$( env_get "${tz_env_varname}" )" + if [ -f "/usr/share/zoneinfo/${tz_timezone}" ]; then + # Unix Time + log "info" "Setting container timezone to: ${tz_timezone}" + run "rm /etc/localtime" + run "ln -s /usr/share/zoneinfo/${tz_timezone} /etc/localtime" + + # PHP Time + log "info" "Setting PHP: timezone=${tz_timezone}" + run "sed -i'' 's|^[[:space:]]*;*[[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = ${tz_timezone}|g' ${tz_php_ini}" + else + log "err" "Invalid timezone for \$${tz_env_varname}." + log "err" "\$TIMEZONE: '${tz_timezone}' does not exist." + exit 1 + fi + fi + log "info" "Docker date set to: $(date)" + + unset -v tz_env_varname + unset -v tz_php_ini + unset -v tz_timezone +} + + +############################################################ +# Sanity Checks +############################################################ + +if ! command -v sed >/dev/null 2>&1; then + echo "sed not found, but required." + exit 1 +fi diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh b/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh new file mode 100755 index 0000000..fcaa8fe --- /dev/null +++ b/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh @@ -0,0 +1,71 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +set -e +set -u + + + +############################################################ +# Functions +############################################################ + +### +### Setup Postfix for catch-all +### +set_postfix() { + postfix_env_varname="${1}" + + if ! env_set "${postfix_env_varname}"; then + log "info" "\$${postfix_env_varname} not set." + log "info" "Disabling sending of emails" + else + postfix_env_value="$( env_get "${postfix_env_varname}" )" + if [ "${postfix_env_value}" = "1" ]; then + log "info" "Enabling sending of emails" + + # Add Mail file if it does not exist + if [ ! -f "/var/mail/${MY_USER}" ]; then + run "touch /var/mail/${MY_USER}" + fi + + # Fix mail user permissions after mount + run "chmod 0644 /var/mail/${MY_USER}" + run "chown ${MY_USER}:${MY_GROUP} /var/mail" + run "chown ${MY_USER}:${MY_GROUP} /var/mail/${MY_USER}" + + # Postfix configuration + run "postconf -e 'inet_protocols=ipv4'" + run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'" + run "echo '/.*@.*/ ${MY_USER}' >> /etc/postfix/virtual" + + run "newaliases" + + elif [ "${postfix_env_value}" = "0" ]; then + log "info" "Disabling sending of emails." + + else + log "err" "Invalid value for \$${postfix_env_varname}" + log "err" "Only 1 (for on) or 0 (for off) are allowed" + exit 1 + fi + fi + + unset -v postfix_env_varname + unset -v postfix_env_value +} + + +############################################################ +# Sanity Checks +############################################################ + +if ! command -v postconf >/dev/null 2>&1; then + echo "postconf not found, but required." + exit 1 +fi diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh b/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh new file mode 100755 index 0000000..327aca6 --- /dev/null +++ b/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh @@ -0,0 +1,116 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +set -e +set -u + + + +############################################################ +# Helper Functions +############################################################ + +# Check if PHP-FPM config files contain valid logging directives +_validate_docker_logs() { + vdl_fpm_error_log_conf="${1}" + vdl_fpm_access_log_conf="${2}" + + if [ ! -f "${vdl_fpm_error_log_conf}" ]; then + log "err" "PHP-FPM Error log config file does not exist in: ${vdl_fpm_error_log_conf}" + exit 1 + fi + if [ ! -f "${vdl_fpm_access_log_conf}" ]; then + log "err" "PHP-FPM Access log config file does not exist in: ${dl_fpm_access_log_conf}" + exit 1 + fi + + if ! grep -Eq '^error_log.*$' "${vdl_fpm_error_log_conf}"; then + log "err" "PHP-FPM Error log config file has no error logging directive" + exit 1 + fi + if ! grep -Eq '^access\.log.*$' "${vdl_fpm_access_log_conf}"; then + log "err" "PHP-FPM Access log config file has no access logging directive" + exit 1 + fi + + unset -v vdl_fpm_error_log_conf + unset -v vdl_fpm_access_log_conf +} + + + +############################################################ +# Functions +############################################################ + +### +### Change UID +### +set_docker_logs() { + dl_env_varname="${1}" + dl_log_dir="${2}" + dl_fpm_error_log_conf="${3}" + dl_fpm_access_log_conf="${4}" + + if ! env_set "${dl_env_varname}"; then + log "info" "\$${dl_env_varname} not set." + log "info" "Logging to docker logs stdout and stderr" + else + dl_docker_logs="$( env_get "${dl_env_varname}" )" + + # Disable docker logs and log to files + if [ "${dl_docker_logs}" = "0" ]; then + log "info" "\$${dl_env_varname} set to 0. Logging to files under: ${dl_log_dir}" + log "info" "Make sure to mount this directory in order to view logs" + + # Validation + _validate_docker_logs "${dl_fpm_error_log_conf}" "${dl_fpm_access_log_conf}" + + # Create Log directory + if [ ! -d "${dl_log_dir}" ]; then + run "mkdir -p ${dl_log_dir}" + fi + + # Fix permissions (in case uid/gid has changed) + if [ ! -f "${dl_log_dir}/php-fpm.access" ]; then + touch "${dl_log_dir}/php-fpm.access" + fi + if [ ! -f "${dl_log_dir}/php-fpm.error" ]; then + touch "${dl_log_dir}/php-fpm.error" + fi + run "chown -R ${MY_USER}:${MY_GROUP} ${dl_log_dir}" + + # Adjust PHP-FPM config to log to file + run "sed -i'' 's|^error_log.*$|error_log = ${dl_log_dir}/php-fpm.error|g' ${dl_fpm_error_log_conf}" + run "sed -i'' 's|^access\.log.*$|access.log = ${dl_log_dir}/php-fpm.access|g' ${dl_fpm_access_log_conf}" + + # Keep docker logs + elif [ "${dl_docker_logs}" = "1" ]; then + log "info" "\$${dl_env_varname} set to 1. Logging to docker logs stdout and stderr." + else + log "err" "Invalid value for \$${dl_env_varname}. Can only be 0 or 1. Provided: ${dl_docker_logs}" + exit 1 + fi + fi + + unset -v dl_env_varname + unset -v dl_log_dir + unset -v dl_fpm_error_log_conf + unset -v dl_fpm_access_log_conf + unset -v dl_docker_logs +} + + +############################################################ +# Sanity Checks +############################################################ + +if ! command -v sed >/dev/null 2>&1; then + echo "sed not found, but required." + exit 1 +fi diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh b/Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh new file mode 100755 index 0000000..47209a2 --- /dev/null +++ b/Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh @@ -0,0 +1,204 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +set -e +set -u + + + +############################################################ +# Helper Functions +############################################################ + +### +### Helper functions +### +_isip() { + # IP is not in correct format + if ! echo "${1}" | grep -Eq '^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$'; then + return 1 + fi + + # Get each octet + isip_o1="$( echo "${1}" | awk -F'.' '{print $1}' )" + isip_o2="$( echo "${1}" | awk -F'.' '{print $2}' )" + isip_o3="$( echo "${1}" | awk -F'.' '{print $3}' )" + isip_o4="$( echo "${1}" | awk -F'.' '{print $4}' )" + + # Cannot start with 0 and all must be below 256 + if [ "${isip_o1}" -lt "1" ] || \ + [ "${isip_o1}" -gt "255" ] || \ + [ "${isip_o2}" -gt "255" ] || \ + [ "${isip_o3}" -gt "255" ] || \ + [ "${isip_o4}" -gt "255" ]; then + unset -v isip_o1 + unset -v isip_o2 + unset -v isip_o3 + unset -v isip_o4 + # Error + return 1 + fi + + unset -v isip_o1 + unset -v isip_o2 + unset -v isip_o3 + unset -v isip_o4 + + # Success + return 0 +} + +_ishostname() { + # Does not have correct character class + if ! echo "${1}" | grep -Eq '^[-.0-9a-zA-Z]+$'; then + return 1 + fi + + # first and last character + ishostname_f_char="$( echo "${1}" | cut -c1-1 )" + ishostname_l_char="$( echo "${1}" | sed -e 's/.*\(.\)$/\1/' )" + + # Dot at beginning or end + if [ "${ishostname_f_char}" = "." ] || [ "${ishostname_l_char}" = "." ]; then + unset -v ishostname_f_char + unset -v ishostname_l_char + # Error + return 1 + fi + # Dash at beginning or end + if [ "${ishostname_f_char}" = "-" ] || [ "${ishostname_l_char}" = "-" ]; then + unset -v ishostname_f_char + unset -v ishostname_l_char + # Error + return 1 + fi + + unset -v ishostname_f_char + unset -v ishostname_l_char + + # Multiple dots next to each other + if echo "${1}" | grep -Eq '[.]{2,}'; then + # Error + return 1 + fi + # Dash next to dot + if echo "${1}" | grep -Eq '(\.-)|(-\.)'; then + # Error + return 1 + fi + + # Success + return 0 +} + + + +############################################################ +# Functions +############################################################ + +### +### +### +port_forward_get_lines() { + + if env_set "${1}"; then + + # Transform into newline separated forwards: + # local-port:host:remote-port\n + # local-port:host:remote-port\n + pfl_forwards="$( env_get "${1}" | sed 's/[[:space:]]*//g' | sed 's/,/\n/g' )" + + # loop over them line by line + IFS=' + ' + for pfl_line in ${pfl_forwards}; do + echo "${pfl_line}" + done + + unset -v pfl_forwards + unset -v pfl_line + fi +} + +port_forward_get_lport() { + # local-port:host:remote-port\n + echo "${1}" | awk -F':' '{print $1}' +} +port_forward_get_rhost() { + # local-port:host:remote-port\n + echo "${1}" | awk -F':' '{print $2}' +} +port_forward_get_rport() { + # local-port:host:remote-port\n + echo "${1}" | awk -F':' '{print $3}' +} + + + +port_forward_validate() { + pfv_env_varname="${1}" + + if ! env_set "${pfv_env_varname}"; then + log "info" "\$${pfv_env_varname} not set." + log "info" "Not ports from other machines will be forwarded to 127.0.0.1 inside this docker" + else + + # Loop over forwards in order to validate them + for pfv_line in $( port_forward_get_lines "${pfv_env_varname}" ); do + pfv_lport="$( port_forward_get_lport "${pfv_line}" )" + pfv_rhost="$( port_forward_get_rhost "${pfv_line}" )" + pfv_rport="$( port_forward_get_rport "${pfv_line}" )" + + if ! isint "${pfv_lport}"; then + log "err" "Port forwarding error: local port is not an integer: ${pfv_lport}" + log "err" "Line: ${pfv_line}" + exit 1 + fi + if ! _isip "${pfv_rhost}" && ! _ishostname "${pfv_rhost}"; then + log "err" "Port forwarding error: remote host is not a valid IP and not a valid hostname: ${pfv_rhost}" + log "err" "Line: ${pfv_line}" + log "err" "" + exit 1 + fi + if ! isint "${pfv_rport}"; then + log "err" "Port forwarding error: remote port is not an integer: ${pfv_rport}" + log "err" "Line: ${pfv_line}" + log "err" "" + exit 1 + fi + + log "info" "Forwarding ${pfv_rhost}:${pfv_rport} to 127.0.0.1:${pfv_lport} inside this docker." + done + + unset -v pfv_line + unset -v pfv_lport + unset -v pfv_rhost + unset -v pfv_rport + fi + + unset -v pfv_env_varname +} + + +############################################################ +# Sanity Checks +############################################################ + +if ! command -v awk >/dev/null 2>&1; then + echo "awk not found, but required." + exit 1 +fi +if ! command -v cut >/dev/null 2>&1; then + echo "cut not found, but required." + exit 1 +fi +if ! command -v sed >/dev/null 2>&1; then + echo "sed not found, but required." + exit 1 +fi diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/34-custom-ini-files.sh b/Dockerfiles/prod/data/docker-entrypoint.d/34-custom-ini-files.sh new file mode 100755 index 0000000..1470da9 --- /dev/null +++ b/Dockerfiles/prod/data/docker-entrypoint.d/34-custom-ini-files.sh @@ -0,0 +1,58 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +set -e +set -u + + +############################################################ +# Functions +############################################################ + +### +### Copy *.ini files from source to destination with prefix +### +copy_ini_files() { + ini_src="${1}" + ini_dst="${2}" + + if [ ! -d "${ini_src}" ]; then + run "mkdir -p ${ini_src}" + fi + ini_files="$( find "${ini_src}" -type f -iname '*.ini' )" + + # loop over them line by line + IFS=' + ' + for ini_f in ${ini_files}; do + ini_name="$( basename "${ini_f}" )" + log "info" "PHP.ini: ${ini_name} -> ${ini_dst}/zzz-devilbox-${ini_name}" + run "cp ${ini_f} ${ini_dst}/devilbox-${ini_name}" + done + run "find ${ini_dst} -type f -iname '*.ini' -exec chmod 0644 \"{}\" \;" + + unset -v ini_src + unset -v ini_dst + unset -v ini_files + unset -v ini_f + unset -v ini_name +} + + +############################################################ +# Sanity Checks +############################################################ + +if ! command -v find >/dev/null 2>&1; then + echo "find not found, but required." + exit 1 +fi +if ! command -v basename >/dev/null 2>&1; then + echo "basename not found, but required." + exit 1 +fi diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh b/Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh new file mode 100755 index 0000000..4ffa048 --- /dev/null +++ b/Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh @@ -0,0 +1,60 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +set -e +set -u + + + +############################################################ +# Functions +############################################################ + +### +### Add service to supervisord +### +supervisor_add_service() { + supervisor_name="${1}" + supervisor_command="${2}" + supervisor_confd="${3}" + supervisor_priority= + + if [ "${#}" -gt "3" ]; then + supervisor_priority="${4}" + fi + + if [ ! -d "${supervisor_confd}" ]; then + run "mkdir -p ${supervisor_confd}" + fi + + # Add services + { + echo "[program:${supervisor_name}]"; + echo "command = ${supervisor_command}"; + + if [ -n "${supervisor_priority}" ]; then + echo "priority = ${supervisor_priority}"; + fi + + echo "autostart = true"; + echo "autorestart = true"; + + echo "stdout_logfile = /dev/stdout"; + echo "stdout_logfile_maxbytes = 0"; + echo "stdout_events_enabled = true"; + + echo "stderr_logfile = /dev/stderr"; + echo "stderr_logfile_maxbytes = 0"; + echo "stderr_events_enabled = true"; + } > "${supervisor_confd}/${supervisor_name}.conf" + + unset -v supervisor_name + unset -v supervisor_command + unset -v supervisor_confd + unset -v supervisor_priority +} diff --git a/Dockerfiles/prod/data/docker-entrypoint.sh b/Dockerfiles/prod/data/docker-entrypoint.sh new file mode 100755 index 0000000..c92028a --- /dev/null +++ b/Dockerfiles/prod/data/docker-entrypoint.sh @@ -0,0 +1,132 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP + +set -e +set -u + + +### +### Variables +### +PHP_INI_PATH="/usr/local/etc/php.ini" +FPM_ERROR_LOG_CFG="/usr/local/etc/php-fpm.conf" +FPM_ACCESS_LOG_CFG="/usr/local/etc/php-fpm.d/zzz-docker.conf" +FPM_LOG_DIR="/var/log/php" + +#PHP_CUST_MODULE_DIR="/etc/php-modules.d" + +PHP_CUST_INI_DIR="/etc/php-custom.d" +PHP_REAL_INI_DIR="/usr/local/etc/php.d" + +SUPERVISOR_CONFD="/etc/supervisor/conf.d" + + +### +### Source libs +### +init="$( find /docker-entrypoint.d -name '*.sh' -type f | sort -u )" +for f in ${init}; do + # shellcheck disable=SC1090 + . "${f}" +done + + +### +### Set Debug level +### +DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )" +log "info" "Debug level: ${DEBUG_LEVEL}" "${DEBUG_LEVEL}" + + + +############################################################# +## Sanity checks +############################################################# + +if ! command -v socat >/dev/null 2>&1; then + log "err" "socat not found, but required." "${DEBUG_LEVEL}" + exit 1 +fi + + + +############################################################# +## Entry Point +############################################################# + +### +### Change uid/gid +### +set_uid "NEW_UID" +set_gid "NEW_GID" + + +### +### Set timezone +### +set_timezone "TIMEZONE" "${PHP_INI_PATH}" + + +### +### Set Logging +### +set_docker_logs \ + "DOCKER_LOGS" \ + "${FPM_LOG_DIR}" \ + "${FPM_ERROR_LOG_CFG}" \ + "${FPM_ACCESS_LOG_CFG}" + + +### +### Setup postfix +### +set_postfix "ENABLE_MAIL" + + +### +### Validate socat port forwards +### +if ! port_forward_validate "FORWARD_PORTS_TO_LOCALHOST"; then + exit 1 +fi + + +### +### Supervisor: socat +### +for line in $( port_forward_get_lines "FORWARD_PORTS_TO_LOCALHOST" ); do + lport="$( port_forward_get_lport "${line}" )" + rhost="$( port_forward_get_rhost "${line}" )" + rport="$( port_forward_get_rport "${line}" )" + supervisor_add_service "socat-${lport}-${rhost}-${rport}" "/usr/bin/socat tcp-listen:${lport},reuseaddr,fork tcp:${rhost}:${rport}" "${SUPERVISOR_CONFD}" +done + + +### +### Supervisor: rsyslogd & postfix +### +if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then + supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${SUPERVISOR_CONFD}" "1" + supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${SUPERVISOR_CONFD}" +fi + + +### +### Supervisor: php-fpm +### +supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${SUPERVISOR_CONFD}" + + +### +### Copy custom *.ini files +### +copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_REAL_INI_DIR}" + + +### +### Start +### +exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf diff --git a/Dockerfiles/prod/data/postfix.sh b/Dockerfiles/prod/data/postfix.sh new file mode 100755 index 0000000..8f9f579 --- /dev/null +++ b/Dockerfiles/prod/data/postfix.sh @@ -0,0 +1,95 @@ +#!/usr/bin/env bash +# +# Wrapper to have postfix run in foreground +# mode in order to be called by supvervisord +# +# +# CREDITS: +# This script is mostly based on the following Gist: +# https://gist.github.com/chrisnew/b0c1b8d310fc5ceaeac4 +# + + + +### +### Be strict +### +set -e +set -u +set -o pipefail + + +### +### Variables +### +if [ -f "/etc/alpine-release" ]; then + MAILLOG="/var/log/maillog" +elif [ -f "/etc/debian_version" ]; then + MAILLOG="/var/log/mail.log" +else + MAILLOG="/var/log/maillog" +fi + +MAILPID="/var/spool/postfix/pid/master.pid" + + +### +### Sanity checks +### +if ! command -v pidof >/dev/null 2>&1; then + echo "pidof is required for cleaning up tail command." + exit 1 +fi + +# Give rsyslogd some time to start up +sleep 2 + +if ! pidof rsyslogd >/dev/null 2>&1; then + echo "rsyslogd is not running, but required for mail logging." + exit 1 +fi + +# force new copy of hosts there (otherwise links could be outdated) +# TODO: check if required +#cp /etc/hosts /var/spool/postfix/etc/hosts + + +### +### Trap signals +### +trap "postfix stop" SIGINT +trap "postfix stop" SIGTERM +trap "postfix reload" SIGHUP + + +### +### Startup +### + +# start postfix +postfix start + +# Capture output +tail -qF -n 0 "${MAILLOG}" & +tail_pid="${?}" + + +### +### Warm-up time +### +sleep 3 + + +### +### Wait for kill signales +### +while kill -0 "$(cat "${MAILPID}")" >/dev/null 2>&1; do + # Check every second + sleep 1 +done + + +### +### Clean-up +### +kill "${tail_pid}" diff --git a/Dockerfiles/prod/data/supervisord.conf b/Dockerfiles/prod/data/supervisord.conf new file mode 100644 index 0000000..6b95366 --- /dev/null +++ b/Dockerfiles/prod/data/supervisord.conf @@ -0,0 +1,9 @@ +[supervisord] +user = root +nodaemon = true +logfile = /var/log/supervisor/supervisord.log +pidfile = /var/run/supervisord.pid +childlogdir = /var/log/supervisor + +[include] +files = /etc/supervisor/conf.d/*.conf diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..83d80be --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +# MIT License + +**Copyright (c) 2018 [cytopia](https://github.com/cytopia)** + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/build/ansible/DOCKERFILES/Dockerfile-base.j2 b/build/ansible/DOCKERFILES/Dockerfile-base.j2 new file mode 100644 index 0000000..969bd0a --- /dev/null +++ b/build/ansible/DOCKERFILES/Dockerfile-base.j2 @@ -0,0 +1,73 @@ +# Auto-generated via Ansible +FROM php:{{ php_version }}-fpm +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM {{ php_version }} Image" \ + image="devilbox/php-fpm" \ + tag="{{ php_version }}-base" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV MY_USER="devilbox" \ + MY_GROUP="devilbox" \ + MY_UID="1000" \ + MY_GID="1000" + + +### +### 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 +### +RUN set -x \ + && apt-get update \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d /docker-entrypoint.d +COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf +COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf + + +{% if debug %} +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ + && /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 + + +{% endif %} +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 new file mode 100644 index 0000000..dc2304e --- /dev/null +++ b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 @@ -0,0 +1,349 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:{{ php_version }}-base +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM {{ php_version }} Image" \ + image="devilbox/php-fpm" \ + tag="{{ php_version }}-mods" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs +### +ENV BUILD_DEPS \ +{# ---- PHP Built-in Extensions ---- #} +{% for ext in php_builtin_extensions.keys() %} +{# Enabled #} +{% if php_version in php_builtin_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %} +{# Version specific build_deps available #} +{% if php_version in php_builtin_extensions[ext] and 'build_dep' in php_builtin_extensions[ext][php_version] %} +{% for dep in php_builtin_extensions[ext][php_version]['build_dep'] %} + {{ dep }} \ +{% endfor %} +{# General build_deps available? #} +{% elif 'all' in php_builtin_extensions[ext] and 'build_dep' in php_builtin_extensions[ext]['all'] %} +{% for dep in php_builtin_extensions[ext]['all']['build_dep'] %} + {{ dep }} \ +{% endfor %} +{% endif %} +{% endif %} +{% endif %} +{% endfor %} +{# ---- PHP PECL Extensions ---- #} +{% for ext in php_pecl_extensions.keys() %} +{# Enabled #} +{% if php_version in php_pecl_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %} +{# Version specific build_deps available #} +{% if php_version in php_pecl_extensions[ext] and 'build_dep' in php_pecl_extensions[ext][php_version] %} +{% for dep in php_pecl_extensions[ext][php_version]['build_dep'] %} + {{ dep }} \ +{% endfor %} +{# General build_deps available? #} +{% elif 'all' in php_pecl_extensions[ext] and 'build_dep' in php_pecl_extensions[ext]['all'] %} +{% for dep in php_pecl_extensions[ext]['all']['build_dep'] %} + {{ dep }} \ +{% endfor %} +{% endif %} +{% endif %} +{% endif %} +{% endfor %} +{# ---- PHP GIT Extensions git requirement ---- #} +{% if php_git_extensions %} + git \ +{% endif %} +{# ---- PHP GIT Extensions ---- #} +{% for ext in php_git_extensions.keys() %} +{# Enabled #} +{% if php_version in php_git_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %} +{# Version specific build_deps available #} +{% if php_version in php_git_extensions[ext] and 'build_dep' in php_git_extensions[ext][php_version] %} +{% for dep in php_git_extensions[ext][php_version]['build_dep'] %} + {{ dep }} \ +{% endfor %} +{# General build_deps available? #} +{% elif 'all' in php_git_extensions[ext] and 'build_dep' in php_git_extensions[ext]['all'] %} +{% for dep in php_git_extensions[ext]['all']['build_dep'] %} + {{ dep }} \ +{% endfor %} +{% endif %} +{% endif %} +{% endif %} +{% endfor %} + ca-certificates + +ENV RUN_DEPS \ +{# ---- PHP Built-in Extensions ---- #} +{% for ext in php_builtin_extensions.keys() %} +{# Enabled #} +{% if php_version in php_builtin_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %} +{# Version specific run_deps available #} +{% if php_version in php_builtin_extensions[ext] and 'run_dep' in php_builtin_extensions[ext][php_version] %} +{% for dep in php_builtin_extensions[ext][php_version]['run_dep'] %} + {{ dep }} \ +{% endfor %} +{# General config available? #} +{% elif 'all' in php_builtin_extensions[ext] and 'run_dep' in php_builtin_extensions[ext]['all'] %} +{% for dep in php_builtin_extensions[ext]['all']['run_dep'] %} + {{ dep }} \ +{% endfor %} +{% endif %} +{% endif %} +{% endif %} +{% endfor %} +{# ---- PHP PECL Extensions ---- #} +{% for ext in php_pecl_extensions.keys() %} +{# Enabled #} +{% if php_version in php_pecl_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %} +{# Version specific run_deps available #} +{% if php_version in php_pecl_extensions[ext] and 'run_dep' in php_pecl_extensions[ext][php_version] %} +{% for dep in php_pecl_extensions[ext][php_version]['run_dep'] %} + {{ dep }} \ +{% endfor %} +{# General run_deps available? #} +{% elif 'all' in php_pecl_extensions[ext] and 'run_dep' in php_pecl_extensions[ext]['all'] %} +{% for dep in php_pecl_extensions[ext]['all']['run_dep'] %} + {{ dep }} \ +{% endfor %} +{% endif %} +{% endif %} +{% endif %} +{% endfor %} +{# ---- PHP GIT Extensions ---- #} +{% for ext in php_git_extensions.keys() %} +{# Enabled #} +{% if php_version in php_git_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %} +{# Version specific run_deps available #} +{% if php_version in php_git_extensions[ext] and 'run_dep' in php_git_extensions[ext][php_version] %} +{% for dep in php_git_extensions[ext][php_version]['run_dep'] %} + {{ dep }} \ +{% endfor %} +{# General run_deps available? #} +{% elif 'all' in php_git_extensions[ext] and 'run_dep' in php_git_extensions[ext]['all'] %} +{% for dep in php_git_extensions[ext]['all']['run_dep'] %} + {{ dep }} \ +{% endfor %} +{% endif %} +{% endif %} +{% endif %} +{% endfor %} + ca-certificates + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${BUILD_DEPS} \ + \ + \ +{# ---- PHP Built-in Extensions ---- #} +{% for ext in php_builtin_extensions.keys() %} +{# Enabled #} +{% if php_version in php_builtin_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %} +{# Version specific command available #} +{% if php_version in php_builtin_extensions[ext] and 'command' in php_builtin_extensions[ext][php_version] %} + && {{ php_builtin_extensions[ext][php_version]['command'] }} \ +{# General command available? #} +{% elif 'all' in php_builtin_extensions[ext] and 'command' in php_builtin_extensions[ext]['all'] %} + && {{ php_builtin_extensions[ext]['all']['command'] }} \ +{% endif %} +{# Version specific configure available #} +{% if php_version in php_builtin_extensions[ext] and 'configure' in php_builtin_extensions[ext][php_version] %} + && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ php_builtin_extensions[ext][php_version]['configure'] }} \ +{# General configure available? #} +{% elif 'all' in php_builtin_extensions[ext] and 'configure' in php_builtin_extensions[ext]['all'] %} + && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ php_builtin_extensions[ext]['all']['configure'] }} \ +{% endif %} + && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ +{% endif %} +{% endif %} +{% endfor %} + \ + \ +{# ---- PHP PECL Extensions ---- #} +{% for ext in php_pecl_extensions.keys() %} +{# Enabled #} +{% if php_version in php_pecl_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %} +{# Version specific command available #} +{% if php_version in php_pecl_extensions[ext] and 'command' in php_pecl_extensions[ext][php_version] %} + && {{ php_pecl_extensions[ext][php_version]['command'] }} \ +{# General command available? #} +{% elif 'all' in php_pecl_extensions[ext] and 'command' in php_pecl_extensions[ext]['all'] %} + && {{ php_pecl_extensions[ext]['all']['command'] }} \ +{# Version specific name available #} +{% elif php_version in php_pecl_extensions[ext] and 'alt_name' in php_pecl_extensions[ext][php_version] %} + && pecl install {{ php_pecl_extensions[ext][php_version]['alt_name'] }} \ +{# General name available? #} +{% elif 'all' in php_pecl_extensions[ext] and 'alt_name' in php_pecl_extensions[ext]['all'] %} + && pecl install {{ php_pecl_extensions[ext]['all']['alt_name'] }} \ +{% else %} + && pecl install {{ ext }} \ +{% endif %} +{# Version specific module available #} +{% if php_version in php_pecl_extensions[ext] and 'alt_module' in php_pecl_extensions[ext][php_version] %} + && docker-php-ext-enable {{ php_pecl_extensions[ext][php_version]['alt_module'] }} \ +{# General module available? #} +{% elif 'all' in php_pecl_extensions[ext] and 'alt_module' in php_pecl_extensions[ext]['all'] %} + && docker-php-ext-enable {{ php_pecl_extensions[ext]['all']['alt_module'] }} \ +{% else %} + && docker-php-ext-enable {{ ext }} \ +{% endif %} +{% endif %} +{% endif %} +{% endfor %} + \ + \ +{# ---- PHP GIT Extensions ---- #} +{% for ext in php_git_extensions.keys() %} +{# Enabled #} +{% if php_version in php_git_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %} +{# Version specific url available #} +{% if php_version in php_git_extensions[ext] and 'git_url' in php_git_extensions[ext][php_version] %} + && git clone -v {{ php_git_extensions[ext][php_version]['git_url'] }} /tmp/{{ ext }} \ +{# General url available? #} +{% else %} + && git clone -v {{ php_git_extensions[ext]['all']['git_url'] }} /tmp/{{ ext }} \ +{% endif %} +{# Version specific ref available #} +{% if php_version in php_git_extensions[ext] and 'git_ref' in php_git_extensions[ext][php_version] %} + && cd /tmp/{{ ext }} \ + && git checkout {{ php_git_extensions[ext][php_version]['git_ref'] }} \ +{# General ref available? #} +{% elif 'all' in php_git_extensions[ext] and 'git_ref' in php_git_extensions[ext]['all'] %} + && cd /tmp/{{ ext }} \ + && git checkout {{ php_git_extensions[ext]['all']['git_ref'] }} \ +{% endif %} +{# Version specific command available #} +{% if php_version in php_git_extensions[ext] and 'command' in php_git_extensions[ext][php_version] %} + && cd /tmp/{{ ext }} && {{ php_git_extensions[ext][php_version]['command'] }} \ +{# General command available? #} +{% else %} + && cd /tmp/{{ ext }} && {{ php_git_extensions[ext]['all']['command'] }} \ +{% endif %} +{# Version specific module available #} +{% if php_version in php_git_extensions[ext] and 'alt_module' in php_git_extensions[ext][php_version] %} + && docker-php-ext-enable {{ php_git_extensions[ext][php_version]['alt_module'] }} \ +{# General module available? #} +{% elif 'all' in php_git_extensions[ext] and 'alt_module' in php_git_extensions[ext]['all'] %} + && docker-php-ext-enable {{ php_git_extensions[ext]['all']['alt_module'] }} \ +{% else %} + && docker-php-ext-enable {{ ext }} \ +{% endif %} +{# Cleanup #} + && cd / && rm -rf /tmp/{{ ext }} \ +{% endif %} +{% endif %} +{% endfor %} + \ + \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + ${BUILD_DEPS} \ + \ + \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ${RUN_DEPS} \ + && rm -rf /var/lib/apt/lists/* \ + && update-ca-certificates \ + && find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true + + +{% if debug %} +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ + && /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 + +RUN set -x \ +{# ---- PHP Built-in Extensions ---- #} +{% for ext in php_builtin_extensions.keys() %} +{# Enabled #} +{% if php_version in php_builtin_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %} +{% if ext == 'opcache' %} + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ +{% else %} + && php -m | grep -oiE '^{{ ext }}$' \ + && php-fpm -m | grep -oiE '^{{ ext }}$' \ +{% endif %} +{% endif %} +{% endif %} +{% endfor %} +{# ---- PHP PECL Extensions ---- #} +{% for ext in php_pecl_extensions.keys() %} +{# Enabled #} +{% if php_version in php_pecl_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %} +{% if ext == 'opcache' %} + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ +{% else %} + && php -m | grep -oiE '^{{ ext }}$' \ + && php-fpm -m | grep -oiE '^{{ ext }}$' \ +{% endif %} +{% endif %} +{% endif %} +{% endfor %} +{# ---- PHP GIT Extensions ---- #} +{% for ext in php_git_extensions.keys() %} +{# Enabled #} +{% if php_version in php_git_extensions[ext]['enabled'] %} +{# Not Disabled #} +{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %} +{% if ext == 'opcache' %} + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ +{% else %} + && php -m | grep -oiE '^{{ ext }}$' \ + && php-fpm -m | grep -oiE '^{{ ext }}$' \ +{% endif %} +{% endif %} +{% endif %} +{% endfor %} + && true + + +{% endif %} +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/build/ansible/DOCKERFILES/Dockerfile-prod.j2 b/build/ansible/DOCKERFILES/Dockerfile-prod.j2 new file mode 100644 index 0000000..df75196 --- /dev/null +++ b/build/ansible/DOCKERFILES/Dockerfile-prod.j2 @@ -0,0 +1,91 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:{{ php_version }}-mods +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM {{ php_version }} Image" \ + image="devilbox/php-fpm" \ + tag="{{ php_version }}-prod" \ + vendor="devilbox" \ + license="MIT" + + +### +### Install +### +RUN set -x \ + && apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \ + locales-all \ + postfix \ + postfix-pcre \ + rsyslog \ + socat \ + supervisor \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* \ + \ + && rm -rf /etc/supervisor* \ + && mkdir -p /etc/supervisor/conf.d \ + && mkdir -p /var/log/supervisor + + + +### +### Configure +### +RUN set -x \ + && { \ + echo "[mail function]"; \ + echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ + echo ";mail.force_extra_parameters ="; \ + echo "mail.add_x_header = On"; \ + echo "mail.log = /var/log/php/mail.log"; \ + } > /usr/local/etc/php/conf.d/devilbox-mail.ini + + +{% if debug %} +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ + && /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 + + +{% endif %} +### +### 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-modules.d +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/build/ansible/README.md b/build/ansible/README.md new file mode 100644 index 0000000..c2a770c --- /dev/null +++ b/build/ansible/README.md @@ -0,0 +1,6 @@ +Ansible is used to generate Dockerfiles + + +```bash +ansible-playbook generate.yml +``` diff --git a/build/ansible/ansible.cfg b/build/ansible/ansible.cfg new file mode 100644 index 0000000..5831c61 --- /dev/null +++ b/build/ansible/ansible.cfg @@ -0,0 +1,3 @@ +[defaults] +roles_path = ./roles +inventory = inventory diff --git a/build/ansible/generate.yml b/build/ansible/generate.yml new file mode 100644 index 0000000..98f769b --- /dev/null +++ b/build/ansible/generate.yml @@ -0,0 +1,8 @@ +--- + +- hosts: all + gather_facts: False + roles: + - template + tags: + - template diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml new file mode 100644 index 0000000..e3a471e --- /dev/null +++ b/build/ansible/group_vars/all.yml @@ -0,0 +1,479 @@ +--- + +template_files: + - src: DOCKERFILES/Dockerfile-base.j2 + dst: "../../Dockerfiles/base/Dockerfile-{{ php_version }}" + - src: DOCKERFILES/Dockerfile-mods.j2 + dst: "../../Dockerfiles/mods/Dockerfile-{{ php_version }}" + - src: DOCKERFILES/Dockerfile-prod.j2 + dst: "../../Dockerfiles/prod/Dockerfile-{{ php_version }}" + + + +# Adds self-validating checks to Dockerfile +# turn off for final build +debug: True + + +php_all_versions: + - 5.4 + - 5.5 + - 5.6 + - 7.0 + - 7.1 + - 7.2 + + +php_conf_dir: /usr/local/etc/php.d + + +### +### Available GIT extensions +### +### : +### enabled: [] +### disabled: [] +### all: +### git_url: Url for git clone +### git_ref: git branch tag, commit or shell command to retrieve a tag or commit +### command: command to install +### alt_module: alternative module name to enable (precedence over .so) +### build_dep: +### run_dep: +### +php_git_extensions: + phalcon: + enabled: "{{ php_all_versions }}" + 5.4: + git_ref: phalcon-v2.0.13 + all: + git_url: https://github.com/phalcon/cphalcon + git_ref: $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') + command: cd build && ./install + uploadprogress: + enabled: "{{ php_all_versions }}" + disabled: [5.4, 5.5, 5.6] + all: + git_url: https://github.com/php/pecl-php-uploadprogress + git_ref: master + command: phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install + +### +### Available PECL extensions +### +### : +### enabled: [] +### disabled: [] +### all: +### command: alternative command to install (precedence over and +### alt_name: alternative name of to install (precedence over +### alt_module: alternative module name to enable (precedence over .so) +### build_dep: +### run_dep: +### +php_pecl_extensions: + #apc: + # enabled: "{{ php_all_versions }}" + # disabled: [5.5, 5.6, 7.0, 7.1, 7.2] + #apcu_bc: + # enabled: "{{ php_all_versions }}" + # disabled: [5.4, 5.5, 5.6] + # all: + # alt_module: apc + apcu: + enabled: "{{ php_all_versions }}" + 5.4: + alt_name: apcu-4.0.11 + 5.5: + alt_name: apcu-4.0.11 + 5.6: + alt_name: apcu-4.0.11 + amqp: + enabled: "{{ php_all_versions }}" + 7.2: + run_dep: [librabbitmq4] + all: + command: echo "/usr" | pecl install amqp + build_dep: [librabbitmq-dev] + run_dep: [librabbitmq1] + igbinary: + enabled: "{{ php_all_versions }}" + imagick: + enabled: "{{ php_all_versions }}" + 7.2: + run_dep: [libmagickwand-6.q16-3] + all: + build_dep: [libmagickwand-dev] + run_dep: [libmagickwand-6.q16-2] + mcrypt: + enabled: "{{ php_all_versions }}" + disabled: [5.4, 5.5, 5.6, 7.0, 7.1] # Already avail by default + 7.2: + alt_name: mcrypt-1.0.1 + build_dep: [libmcrypt-dev] + run_dep: [libmcrypt4] + memcache: + enabled: "{{ php_all_versions }}" + disabled: [7.0, 7.1, 7.2] + all: + build_dep: [zlib1g-dev] + memcached: + enabled: "{{ php_all_versions }}" + 5.4: + alt_name: memcached-2.2.0 + 5.5: + alt_name: memcached-2.2.0 + 5.6: + alt_name: memcached-2.2.0 + all: + build_dep: [zlib1g-dev, libmemcached-dev] + run_dep: [libmemcachedutil2] + mongodb: + enabled: "{{ php_all_versions }}" + 5.4: + alt_name: mongodb-1.2.11 + build_dep: [libssl-dev] + msgpack: + enabled: "{{ php_all_versions }}" + 5.4: + alt_name: msgpack-0.5.7 + 5.5: + alt_name: msgpack-0.5.7 + 5.6: + alt_name: msgpack-0.5.7 + redis: + enabled: "{{ php_all_versions }}" + swoole: + enabled: "{{ php_all_versions }}" + 5.4: + alt_name: swoole-1.9.23 + 5.5: + alt_name: swoole-1.9.23 + 5.6: + alt_name: swoole-1.9.23 + 7.2: + run_dep: [libnghttp2-14] + all: + build_dep: [libnghttp2-dev, libssl-dev, libnghttp2-5] + run_dep: [libnghttp2-5] + uploadprogress: + enabled: "{{ php_all_versions }}" + disabled: [7.2, 7.1, 7.0] + xdebug: + enabled: "{{ php_all_versions }}" + 5.4: + alt_name: xdebug-2.4.1 + 5.5: + alt_name: xdebug-2.5.5 + 5.6: + alt_name: xdebug-2.5.5 + + +### +### PHP Built-in Modules to enable +### +### will use e.g. 5.6 for PHP 5.6 as specific configuration +### or if not available, use all +### +### module-name: +### enabled: [ what php versions it is enabled for] +### disabled: [ what php versions it is disabled for] (precedence over enabled) +### '5.6': +### command: command to execute prior installation +### configure: custom configure command +### build_dep: +### run_dep: +### all: +### command: +### configure: +### build_dep: +### run_dep: +### +php_builtin_extensions: + bcmath: + enabled: "{{ php_all_versions }}" + bz2: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libbz2-dev] + calendar: + enabled: "{{ php_all_versions }}" + ctype: + enabled: "{{ php_all_versions }}" + curl: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libcurl4-openssl-dev] + dba: + enabled: "{{ php_all_versions }}" + dom: + enabled: "{{ php_all_versions }}" + all: + configure: --with-libxml-dir=/usr + build_dep: [libxml2-dev] + enchant: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libenchant-dev] + run_dep: [libenchant1c2a] + exif: + enabled: "{{ php_all_versions }}" + fileinfo: + enabled: "{{ php_all_versions }}" + filter: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # Available by default + ftp: + enabled: "{{ php_all_versions }}" + all: + configure: --with-openssl-dir + build_dep: [libssl-dev] + gd: + enabled: "{{ php_all_versions }}" + 7.2: + 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 + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] + 7.1: + 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 --enable-gd-native-ttf + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] + run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev] + 7.0: + 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 --enable-gd-native-ttf + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] + run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev] + all: + command: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ + configure: --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 + build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev] + run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6] + gettext: + enabled: "{{ php_all_versions }}" + gmp: + enabled: "{{ php_all_versions }}" + all: + command: ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ + build_dep: [libgmp-dev] + hash: + enabled: "{{ php_all_versions }}" + iconv: + enabled: "{{ php_all_versions }}" + imap: + enabled: "{{ php_all_versions }}" + all: + command: ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ + configure: --with-kerberos --with-imap-ssl --with-imap + build_dep: [libc-client-dev, libkrb5-dev, libcurl4-openssl-dev] + run_dep: [libc-client2007e] + interbase: + enabled: "{{ php_all_versions }}" + disabled: [5.4] + all: + build_dep: [libfbclient2, libib-util, firebird-dev] + run_dep: [libfbclient2] + intl: + enabled: "{{ php_all_versions }}" + 7.2: + run_dep: [libicu57] + all: + build_dep: [libicu-dev] + run_dep: [libicu52] + json: + enabled: "{{ php_all_versions }}" + ldap: + enabled: "{{ php_all_versions }}" + all: + command: ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ + configure: --with-ldap --with-ldap-sasl + build_dep: [libldap2-dev, libsasl2-dev] + libxml: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # Available by default + mbstring: + enabled: "{{ php_all_versions }}" + mcrypt: + enabled: "{{ php_all_versions }}" + disabled: [7.2] + 7.2: + build_dep: [] + run_dep: [] + all: + run_dep: [libmcrypt4] + build_dep: [libmcrypt-dev] + mysql: + enabled: "{{ php_all_versions }}" + disabled: [7.0, 7.1, 7.2] + mysqli: + enabled: "{{ php_all_versions }}" + disabled: [7.0, 7.1, 7.2] + mysqlnd: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # Available by default + oci8: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing + odbc: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # TODO: sqlext.h' not found! + opcache: + enabled: "{{ php_all_versions }}" + disabled: [5.4] + openssl: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # Available by default + pcntl: + enabled: "{{ php_all_versions }}" + pcre: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # Available by default + pdo: + enabled: "{{ php_all_versions }}" + pdo_dblib: + enabled: "{{ php_all_versions }}" + all: + command: ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ + build_dep: [freetds-dev] + run_dep: [libsybdb5] + pdo_firebird: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libfbclient2, libib-util, firebird-dev] + run_dep: [libfbclient2] + pdo_mysql: + enabled: "{{ php_all_versions }}" + pdo_oci: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing + pdo_odbc: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # TODO: Build errors + pdo_pgsql: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libpq-dev] + run_dep: [libpq5] + pdo_sqlite: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libsqlite3-dev] + pgsql: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libpq-dev] + run_dep: [libpq5] + phar: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libssl-dev] + posix: + enabled: "{{ php_all_versions }}" + pspell: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libpspell-dev] + run_dep: [libaspell15] + readline: + enabled: "{{ php_all_versions }}" + disabled: [5.4] + all: + build_dep: [libedit-dev, libreadline-dev] + recode: + enabled: "{{ php_all_versions }}" + all: + build_dep: [librecode-dev] + run_dep: [librecode0] + session: + enabled: "{{ php_all_versions }}" + all: + configure: --with-mm + build_dep: [libmm-dev] + shmop: + enabled: "{{ php_all_versions }}" + simplexml: + enabled: "{{ php_all_versions }}" + all: + configure: --with-libxml-dir=/usr + build_dep: [libxml2-dev] + snmp: + enabled: "{{ php_all_versions }}" + all: + configure: --with-openssl-dir + build_dep: [libssl-dev, libsnmp-dev, snmp] + run_dep: [snmp] + soap: + enabled: "{{ php_all_versions }}" + all: + configure: --with-libxml-dir=/usr + build_dep: [libxml2-dev] + sockets: + enabled: "{{ php_all_versions }}" + sodium: + enabled: "{{ php_all_versions }}" + disabled: [5.4, 5.5, 5.6, 7.0, 7.1] + all: + build_dep: [libsodium-dev] + spl: + enabled: "{{ php_all_versions }}" + disabled: "{{ php_all_versions }}" # TODO: Did not work + sysvmsg: + enabled: "{{ php_all_versions }}" + sysvsem: + enabled: "{{ php_all_versions }}" + sysvshm: + enabled: "{{ php_all_versions }}" + tidy: + enabled: "{{ php_all_versions }}" + 7.2: + run_dep: [libtidy5] + all: + build_dep: [libtidy-dev] + run_dep: [libtidy-0.99-0] + tokenizer: + enabled: "{{ php_all_versions }}" + wddx: + enabled: "{{ php_all_versions }}" + all: + configure: --with-libxml-dir=/usr + build_dep: [libxml2-dev] + xml: + enabled: "{{ php_all_versions }}" + all: + configure: --with-libxml-dir=/usr + build_dep: [libxml2-dev] + xmlreader: + enabled: "{{ php_all_versions }}" + disabled: [7.0, 7.1, 7.2] # build errors + all: + configure: --with-libxml-dir=/usr + build_dep: [libxml2-dev] + xmlrpc: + enabled: "{{ php_all_versions }}" + all: + configure: --with-libxml-dir=/usr --with-iconv-dir=/usr + build_dep: [libxml2-dev] + xmlwriter: + enabled: "{{ php_all_versions }}" + all: + configure: --with-libxml-dir=/usr + build_dep: [libxml2-dev] + xsl: + enabled: "{{ php_all_versions }}" + all: + build_dep: [libxslt-dev] + run_dep: [libxslt1.1] + zip: + enabled: "{{ php_all_versions }}" + 5.4: + configure: --with-zlib-dir=/usr --with-pcre-dir=/usr + build_dep: [zlib1g-dev] + run_dep: [] + 5.5: + configure: --with-zlib-dir=/usr --with-pcre-dir=/usr + build_dep: [zlib1g-dev] + run_dep: [] + 7.2: + run_dep: [libzip4] + all: + configure: --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip + build_dep: [zlib1g-dev, libzip-dev] + run_dep: [libzip2] diff --git a/build/ansible/inventory b/build/ansible/inventory new file mode 100644 index 0000000..96128d3 --- /dev/null +++ b/build/ansible/inventory @@ -0,0 +1,7 @@ +[php] +php-5.4 php_version=5.4 ansible_connection=local +php-5.5 php_version=5.5 ansible_connection=local +php-5.6 php_version=5.6 ansible_connection=local +php-7.0 php_version=7.0 ansible_connection=local +php-7.1 php_version=7.1 ansible_connection=local +php-7.2 php_version=7.2 ansible_connection=local diff --git a/build/ansible/roles/template/defaults/main.yml b/build/ansible/roles/template/defaults/main.yml new file mode 100644 index 0000000..f75a06d --- /dev/null +++ b/build/ansible/roles/template/defaults/main.yml @@ -0,0 +1,5 @@ +--- + +template_files: [] +# - src: +# dst: diff --git a/build/ansible/roles/template/tasks/main.yml b/build/ansible/roles/template/tasks/main.yml new file mode 100644 index 0000000..4d32a73 --- /dev/null +++ b/build/ansible/roles/template/tasks/main.yml @@ -0,0 +1,10 @@ +--- + +- name: render template + template: + src: "{{ item.src }}" + dest: "{{ item.dst }}" + force: True + mode: 0644 + with_items: + - "{{ template_files }}" diff --git a/build/gen-readme.sh b/build/gen-readme.sh new file mode 100755 index 0000000..7d4c789 --- /dev/null +++ b/build/gen-readme.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +set -e +set -u +set -x + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + + + +get_modules() { + tag="${1}" + + PHP_MODULES="$( docker run -it --entrypoint=php devilbox/php-fpm:${tag} -m )" + + PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/^\[.*//g' )" # Remove PHP Modules headlines + PHP_MODULES="$( echo "${PHP_MODULES}" | sort -fu )" # Unique + PHP_MODULES="$( echo "${PHP_MODULES}" | sed '/^\s*$/d' )" # Remove empty lines + PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\r\n' ',' )" # Newlines to commas + PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,,/,/g' )" # Remove PHP Modules headlines + PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,$//g' )" # Remove trailing comma + PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,/, /g' )" # Add space to comma + + echo "${PHP_MODULES}" +} + + +sed -i'' "s|.*<\/td>|$( get_modules "5.4-base" )<\/td>|g" "${CWD}/../README.md" +sed -i'' "s|.*<\/td>|$( get_modules "5.4-mods" )<\/td>|g" "${CWD}/../README.md" + +sed -i'' "s|.*<\/td>|$( get_modules "5.5-base" )<\/td>|g" "${CWD}/../README.md" +sed -i'' "s|.*<\/td>|$( get_modules "5.5-mods" )<\/td>|g" "${CWD}/../README.md" + +sed -i'' "s|.*<\/td>|$( get_modules "5.6-base" )<\/td>|g" "${CWD}/../README.md" +sed -i'' "s|.*<\/td>|$( get_modules "5.6-mods" )<\/td>|g" "${CWD}/../README.md" + +sed -i'' "s|.*<\/td>|$( get_modules "7.0-base" )<\/td>|g" "${CWD}/../README.md" +sed -i'' "s|.*<\/td>|$( get_modules "7.0-mods" )<\/td>|g" "${CWD}/../README.md" + +sed -i'' "s|.*<\/td>|$( get_modules "7.1-base" )<\/td>|g" "${CWD}/../README.md" +sed -i'' "s|.*<\/td>|$( get_modules "7.1-mods" )<\/td>|g" "${CWD}/../README.md" + +sed -i'' "s|.*<\/td>|$( get_modules "7.2-base" )<\/td>|g" "${CWD}/../README.md" +sed -i'' "s|.*<\/td>|$( get_modules "7.2-mods" )<\/td>|g" "${CWD}/../README.md" + From a72968ede682c69e90a825683462c4bba34d2439 Mon Sep 17 00:00:00 2001 From: cytopia Date: Fri, 23 Feb 2018 09:04:33 +0100 Subject: [PATCH 02/35] Add work docker image flavour --- Dockerfiles/work/Dockerfile-5.4 | 313 +++++++++++++++++ Dockerfiles/work/Dockerfile-5.5 | 313 +++++++++++++++++ Dockerfiles/work/Dockerfile-5.6 | 313 +++++++++++++++++ Dockerfiles/work/Dockerfile-7.0 | 313 +++++++++++++++++ Dockerfiles/work/Dockerfile-7.1 | 313 +++++++++++++++++ Dockerfiles/work/Dockerfile-7.2 | 313 +++++++++++++++++ Dockerfiles/work/data/bash-devilbox | 60 ++++ .../40-mysqldump-secure.sh | 83 +++++ Dockerfiles/work/data/docker-entrypoint.sh | 139 ++++++++ Dockerfiles/work/data/sudo-devilbox | 7 + build/ansible/DOCKERFILES/Dockerfile-work.j2 | 321 ++++++++++++++++++ build/ansible/group_vars/all.yml | 3 + 12 files changed, 2491 insertions(+) create mode 100644 Dockerfiles/work/Dockerfile-5.4 create mode 100644 Dockerfiles/work/Dockerfile-5.5 create mode 100644 Dockerfiles/work/Dockerfile-5.6 create mode 100644 Dockerfiles/work/Dockerfile-7.0 create mode 100644 Dockerfiles/work/Dockerfile-7.1 create mode 100644 Dockerfiles/work/Dockerfile-7.2 create mode 100644 Dockerfiles/work/data/bash-devilbox create mode 100755 Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh create mode 100755 Dockerfiles/work/data/docker-entrypoint.sh create mode 100644 Dockerfiles/work/data/sudo-devilbox create mode 100644 build/ansible/DOCKERFILES/Dockerfile-work.j2 diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 new file mode 100644 index 0000000..4c15f79 --- /dev/null +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.4-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.4 Image" \ + image="devilbox/php-fpm" \ + tag="5.4-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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' \ +# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +# && rm -rf /usr/local/src/laravel-installer/laravel/.git +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## Mysqldump-secure +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 \ +# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' +# +## Awesome-CI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 +# +## Awesome-CI requirements +#RUN set -x \ +# && gem install mdl \ +# && gem install scss_lint \ +# && npm install -g eslint \ +# && npm install -g jsonlint \ +# && npm install -g mdlint \ +# && npm install -g gulp \ +# && rm -rf /root/.gem \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Grunt +#RUN set -x \ +# && npm install -g grunt \ +# && npm install -g grunt-cli \ +# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Webpack +#RUN set -x \ +# && npm install -g --save-dev webpack \ +# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Linuxbrew +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 update' \ +# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ +# && rm -rf /home/${MY_USER}/.cache +# +# +# +#### +#### 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/bash-custom.d/ ]; then"; \ +# echo " for f in /etc/bash-custom.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 \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.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 + + +### +### Copy files +### +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/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 new file mode 100644 index 0000000..837835c --- /dev/null +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.5-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.5 Image" \ + image="devilbox/php-fpm" \ + tag="5.5-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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' \ +# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +# && rm -rf /usr/local/src/laravel-installer/laravel/.git +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## Mysqldump-secure +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 \ +# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' +# +## Awesome-CI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 +# +## Awesome-CI requirements +#RUN set -x \ +# && gem install mdl \ +# && gem install scss_lint \ +# && npm install -g eslint \ +# && npm install -g jsonlint \ +# && npm install -g mdlint \ +# && npm install -g gulp \ +# && rm -rf /root/.gem \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Grunt +#RUN set -x \ +# && npm install -g grunt \ +# && npm install -g grunt-cli \ +# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Webpack +#RUN set -x \ +# && npm install -g --save-dev webpack \ +# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Linuxbrew +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 update' \ +# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ +# && rm -rf /home/${MY_USER}/.cache +# +# +# +#### +#### 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/bash-custom.d/ ]; then"; \ +# echo " for f in /etc/bash-custom.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 \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ + && /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 + + +### +### Copy files +### +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/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 new file mode 100644 index 0000000..9e11d98 --- /dev/null +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.6-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.6 Image" \ + image="devilbox/php-fpm" \ + tag="5.6-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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' \ +# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +# && rm -rf /usr/local/src/laravel-installer/laravel/.git +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## Mysqldump-secure +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 \ +# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' +# +## Awesome-CI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 +# +## Awesome-CI requirements +#RUN set -x \ +# && gem install mdl \ +# && gem install scss_lint \ +# && npm install -g eslint \ +# && npm install -g jsonlint \ +# && npm install -g mdlint \ +# && npm install -g gulp \ +# && rm -rf /root/.gem \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Grunt +#RUN set -x \ +# && npm install -g grunt \ +# && npm install -g grunt-cli \ +# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Webpack +#RUN set -x \ +# && npm install -g --save-dev webpack \ +# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Linuxbrew +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 update' \ +# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ +# && rm -rf /home/${MY_USER}/.cache +# +# +# +#### +#### 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/bash-custom.d/ ]; then"; \ +# echo " for f in /etc/bash-custom.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 \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ + && /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 + + +### +### Copy files +### +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/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 new file mode 100644 index 0000000..f27e5f5 --- /dev/null +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.0-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.0 Image" \ + image="devilbox/php-fpm" \ + tag="7.0-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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' \ +# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +# && rm -rf /usr/local/src/laravel-installer/laravel/.git +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## Mysqldump-secure +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 \ +# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' +# +## Awesome-CI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 +# +## Awesome-CI requirements +#RUN set -x \ +# && gem install mdl \ +# && gem install scss_lint \ +# && npm install -g eslint \ +# && npm install -g jsonlint \ +# && npm install -g mdlint \ +# && npm install -g gulp \ +# && rm -rf /root/.gem \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Grunt +#RUN set -x \ +# && npm install -g grunt \ +# && npm install -g grunt-cli \ +# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Webpack +#RUN set -x \ +# && npm install -g --save-dev webpack \ +# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Linuxbrew +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 update' \ +# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ +# && rm -rf /home/${MY_USER}/.cache +# +# +# +#### +#### 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/bash-custom.d/ ]; then"; \ +# echo " for f in /etc/bash-custom.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 \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ + && /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 + + +### +### Copy files +### +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/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 new file mode 100644 index 0000000..a32024d --- /dev/null +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.1-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.1 Image" \ + image="devilbox/php-fpm" \ + tag="7.1-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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' \ +# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +# && rm -rf /usr/local/src/laravel-installer/laravel/.git +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## Mysqldump-secure +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 \ +# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' +# +## Awesome-CI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 +# +## Awesome-CI requirements +#RUN set -x \ +# && gem install mdl \ +# && gem install scss_lint \ +# && npm install -g eslint \ +# && npm install -g jsonlint \ +# && npm install -g mdlint \ +# && npm install -g gulp \ +# && rm -rf /root/.gem \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Grunt +#RUN set -x \ +# && npm install -g grunt \ +# && npm install -g grunt-cli \ +# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Webpack +#RUN set -x \ +# && npm install -g --save-dev webpack \ +# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Linuxbrew +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 update' \ +# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ +# && rm -rf /home/${MY_USER}/.cache +# +# +# +#### +#### 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/bash-custom.d/ ]; then"; \ +# echo " for f in /etc/bash-custom.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 \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ + && /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 + + +### +### Copy files +### +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/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 new file mode 100644 index 0000000..9c85fe5 --- /dev/null +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.2-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.2 Image" \ + image="devilbox/php-fpm" \ + tag="7.2-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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' \ +# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +# && rm -rf /usr/local/src/laravel-installer/laravel/.git +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## Mysqldump-secure +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 \ +# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' +# +## Awesome-CI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 +# +## Awesome-CI requirements +#RUN set -x \ +# && gem install mdl \ +# && gem install scss_lint \ +# && npm install -g eslint \ +# && npm install -g jsonlint \ +# && npm install -g mdlint \ +# && npm install -g gulp \ +# && rm -rf /root/.gem \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Grunt +#RUN set -x \ +# && npm install -g grunt \ +# && npm install -g grunt-cli \ +# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Webpack +#RUN set -x \ +# && npm install -g --save-dev webpack \ +# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Linuxbrew +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 update' \ +# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ +# && rm -rf /home/${MY_USER}/.cache +# +# +# +#### +#### 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/bash-custom.d/ ]; then"; \ +# echo " for f in /etc/bash-custom.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 \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ + && /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 + + +### +### Copy files +### +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/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/data/bash-devilbox b/Dockerfiles/work/data/bash-devilbox new file mode 100644 index 0000000..40351aa --- /dev/null +++ b/Dockerfiles/work/data/bash-devilbox @@ -0,0 +1,60 @@ +# Bash Completion +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + fi +fi + +# Locale +export LC_ALL=en_US.UTF-8 + +# Aliases +alias ls='ls -p --color=always --group-directories-first' +alias l='ls -lp --color=always --group-directories-first' +alias ll='ls -alp --color=always --group-directories-first' +alias ..='cd ..' + +# Nice PS1 +PS1="\[\e[0;31m\]$(whoami)\[\e[0m\]@\[\e[0;36m\]php-$(php -v|head -1|grep -Eo '[0-9.]+'|head -1)\[\e[0m\] in \[\e[0;34m\]\w \[\e[0m\]\$ " + +# Show Intro +echo +echo "--------------------------------------------------------------------------------" +echo " _ _ _ _ " +echo " | | (_) | | " +echo " __| | _____ ___| | |__ _____ __" +echo " / _\` |/ _ \\ \\ / / | | '_ \\ / _ \\ \\/ /" +echo " | (_| | __/\\ V /| | | |_) | (_) > < " +echo " \\__,_|\\___| \\_/ |_|_|_.__/ \\___/_/\\_\\" +echo " " +echo " http://devilbox.org" +echo +echo +echo " | Available Tools | Project website |" +echo " |------------------|------------------------------|" +echo " | awesome-ci | gh: cytopia/awesome-ci |" +echo " | composer | https://getcomposer.org |" +echo " | druapl-console | https://drupalconsole.com |" +echo " | drush | http://www.drush.org |" +echo " | eslint | https://eslint.org |" +echo " | git | https://git-scm.com |" +echo " | laravel | gh: laravel/installer |" +echo " | linuxbrew | http://linuxbrew.sh |" +echo " | mysqldump-secure | https://mysqldump-secure.org |" +echo " | node | https://nodejs.org |" +echo " | npm | https://www.npmjs.com |" +echo " | phalcon-devtools | gh: phalcon/phalcon-devtools |" +echo " | symfony installer| gh: symfony/symfony-installer|" +echo " | webpack | ghL webpack/webpack |" +echo " | wpcli | https://wp-cli.org |" +echo +echo +echo " | Available Dirs | Description |" +echo " |------------------|------------------------------|" +echo " | /shared/httpd | Project base directory |" +echo " | /shared/backups | Backup directory |" +echo " | /var/mail | Email directory |" +echo " | /var/log | Log file directory |" +echo +echo "--------------------------------------------------------------------------------" +echo diff --git a/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh b/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh new file mode 100755 index 0000000..05c96f2 --- /dev/null +++ b/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh @@ -0,0 +1,83 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +set -e +set -u + + + +############################################################ +# Functions +############################################################ + +### +### Setup Postfix for catch-all +### +fix_mds_permissions() { + mds_cfg=/etc/mysqldump-secure.conf + mds_cnf=/etc/mysqldump-secure.cnf + mds_log=/var/log/mysqldump-secure.log + mds_dir=/shared/backups/mysql + + if [ ! -d "${mds_dir}" ]; then + run "mkdir -p ${mds_dir}" + fi + + run "chown ${MY_USER}:${MY_GROUP} ${mds_cfg}" + run "chown ${MY_USER}:${MY_GROUP} ${mds_cnf}" + run "chown ${MY_USER}:${MY_GROUP} ${mds_log}" + run "chown ${MY_USER}:${MY_GROUP} ${mds_dir}" + + unset -v mds_cfg + unset -v mds_cnf + unset -v mds_log + unset -v mds_dir +} + +set_mds_settings() { + mds_user_var="${1}" + mds_pass_var="${2}" + mds_host_var="${3}" + + mds_cnf=/etc/mysqldump-secure.cnf + + # MySQL user + if ! env_set "${mds_user_var}"; then + log "info" "\$${mds_user_var} not set for mysqldump-secure. Keeping default user." + else + mds_user_val="$( env_get "${mds_user_var}" )" + log "info" "\$${mds_user_var} set for mysqldump-secure. Changing to '${mds_user_val}'" + run "sed -i'' 's/^user.*/user = ${mds_user_val}/g' ${mds_cnf}" + fi + + # MySQL pass + if ! env_set "${mds_pass_var}"; then + log "info" "\$${mds_pass_var} not set for mysqldump-secure. Keeping default password." + else + mds_pass_val="$( env_get "${mds_pass_var}" )" + log "info" "\$${mds_pass_var} set for mysqldump-secure. Changing to '******'" + run "sed -i'' 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" + fi + + # MySQL host + if ! env_set "${mds_host_var}"; then + log "info" "\$${mds_host_var} not set for mysqldump-secure. Keeping default host." + else + mds_host_val="$( env_get "${mds_host_var}" )" + log "info" "\$${mds_host_var} set for mysqldump-secure. Changing to '${mds_host_val}'" + run "sed -i'' 's/^host.*/host = ${mds_host_val}/g' ${mds_cnf}" + fi + + unset -v mds_user_var + unset -v mds_pass_var + unset -v mds_host_var + unset -v mds_user_val + unset -v mds_pass_val + unset -v mds_host_val + unset -v mds_cnf +} diff --git a/Dockerfiles/work/data/docker-entrypoint.sh b/Dockerfiles/work/data/docker-entrypoint.sh new file mode 100755 index 0000000..c096807 --- /dev/null +++ b/Dockerfiles/work/data/docker-entrypoint.sh @@ -0,0 +1,139 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP + +set -e +set -u + + +### +### Variables +### +PHP_INI_PATH="/usr/local/etc/php.ini" +FPM_ERROR_LOG_CFG="/usr/local/etc/php-fpm.conf" +FPM_ACCESS_LOG_CFG="/usr/local/etc/php-fpm.d/zzz-docker.conf" +FPM_LOG_DIR="/var/log/php" + +#PHP_CUST_MODULE_DIR="/etc/php-modules.d" + +PHP_CUST_INI_DIR="/etc/php-custom.d" +PHP_REAL_INI_DIR="/usr/local/etc/php.d" + +SUPERVISOR_CONFD="/etc/supervisor/conf.d" + + +### +### Source libs +### +init="$( find /docker-entrypoint.d -name '*.sh' -type f | sort -u )" +for f in ${init}; do + # shellcheck disable=SC1090 + . "${f}" +done + + +### +### Set Debug level +### +DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )" +log "info" "Debug level: ${DEBUG_LEVEL}" "${DEBUG_LEVEL}" + + + +############################################################# +## Sanity checks +############################################################# + +if ! command -v socat >/dev/null 2>&1; then + log "err" "socat not found, but required." "${DEBUG_LEVEL}" + exit 1 +fi + + + +############################################################# +## Entry Point +############################################################# + +### +### Change uid/gid +### +set_uid "NEW_UID" +set_gid "NEW_GID" + + +### +### Set timezone +### +set_timezone "TIMEZONE" "${PHP_INI_PATH}" + + +### +### Set Logging +### +set_docker_logs \ + "DOCKER_LOGS" \ + "${FPM_LOG_DIR}" \ + "${FPM_ERROR_LOG_CFG}" \ + "${FPM_ACCESS_LOG_CFG}" + + +### +### Setup postfix +### +set_postfix "ENABLE_MAIL" + + +### +### Validate socat port forwards +### +if ! port_forward_validate "FORWARD_PORTS_TO_LOCALHOST"; then + exit 1 +fi + + +### +### Supervisor: socat +### +for line in $( port_forward_get_lines "FORWARD_PORTS_TO_LOCALHOST" ); do + lport="$( port_forward_get_lport "${line}" )" + rhost="$( port_forward_get_rhost "${line}" )" + rport="$( port_forward_get_rport "${line}" )" + supervisor_add_service "socat-${lport}-${rhost}-${rport}" "/usr/bin/socat tcp-listen:${lport},reuseaddr,fork tcp:${rhost}:${rport}" "${SUPERVISOR_CONFD}" +done + + +### +### Supervisor: rsyslogd & postfix +### +if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then + supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${SUPERVISOR_CONFD}" "1" + supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${SUPERVISOR_CONFD}" +fi + + +### +### Supervisor: php-fpm +### +supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${SUPERVISOR_CONFD}" + + +### +### Copy custom *.ini files +### +copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_REAL_INI_DIR}" + + +### +### mysqldump-secure +### +fix_mds_permissions +set_mds_settings "MYSQL_BACKUP_USER" "MYSQL_BACKUP_PASS" "MYSQL_BACKUP_HOST" + + +### +### Start +### +exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf diff --git a/Dockerfiles/work/data/sudo-devilbox b/Dockerfiles/work/data/sudo-devilbox new file mode 100644 index 0000000..16fc745 --- /dev/null +++ b/Dockerfiles/work/data/sudo-devilbox @@ -0,0 +1,7 @@ +# Keep PATH for all sudo commands +Defaults env_keep += "PATH" +Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/local/node/bin + +# Allow devilbox user to do anything without password +%devilbox ALL=(ALL) NOPASSWD: ALL + diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 new file mode 100644 index 0000000..4852a61 --- /dev/null +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -0,0 +1,321 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:{{ php_version }}-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM {{ php_version }} Image" \ + image="devilbox/php-fpm" \ + tag="{{ php_version }}-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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' \ +# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +# && rm -rf /usr/local/src/laravel-installer/laravel/.git +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## Mysqldump-secure +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 \ +# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' +# +## Awesome-CI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 +# +## Awesome-CI requirements +#RUN set -x \ +# && gem install mdl \ +# && gem install scss_lint \ +# && npm install -g eslint \ +# && npm install -g jsonlint \ +# && npm install -g mdlint \ +# && npm install -g gulp \ +# && rm -rf /root/.gem \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Grunt +#RUN set -x \ +# && npm install -g grunt \ +# && npm install -g grunt-cli \ +# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Webpack +#RUN set -x \ +# && npm install -g --save-dev webpack \ +# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.npm \ +# && rm -rf /root/.config \ +# && rm -rf /tmp/* +# +## Linuxbrew +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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 update' \ +# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ +# && rm -rf /home/${MY_USER}/.cache +# +# +# +#### +#### 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/bash-custom.d/ ]; then"; \ +# echo " for f in /etc/bash-custom.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} +# + + +{% if debug %} +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ + && /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 + + +{% endif %} +### +### Copy files +### +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/bash-custom.d +VOLUME /etc/php-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"] diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index e3a471e..6eddd1d 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -7,6 +7,9 @@ template_files: dst: "../../Dockerfiles/mods/Dockerfile-{{ php_version }}" - src: DOCKERFILES/Dockerfile-prod.j2 dst: "../../Dockerfiles/prod/Dockerfile-{{ php_version }}" + - src: DOCKERFILES/Dockerfile-work.j2 + dst: "../../Dockerfiles/work/Dockerfile-{{ php_version }}" + From 495585943ffd315a523e569e8ebad396af824c33 Mon Sep 17 00:00:00 2001 From: cytopia Date: Fri, 23 Feb 2018 09:22:06 +0100 Subject: [PATCH 03/35] Clean travis build file --- .travis.yml | 247 ++++++---------------------------------------------- 1 file changed, 25 insertions(+), 222 deletions(-) diff --git a/.travis.yml b/.travis.yml index ec9b70d..98b495b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,17 @@ --- + +### +### Travis settings +### sudo: required language: python services: - docker + +### +### Build Matrix +### env: global: - IMAGE: devilbox/php-fpm @@ -15,23 +23,17 @@ env: # DOCKER_PASSWORD - secure: "ZRrVOVOkSCS2UxEi1HNF1iKefK4sDT/sPRl1HxMQjLnRRaAMdG0aRnBwQf2YAM2qzhCfN85qt6zZtC4awc2mHiZ88JrAZxBjK6xj4BwOyLbDuzpBsKXnx8Nix+wyYYKSjsC3LOYrsUe+4rvkw3tVvVaX8G2llojwdksF34VDmmHBmzCG/Bsexk7UqC+qw0PZm7BtctQO+IL0btmMDijRDElxfR+AuPvf9JdkhYzw9TOO7Jqd53NssNVGyL+XSV0dfGn8PkZTp1e8D+28pLK4oGVog+Wk7Cq94hSGjk5AkWKvL5441rupG1AA8K3njeDNMKdov4o+dmnkAH7Jh8tjShMhNhoxHce3IzpczjhoE1EyYQcyPf1qdfhV35Xv096iWX5809pp1MZF2oE5eism8JaU9NpGClryVbKVKtup8ko9/tCqz01Czq5Vue40feMkGtdePulg59OhyyPLYldsObw8QlZydkrmgVZe6b+GyybeiHraTfDq4pvTgUrC4Cmm5J3IB5Ig1THEiYKHfRJ5hSSMDDODeBXc8Xh6mFssEVshNx/jbUQWuAVYQFw/GIquVHxr6btbevrWIoD+zmqcc0L98u9pYH8w7b+gMgVJNCC4QQz2NCGGWw9l9/TmLrKJgeXbG18n8D314le1zuna6/VfH9pXIlbNO4hgz5NLHJk=" matrix: - - PHP=5.5 + - PHP=5.4 - PHP=5.5 - PHP=5.6 - PHP=7.0 - PHP=7.1 - PHP=7.2 - #stages: - # - generate - # - PHP 5.4 - # - PHP 5.5 - # - PHP 5.6 - # - PHP 7.0 - # - PHP 7.1 - # - PHP 7.2 -# TODO: No need for stages anymore, use simple build matrix and don't repease the code!! +### +### Install requirements +### install: # Get newer docker version - max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update; then break; else i=$((i+1)); fi done @@ -39,17 +41,28 @@ install: - docker version +### +### Build +### before_script: # Build (multiple tries due to network outages) - max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + + +### +### Test +### script: - # Test - true + + +### +### Push +### after_success: - # Push - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" && if [ "${TRAVIS_BRANCH}" == "master" ]; then @@ -81,213 +94,3 @@ after_success: else echo "Skipping push to dockerhub on PR"; fi - # - # - # - # - # - # - # - # - # - #jobs: - # include: - # ############################################################ - # # TEST - # ############################################################ - # - stage: generate - # env: All - # install: skip - # before_script: skip - # script: - # # Regenerate Dockerfiles and make sure nothing has changed (every stage) - # - pip install ansible - # - make generate - # - git diff --quiet || { echo "Build Changes"; git diff; git status; false; } - # ############################################################ - # # BUILD BASE IMAGE - # ############################################################ - # - stage: PHP 5.4 - # env: PHP=5.4 - # before_script: - # # Build (multiple tries due to network outages) - # - max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - # - max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - # - max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - # - max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - # script: - # # Test - # - true - # after_success: - # # Push - # - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then - # docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" && - # if [ "${TRAVIS_BRANCH}" == "master" ]; then - # docker push "${IMAGE}:${PHP}-base"; - # docker push "${IMAGE}:${PHP}-mods"; - # docker push "${IMAGE}:${PHP}-prod"; - # docker push "${IMAGE}:${PHP}-work"; - # elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then - # docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${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}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" && - # docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}"; - # docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}"; - # docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}"; - # docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}"; - # elif [ -n "${TRAVIS_TAG}" ]; then - # docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${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}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" && - # docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}"; - # docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}"; - # docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}"; - # docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}"; - # else - # echo "Skipping push to dockerhub on normal branches"; - # fi - # else - # echo "Skipping push to dockerhub on PR"; - # fi - # - stage: Build base image - # env: PHP=5.5 t=base - # before_script: - # # Build - # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi; done - # script: - # # Test - # - result=1; false - # after_success: - # # Push - # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" - # - docker push "${IMAGE}:${PHP}-${t}"; - # - # - stage: Build base image - # env: PHP=5.6 t=base - # script: - # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi - # - if [ $i -gt 98 ]; then false; fi - # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" - # - docker push "${IMAGE}:${PHP}-${t}" - # - # - stage: Build base image - # env: PHP=7.0 t=base - # script: - # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi - # - if [ $i -gt 98 ]; then false; fi - # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" - # - docker push "${IMAGE}:${PHP}-${t}" - # - # - stage: Build base image - # env: PHP=7.1 t=base - # script: - # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi - # - if [ $i -gt 98 ]; then false; fi - # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" - # - docker push "${IMAGE}:${PHP}-${t}" - # - # - stage: Build base image - # env: PHP=7.2 t=base - # script: - # - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi - # - if [ $i -gt 98 ]; then false; fi - # - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" - # - docker push "${IMAGE}:${PHP}-${t}" - # ############################################################ - # # BUILD MODS IMAGE - # ############################################################ - # - stage: Build mods image - # env: PHP-5.4 - # script: - # - make build-mods-54 - # - # - stage: Build mods image - # env: PHP-5.5 - # script: - # - make build-mods-55 - # - # - stage: Build mods image - # env: PHP-5.6 - # script: - # - make build-mods-56 - # - # - stage: Build mods image - # env: PHP-7.0 - # script: - # - make build-mods-70 - # - # - stage: Build mods image - # env: PHP-7.1 - # script: - # - make build-mods-71 - # - # - stage: Build mods image - # env: PHP-7.2 - # script: - # - make build-mods-72 - # ############################################################ - # # BUILD PROD IMAGE - # ############################################################ - # - stage: Build prod image - # env: PHP-5.4 - # script: - # - make build-prod-5.4 - # - # - stage: Build prod image - # env: PHP-5.5 - # script: - # - make build-prod-5.5 - # - # - stage: Build prod image - # env: PHP-5.6 - # script: - # - make build-prod-5.6 - # - # - stage: Build prod image - # env: PHP-7.0 - # script: - # - make build-prod-7.0 - # - # - stage: Build prod image - # env: PHP-7.1 - # script: - # - make build-prod-7.1 - # - # - stage: Build prod image - # env: PHP-7.2 - # script: - # - make build-prod-7.2 - # ############################################################ - # # BUILD WORK IMAGE - # ############################################################ - # - stage: Build work image - # env: PHP-5.4 - # script: - # - make build-work-5.4 - # - # - stage: Build work image - # env: PHP-5.5 - # script: - # - make build-work-5.5 - # - # - stage: Build work image - # env: PHP-5.6 - # script: - # - make build-work-5.6 - # - # - stage: Build work image - # env: PHP-7.0 - # script: - # - make build-work-7.0 - # - # - stage: Build work image - # env: PHP-7.1 - # script: - # - make build-work-7.1 - # - # - stage: Build work image - # env: PHP-7.2 - # script: - # - make build-work-7.2 From 308d5c92bf60945dd342630f6dd67c6545ba8eed Mon Sep 17 00:00:00 2001 From: cytopia Date: Fri, 23 Feb 2018 09:22:33 +0100 Subject: [PATCH 04/35] Fix mysql_pdo build requirements --- build/ansible/group_vars/all.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index 6eddd1d..a45218a 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -157,7 +157,7 @@ php_pecl_extensions: 7.2: run_dep: [libnghttp2-14] all: - build_dep: [libnghttp2-dev, libssl-dev, libnghttp2-5] + build_dep: [libnghttp2-dev, libssl-dev] run_dep: [libnghttp2-5] uploadprogress: enabled: "{{ php_all_versions }}" @@ -344,6 +344,9 @@ php_builtin_extensions: run_dep: [libfbclient2] pdo_mysql: enabled: "{{ php_all_versions }}" + all: + configure: --with-zlib-dir=/usr + build_dep: [zlib1g-dev] pdo_oci: enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing From c11c94ebe44a856bb3dcfa58a10c7af58043197a Mon Sep 17 00:00:00 2001 From: cytopia Date: Fri, 23 Feb 2018 09:22:54 +0100 Subject: [PATCH 05/35] Regenerate Dockerfiles --- Dockerfiles/mods/Dockerfile-5.4 | 3 ++- Dockerfiles/mods/Dockerfile-5.5 | 3 ++- Dockerfiles/mods/Dockerfile-5.6 | 3 ++- Dockerfiles/mods/Dockerfile-7.0 | 3 ++- Dockerfiles/mods/Dockerfile-7.1 | 3 ++- Dockerfiles/mods/Dockerfile-7.2 | 3 ++- Dockerfiles/work/Dockerfile-5.4 | 6 ++++++ Dockerfiles/work/Dockerfile-5.5 | 6 ++++++ Dockerfiles/work/Dockerfile-5.6 | 6 ++++++ Dockerfiles/work/Dockerfile-7.0 | 6 ++++++ Dockerfiles/work/Dockerfile-7.1 | 6 ++++++ Dockerfiles/work/Dockerfile-7.2 | 6 ++++++ 12 files changed, 48 insertions(+), 6 deletions(-) diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index 4f6cf56..39a86bb 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -18,6 +18,7 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ + zlib1g-dev \ libicu-dev \ libtidy-dev \ libssl-dev \ @@ -64,7 +65,6 @@ ENV BUILD_DEPS \ librabbitmq-dev \ libnghttp2-dev \ libssl-dev \ - libnghttp2-5 \ libssl-dev \ zlib1g-dev \ libmagickwand-dev \ @@ -108,6 +108,7 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ + && /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 tokenizer \ && /usr/local/bin/docker-php-ext-install dba \ diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index 220d3c9..bcee37d 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -18,6 +18,7 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ + zlib1g-dev \ libicu-dev \ libtidy-dev \ libssl-dev \ @@ -69,7 +70,6 @@ ENV BUILD_DEPS \ librabbitmq-dev \ libnghttp2-dev \ libssl-dev \ - libnghttp2-5 \ zlib1g-dev \ libmagickwand-dev \ zlib1g-dev \ @@ -113,6 +113,7 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ + && /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) tokenizer \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 index f5af183..78bb66c 100644 --- a/Dockerfiles/mods/Dockerfile-5.6 +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -18,6 +18,7 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ + zlib1g-dev \ libicu-dev \ libtidy-dev \ libssl-dev \ @@ -70,7 +71,6 @@ ENV BUILD_DEPS \ librabbitmq-dev \ libnghttp2-dev \ libssl-dev \ - libnghttp2-5 \ zlib1g-dev \ libmagickwand-dev \ zlib1g-dev \ @@ -115,6 +115,7 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ + && /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) tokenizer \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 index 1e3af51..9c17fec 100644 --- a/Dockerfiles/mods/Dockerfile-7.0 +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -18,6 +18,7 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ + zlib1g-dev \ libicu-dev \ libtidy-dev \ libssl-dev \ @@ -70,7 +71,6 @@ ENV BUILD_DEPS \ librabbitmq-dev \ libnghttp2-dev \ libssl-dev \ - libnghttp2-5 \ libmagickwand-dev \ zlib1g-dev \ libmemcached-dev \ @@ -115,6 +115,7 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ + && /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) tokenizer \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 index 762d3af..37bf9cc 100644 --- a/Dockerfiles/mods/Dockerfile-7.1 +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -18,6 +18,7 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ + zlib1g-dev \ libicu-dev \ libtidy-dev \ libssl-dev \ @@ -70,7 +71,6 @@ ENV BUILD_DEPS \ librabbitmq-dev \ libnghttp2-dev \ libssl-dev \ - libnghttp2-5 \ libmagickwand-dev \ zlib1g-dev \ libmemcached-dev \ @@ -115,6 +115,7 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ + && /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) tokenizer \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 index b6de8b5..33e93c4 100644 --- a/Dockerfiles/mods/Dockerfile-7.2 +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -18,6 +18,7 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ + zlib1g-dev \ libicu-dev \ libtidy-dev \ libssl-dev \ @@ -70,7 +71,6 @@ ENV BUILD_DEPS \ librabbitmq-dev \ libnghttp2-dev \ libssl-dev \ - libnghttp2-5 \ libmagickwand-dev \ libmcrypt-dev \ zlib1g-dev \ @@ -116,6 +116,7 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ + && /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) tokenizer \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index 4c15f79..bda8bf9 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -307,6 +307,12 @@ VOLUME /var/mail EXPOSE 9000 +### +### Where to start inside the container +### +WORKDIR /shared/httpd + + ### ### Entrypoint ### diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index 837835c..153661c 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -307,6 +307,12 @@ VOLUME /var/mail EXPOSE 9000 +### +### Where to start inside the container +### +WORKDIR /shared/httpd + + ### ### Entrypoint ### diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 9e11d98..1db192d 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -307,6 +307,12 @@ VOLUME /var/mail EXPOSE 9000 +### +### Where to start inside the container +### +WORKDIR /shared/httpd + + ### ### Entrypoint ### diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index f27e5f5..06c7b64 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -307,6 +307,12 @@ VOLUME /var/mail EXPOSE 9000 +### +### Where to start inside the container +### +WORKDIR /shared/httpd + + ### ### Entrypoint ### diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index a32024d..b0a247b 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -307,6 +307,12 @@ VOLUME /var/mail EXPOSE 9000 +### +### Where to start inside the container +### +WORKDIR /shared/httpd + + ### ### Entrypoint ### diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index 9c85fe5..c3a52cf 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -307,6 +307,12 @@ VOLUME /var/mail EXPOSE 9000 +### +### Where to start inside the container +### +WORKDIR /shared/httpd + + ### ### Entrypoint ### From d5b6ab80c7583792c6002f62ba3f045d6f6be464 Mon Sep 17 00:00:00 2001 From: cytopia Date: Fri, 23 Feb 2018 09:35:22 +0100 Subject: [PATCH 06/35] Fail hard on errors --- .travis.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 98b495b..ad1b2f4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,27 +42,27 @@ install: ### -### Build +### Check generation changes, build and test ### before_script: + # Regenerate Dockerfiles and make sure nothing has changed (every stage) + - pip install ansible + - make generate + - git diff --quiet || { echo "Build Changes"; git diff; git status; false; } + # Build (multiple tries due to network outages) - max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - -### -### Test -### -script: + # Test - true - ### -### Push +### Push to Dockerhub ### -after_success: +script: - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" && if [ "${TRAVIS_BRANCH}" == "master" ]; then From c745f921fdc54c4d39465bbd5365546e400fdd68 Mon Sep 17 00:00:00 2001 From: cytopia Date: Fri, 23 Feb 2018 18:05:36 +0100 Subject: [PATCH 07/35] Make sure required man directory exists --- Dockerfiles/work/Dockerfile-7.2 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index c3a52cf..50b6906 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -26,6 +26,8 @@ ENV BASH_PROFILE=".bashrc" # System dev tools RUN set -x \ + && mkdir -p /usr/share/man/man1 \ + && mkdir -p /usr/share/man/man7 \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -71,7 +73,10 @@ RUN set -x \ whois \ xz-utils \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ - && rm -rf /var/lib/apt/lists/* + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /usr/share/man/man1 \ + && rm -rf /usr/share/man/man7 + ## Node / NPM #RUN set -x \ From ac56d5b1d88e67d5425506129547e9b3e60a6803 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sat, 24 Feb 2018 13:09:34 +0100 Subject: [PATCH 08/35] Re-generate Dockerfiles --- Dockerfiles/work/Dockerfile-7.2 | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index 50b6906..c3a52cf 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -26,8 +26,6 @@ ENV BASH_PROFILE=".bashrc" # System dev tools RUN set -x \ - && mkdir -p /usr/share/man/man1 \ - && mkdir -p /usr/share/man/man7 \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -73,10 +71,7 @@ RUN set -x \ whois \ xz-utils \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /usr/share/man/man1 \ - && rm -rf /usr/share/man/man7 - + && rm -rf /var/lib/apt/lists/* ## Node / NPM #RUN set -x \ From 3d7fa888b4a132f89c1d05733a2b393da77fd188 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sat, 24 Feb 2018 13:43:25 +0100 Subject: [PATCH 09/35] Add PHP Module check --- .travis.yml | 7 +++++- README.md | 47 ++++++++++++++++++++++++++++++++++++ build/gen-readme.sh | 59 ++++++++++++++++++++++++++++++--------------- 3 files changed, 93 insertions(+), 20 deletions(-) create mode 100644 README.md diff --git a/.travis.yml b/.travis.yml index ad1b2f4..2aed90d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,9 +56,14 @@ before_script: - max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi - # Test + # Test if PHP modules have changed + - ./build/gen-readme.sh "${PHP}" + - git diff --quiet || { echo "Build Changes"; git diff; git status; false; } + + # Integration tests - true + ### ### Push to Dockerhub ### diff --git a/README.md b/README.md new file mode 100644 index 0000000..d61106d --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# Docker PHP-FPM images + + + +## Available PHP Modules + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
basemods, prod and work
5.4Core, ctype, curl, date, dom, ereg, fileinfo, filter, hash, iconv, json, libxml, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib
5.5Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib
5.6Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib
7.0Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, 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, msgpack, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib
7.1Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlibamqp, 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, msgpack, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib
7.2Core, 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, zlibamqp, 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, msgpack, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib
diff --git a/build/gen-readme.sh b/build/gen-readme.sh index 7d4c789..4fe6c13 100755 --- a/build/gen-readme.sh +++ b/build/gen-readme.sh @@ -1,12 +1,20 @@ -#!/bin/sh +#!/usr/bin/env bash set -e set -u -set -x CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" +print_usage() { + echo "Usage: gen-readme.sh" + echo " gen-readme.sh 5.4" + echo " gen-readme.sh 5.5" + echo " gen-readme.sh 5.6" + echo " gen-readme.sh 7.0" + echo " gen-readme.sh 7.1" + echo " gen-readme.sh 7.2" +} get_modules() { tag="${1}" @@ -24,22 +32,35 @@ get_modules() { echo "${PHP_MODULES}" } +update_readme() { + v="${1}" + sed -i'' "s|.*<\/td>|$( get_modules "${v}-base" )<\/td>|g" "${CWD}/../README.md" + sed -i'' "s|.*<\/td>|$( get_modules "${v}-mods" )<\/td>|g" "${CWD}/../README.md" +} -sed -i'' "s|.*<\/td>|$( get_modules "5.4-base" )<\/td>|g" "${CWD}/../README.md" -sed -i'' "s|.*<\/td>|$( get_modules "5.4-mods" )<\/td>|g" "${CWD}/../README.md" - -sed -i'' "s|.*<\/td>|$( get_modules "5.5-base" )<\/td>|g" "${CWD}/../README.md" -sed -i'' "s|.*<\/td>|$( get_modules "5.5-mods" )<\/td>|g" "${CWD}/../README.md" - -sed -i'' "s|.*<\/td>|$( get_modules "5.6-base" )<\/td>|g" "${CWD}/../README.md" -sed -i'' "s|.*<\/td>|$( get_modules "5.6-mods" )<\/td>|g" "${CWD}/../README.md" - -sed -i'' "s|.*<\/td>|$( get_modules "7.0-base" )<\/td>|g" "${CWD}/../README.md" -sed -i'' "s|.*<\/td>|$( get_modules "7.0-mods" )<\/td>|g" "${CWD}/../README.md" - -sed -i'' "s|.*<\/td>|$( get_modules "7.1-base" )<\/td>|g" "${CWD}/../README.md" -sed -i'' "s|.*<\/td>|$( get_modules "7.1-mods" )<\/td>|g" "${CWD}/../README.md" - -sed -i'' "s|.*<\/td>|$( get_modules "7.2-base" )<\/td>|g" "${CWD}/../README.md" -sed -i'' "s|.*<\/td>|$( get_modules "7.2-mods" )<\/td>|g" "${CWD}/../README.md" +if [ "${#}" -eq "0" ]; then + update_readme "5.4" + update_readme "5.5" + update_readme "5.6" + update_readme "7.0" + update_readme "7.1" + update_readme "7.2" +elif [ "${#}" -gt "1" ]; then + echo "Error, invalid number of arguments." + print_usage + exit 1 +else + if [ "${1}" != "5.4" ] \ + && [ "${1}" != "5.5" ] \ + && [ "${1}" != "5.6" ] \ + && [ "${1}" != "7.0" ] \ + && [ "${1}" != "7.1" ] \ + && [ "${1}" != "7.2" ]; then + echo "Error, invalid argument." + print_usage + exit 1 + else + update_readme "${1}" + fi +fi From 2e7ae22f58ee8625e78a20126ea3ac61f2c150fb Mon Sep 17 00:00:00 2001 From: cytopia Date: Sat, 24 Feb 2018 14:08:51 +0100 Subject: [PATCH 10/35] Fix build for php:7-2-work --- Dockerfiles/work/Dockerfile-5.4 | 2 +- Dockerfiles/work/Dockerfile-5.5 | 2 +- Dockerfiles/work/Dockerfile-5.6 | 2 +- Dockerfiles/work/Dockerfile-7.0 | 2 +- Dockerfiles/work/Dockerfile-7.1 | 2 +- Dockerfiles/work/Dockerfile-7.2 | 2 +- build/README.md | 51 ++++++++++++++++++++ build/ansible/DOCKERFILES/Dockerfile-work.j2 | 2 +- build/gen-readme.sh | 24 +++++++++ 9 files changed, 82 insertions(+), 7 deletions(-) create mode 100644 build/README.md diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index bda8bf9..b22dc6d 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -56,7 +56,7 @@ RUN set -x \ nano \ net-tools \ netcat \ - postgresql-client \ +# postgresql-client \ python-pip \ rubygems \ ruby-dev \ diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index 153661c..f9dc427 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -56,7 +56,7 @@ RUN set -x \ nano \ net-tools \ netcat \ - postgresql-client \ +# postgresql-client \ python-pip \ rubygems \ ruby-dev \ diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 1db192d..ccebe55 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -56,7 +56,7 @@ RUN set -x \ nano \ net-tools \ netcat \ - postgresql-client \ +# postgresql-client \ python-pip \ rubygems \ ruby-dev \ diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index 06c7b64..168d42d 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -56,7 +56,7 @@ RUN set -x \ nano \ net-tools \ netcat \ - postgresql-client \ +# postgresql-client \ python-pip \ rubygems \ ruby-dev \ diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index b0a247b..c361f15 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -56,7 +56,7 @@ RUN set -x \ nano \ net-tools \ netcat \ - postgresql-client \ +# postgresql-client \ python-pip \ rubygems \ ruby-dev \ diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index c3a52cf..e66edae 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -56,7 +56,7 @@ RUN set -x \ nano \ net-tools \ netcat \ - postgresql-client \ +# postgresql-client \ python-pip \ rubygems \ ruby-dev \ diff --git a/build/README.md b/build/README.md new file mode 100644 index 0000000..c5f7409 --- /dev/null +++ b/build/README.md @@ -0,0 +1,51 @@ +# Build helper + +This directory contains all tools for building. + +## `ansible/` + +The `ansible/` directory contains a setup to generate all Dockerfiles. Once generated, they will be placed or updated into [../Dockerfiles](../Dockerfiles). + +**How to generate via ansible command** +```bash +# From inside ansible directory +cd ansible +ansible-playbook generate.yml --diff +``` + +**How to generate via Makefile** +```bash +# From inside root git directory +cd .. +make generate +``` + +**Requirements** + +In order to generate Dockerfiles, you will have to have ansible installed: +``` +pip install ansible +``` + +## `gen-readme.sh` + +`gen-readme.sh` will update the README.md with currently enabled PHP modules for each Docker image. + +**How to update the README.md** + +```bash +# Update for all Docker images +./gen-readme.sh + +# Update for specific Docker image +./gen-readme.sh 5.4 +./gen-readme.sh 5.5 +./gen-readme.sh 5.6 +./gen-readme.sh 7.0 +./gen-readme.sh 7.1 +./gen-readme.sh 7.2 +``` + +**Requirements** + +If you want to update the README.md for a specific Docker image, you must have built this image prior running `gen-readme.sh`. diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 index 4852a61..67e8589 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-work.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -56,7 +56,7 @@ RUN set -x \ nano \ net-tools \ netcat \ - postgresql-client \ +# postgresql-client \ python-pip \ rubygems \ ruby-dev \ diff --git a/build/gen-readme.sh b/build/gen-readme.sh index 4fe6c13..849eb91 100755 --- a/build/gen-readme.sh +++ b/build/gen-readme.sh @@ -1,11 +1,17 @@ #!/usr/bin/env bash +# Be very strict set -e set -u +set -o pipefail +# Get absolute directory of this script CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" +### +### Show Usage +### print_usage() { echo "Usage: gen-readme.sh" echo " gen-readme.sh 5.4" @@ -16,11 +22,17 @@ print_usage() { echo " gen-readme.sh 7.2" } + +### +### Extract PHP modules in alphabetical order and comma separated in one line +### get_modules() { tag="${1}" + # Retrieve all modules PHP_MODULES="$( docker run -it --entrypoint=php devilbox/php-fpm:${tag} -m )" + # Process module string into correct format for README.md PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/^\[.*//g' )" # Remove PHP Modules headlines PHP_MODULES="$( echo "${PHP_MODULES}" | sort -fu )" # Unique PHP_MODULES="$( echo "${PHP_MODULES}" | sed '/^\s*$/d' )" # Remove empty lines @@ -32,14 +44,23 @@ get_modules() { echo "${PHP_MODULES}" } + +### +### Replace modules in Readme for specified PHP version +### update_readme() { v="${1}" + # Those sections must exist in README.md, otherwise this script will exit with errors sed -i'' "s|.*<\/td>|$( get_modules "${v}-base" )<\/td>|g" "${CWD}/../README.md" sed -i'' "s|.*<\/td>|$( get_modules "${v}-mods" )<\/td>|g" "${CWD}/../README.md" } +### +### Entrypoint +### if [ "${#}" -eq "0" ]; then + # Update PHP modules for all versions at once update_readme "5.4" update_readme "5.5" update_readme "5.6" @@ -47,6 +68,7 @@ if [ "${#}" -eq "0" ]; then update_readme "7.1" update_readme "7.2" elif [ "${#}" -gt "1" ]; then + # Specifying more than 1 argument is wrong echo "Error, invalid number of arguments." print_usage exit 1 @@ -57,10 +79,12 @@ else && [ "${1}" != "7.0" ] \ && [ "${1}" != "7.1" ] \ && [ "${1}" != "7.2" ]; then + # Argument does not match any of the PHP versions echo "Error, invalid argument." print_usage exit 1 else + # Update PHP modules for one specific PHP version update_readme "${1}" fi fi From a6fe8167b32144a3df4f98e277e310a7dbd4c410 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 25 Feb 2018 11:00:17 +0100 Subject: [PATCH 11/35] Enable more modules --- Dockerfiles/mods/Dockerfile-7.0 | 12 ++++++++++++ Dockerfiles/mods/Dockerfile-7.1 | 12 ++++++++++++ Dockerfiles/mods/Dockerfile-7.2 | 12 ++++++++++++ README.md | 6 +++--- build/ansible/group_vars/all.yml | 14 +++++++++++--- 5 files changed, 50 insertions(+), 6 deletions(-) diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 index 9c17fec..f8f0a15 100644 --- a/Dockerfiles/mods/Dockerfile-7.0 +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -75,6 +75,7 @@ ENV BUILD_DEPS \ zlib1g-dev \ libmemcached-dev \ git \ + zlib1g-dev \ ca-certificates ENV RUN_DEPS \ @@ -165,6 +166,7 @@ RUN set -x \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ @@ -219,6 +221,12 @@ RUN set -x \ && cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \ && docker-php-ext-enable uploadprogress \ && cd / && rm -rf /tmp/uploadprogress \ + && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + && git checkout NON_BLOCKING_IO_php7 \ + && cd /tmp/memcache && phpize && ./configure --with-zlib-dir=/usr && make -j$(getconf _NPROCESSORS_ONLN) && make install \ + && docker-php-ext-enable memcache \ + && cd / && rm -rf /tmp/memcache \ && git clone -v https://github.com/phalcon/cphalcon /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') \ @@ -324,6 +332,8 @@ RUN set -x \ && php-fpm -m | grep -oiE '^sysvsem$' \ && php -m | grep -oiE '^pspell$' \ && php-fpm -m | grep -oiE '^pspell$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^readline$' \ && php-fpm -m | grep -oiE '^readline$' \ && php -m | grep -oiE '^pdo_sqlite$' \ @@ -378,6 +388,8 @@ RUN set -x \ && php-fpm -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^uploadprogress$' \ && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ && php -m | grep -oiE '^phalcon$' \ && php-fpm -m | grep -oiE '^phalcon$' \ && true diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 index 37bf9cc..adafcbe 100644 --- a/Dockerfiles/mods/Dockerfile-7.1 +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -75,6 +75,7 @@ ENV BUILD_DEPS \ zlib1g-dev \ libmemcached-dev \ git \ + zlib1g-dev \ ca-certificates ENV RUN_DEPS \ @@ -165,6 +166,7 @@ RUN set -x \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ @@ -219,6 +221,12 @@ RUN set -x \ && cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \ && docker-php-ext-enable uploadprogress \ && cd / && rm -rf /tmp/uploadprogress \ + && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + && git checkout NON_BLOCKING_IO_php7 \ + && cd /tmp/memcache && phpize && ./configure --with-zlib-dir=/usr && make -j$(getconf _NPROCESSORS_ONLN) && make install \ + && docker-php-ext-enable memcache \ + && cd / && rm -rf /tmp/memcache \ && git clone -v https://github.com/phalcon/cphalcon /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') \ @@ -324,6 +332,8 @@ RUN set -x \ && php-fpm -m | grep -oiE '^sysvsem$' \ && php -m | grep -oiE '^pspell$' \ && php-fpm -m | grep -oiE '^pspell$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^readline$' \ && php-fpm -m | grep -oiE '^readline$' \ && php -m | grep -oiE '^pdo_sqlite$' \ @@ -378,6 +388,8 @@ RUN set -x \ && php-fpm -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^uploadprogress$' \ && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ && php -m | grep -oiE '^phalcon$' \ && php-fpm -m | grep -oiE '^phalcon$' \ && true diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 index 33e93c4..a0ca9e0 100644 --- a/Dockerfiles/mods/Dockerfile-7.2 +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -76,6 +76,7 @@ ENV BUILD_DEPS \ zlib1g-dev \ libmemcached-dev \ git \ + zlib1g-dev \ ca-certificates ENV RUN_DEPS \ @@ -167,6 +168,7 @@ RUN set -x \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ @@ -222,6 +224,12 @@ RUN set -x \ && cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \ && docker-php-ext-enable uploadprogress \ && cd / && rm -rf /tmp/uploadprogress \ + && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + && git checkout NON_BLOCKING_IO_php7 \ + && cd /tmp/memcache && phpize && ./configure --with-zlib-dir=/usr && make -j$(getconf _NPROCESSORS_ONLN) && make install \ + && docker-php-ext-enable memcache \ + && cd / && rm -rf /tmp/memcache \ && git clone -v https://github.com/phalcon/cphalcon /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') \ @@ -329,6 +337,8 @@ RUN set -x \ && php-fpm -m | grep -oiE '^sysvsem$' \ && php -m | grep -oiE '^pspell$' \ && php-fpm -m | grep -oiE '^pspell$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ && php -m | grep -oiE '^readline$' \ && php-fpm -m | grep -oiE '^readline$' \ && php -m | grep -oiE '^pdo_sqlite$' \ @@ -383,6 +393,8 @@ RUN set -x \ && php-fpm -m | grep -oiE '^apcu$' \ && php -m | grep -oiE '^uploadprogress$' \ && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ && php -m | grep -oiE '^phalcon$' \ && php-fpm -m | grep -oiE '^phalcon$' \ && true diff --git a/README.md b/README.md index d61106d..1831011 100644 --- a/README.md +++ b/README.md @@ -31,17 +31,17 @@ 7.0 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, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib - amqp, 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, msgpack, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib + amqp, 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, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib 7.1 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, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib - amqp, 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, msgpack, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib + amqp, 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, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib 7.2 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 - amqp, 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, msgpack, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib + amqp, 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, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index a45218a..b0a4f08 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -45,6 +45,14 @@ php_conf_dir: /usr/local/etc/php.d ### run_dep: ### php_git_extensions: + memcache: + enabled: "{{ php_all_versions }}" + disabled: [5.4, 5.5, 5.6] # Officiel memcache is installed via pecl for 5.4, 5.5 and 5.6 + all: + git_url: https://github.com/websupport-sk/pecl-memcache + git_ref: NON_BLOCKING_IO_php7 + command: phpize && ./configure --with-zlib-dir=/usr && make -j$(getconf _NPROCESSORS_ONLN) && make install + build_dep: [zlib1g-dev] phalcon: enabled: "{{ php_all_versions }}" 5.4: @@ -110,14 +118,14 @@ php_pecl_extensions: run_dep: [libmagickwand-6.q16-2] mcrypt: enabled: "{{ php_all_versions }}" - disabled: [5.4, 5.5, 5.6, 7.0, 7.1] # Already avail by default + disabled: [5.4, 5.5, 5.6, 7.0, 7.1] # Already avail by default in other versions 7.2: alt_name: mcrypt-1.0.1 build_dep: [libmcrypt-dev] run_dep: [libmcrypt4] memcache: enabled: "{{ php_all_versions }}" - disabled: [7.0, 7.1, 7.2] + disabled: [7.0, 7.1, 7.2] # PHP7 uses unofficial git clone (see above) all: build_dep: [zlib1g-dev] memcached: @@ -308,7 +316,7 @@ php_builtin_extensions: disabled: [7.0, 7.1, 7.2] mysqli: enabled: "{{ php_all_versions }}" - disabled: [7.0, 7.1, 7.2] + #disabled: [7.0, 7.1, 7.2] mysqlnd: enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # Available by default From d35de6c6cb9e4610b27887eb9595c463feb0e834 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 25 Feb 2018 14:45:04 +0100 Subject: [PATCH 12/35] Add more PHP extensions --- Dockerfiles/mods/Dockerfile-5.4 | 1340 +++++++++++++---- Dockerfiles/mods/Dockerfile-5.5 | 1368 ++++++++++++----- Dockerfiles/mods/Dockerfile-5.6 | 1372 ++++++++++++----- Dockerfiles/mods/Dockerfile-7.0 | 1358 ++++++++++++----- Dockerfiles/mods/Dockerfile-7.1 | 1358 ++++++++++++----- Dockerfiles/mods/Dockerfile-7.2 | 1377 +++++++++++++----- README.md | 2 +- build/ansible/DOCKERFILES/Dockerfile-mods.j2 | 416 ++---- build/ansible/group_vars/all.yml | 620 ++++---- 9 files changed, 6656 insertions(+), 2555 deletions(-) diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index 39a86bb..ea155f4 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -18,85 +18,89 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ - zlib1g-dev \ - libicu-dev \ - libtidy-dev \ - libssl-dev \ - libpng-dev \ - libjpeg-dev \ - libxpm-dev \ - libvpx-dev \ - zlib1g-dev \ - libfreetype6-dev \ - librecode-dev \ - libcurl4-openssl-dev \ - libssl-dev \ - libpq-dev \ - zlib1g-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libpq-dev \ - libldap2-dev \ - libsasl2-dev \ - libgmp-dev \ - libxml2-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libxml2-dev \ - libpspell-dev \ - libsqlite3-dev \ - libc-client-dev \ - libkrb5-dev \ - libcurl4-openssl-dev \ - libbz2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - freetds-dev \ - libxml2-dev \ - libmm-dev \ - libxml2-dev \ - libmcrypt-dev \ - libenchant-dev \ - libxslt-dev \ - librabbitmq-dev \ - libnghttp2-dev \ - libssl-dev \ - libssl-dev \ - zlib1g-dev \ - libmagickwand-dev \ - zlib1g-dev \ - libmemcached-dev \ - git \ - ca-certificates + 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 \ + 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 \ + zlib1g-dev \ + libmemcached-dev \ + libssl-dev \ + freetds-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + zlib1g-dev \ + libpq-dev \ + libsqlite3-dev \ + libpq-dev \ + libssl-dev \ + libpspell-dev \ + librecode-dev \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + ca-certificates \ + git ENV RUN_DEPS \ - libicu52 \ - libtidy-0.99-0 \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - librecode0 \ - libpq5 \ - snmp \ - libpq5 \ - libfbclient2 \ - libaspell15 \ - libc-client2007e \ - libsybdb5 \ - libmcrypt4 \ - libenchant1c2a \ - libxslt1.1 \ - librabbitmq1 \ - libnghttp2-5 \ - libmagickwand-6.q16-2 \ - libmemcachedutil2 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + ca-certificates ### @@ -108,116 +112,804 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - && /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 tokenizer \ - && /usr/local/bin/docker-php-ext-install dba \ - && /usr/local/bin/docker-php-ext-install intl \ - && /usr/local/bin/docker-php-ext-install shmop \ - && /usr/local/bin/docker-php-ext-install tidy \ - && /usr/local/bin/docker-php-ext-install bcmath \ - && /usr/local/bin/docker-php-ext-install phar \ - && 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-install gd \ - && /usr/local/bin/docker-php-ext-install recode \ - && /usr/local/bin/docker-php-ext-install mysql \ - && /usr/local/bin/docker-php-ext-install pcntl \ - && /usr/local/bin/docker-php-ext-install curl \ - && /usr/local/bin/docker-php-ext-install sockets \ - && /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 iconv \ - && /usr/local/bin/docker-php-ext-install pdo_pgsql \ - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install xmlwriter \ - && /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 gettext \ - && /usr/local/bin/docker-php-ext-install pgsql \ - && /usr/local/bin/docker-php-ext-install json \ - && /usr/local/bin/docker-php-ext-install mbstring \ - && 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 ldap \ - && /usr/local/bin/docker-php-ext-install sysvmsg \ - && 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 sysvshm \ - && /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 pdo_firebird \ - && /usr/local/bin/docker-php-ext-install hash \ - && /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 pdo \ - && /usr/local/bin/docker-php-ext-install ctype \ - && /usr/local/bin/docker-php-ext-install fileinfo \ - && /usr/local/bin/docker-php-ext-install sysvsem \ - && /usr/local/bin/docker-php-ext-install pspell \ - && /usr/local/bin/docker-php-ext-install mysqli \ - && /usr/local/bin/docker-php-ext-install pdo_sqlite \ - && 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 imap \ - && /usr/local/bin/docker-php-ext-install bz2 \ - && /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 exif \ - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install xml \ - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install dom \ - && 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-configure xmlreader --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install xmlreader \ - && /usr/local/bin/docker-php-ext-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install session \ - && /usr/local/bin/docker-php-ext-install posix \ - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install simplexml \ - && /usr/local/bin/docker-php-ext-install calendar \ - && /usr/local/bin/docker-php-ext-install mcrypt \ - && /usr/local/bin/docker-php-ext-install enchant \ - && /usr/local/bin/docker-php-ext-install xsl \ - \ - \ - && pecl install xdebug-2.4.1 \ - && docker-php-ext-enable xdebug \ - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - && pecl install mongodb-1.2.11 \ - && docker-php-ext-enable mongodb \ - && pecl install memcache \ - && docker-php-ext-enable memcache \ - && pecl install redis \ - && docker-php-ext-enable redis \ - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - \ - \ - && git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - && git checkout phalcon-v2.0.13 \ - && cd /tmp/phalcon && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - \ + + + + + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + + + + + + + + + + + && pecl install apcu-4.0.11 \ + && docker-php-ext-enable apcu \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install bcmath \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install bz2 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install calendar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install ctype \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install curl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install dba \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install dom \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install enchant \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install exif \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install fileinfo \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install ftp \ + + + + + + + + + && 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-install gd \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install gettext \ + + + + + + + + + && 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 hash \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install iconv \ + + + + + + + + + + + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + + + + + + + + + + + && pecl install imagick \ + && docker-php-ext-enable imagick \ + + + + + + + + + && 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 imap \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install interbase \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install intl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install json \ + + + + + + + + + && 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 ldap \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install mbstring \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install mcrypt \ + + + + + + + + + + + && pecl install memcache \ + && docker-php-ext-enable memcache \ + + + + + + + + + + + && pecl install memcached-2.2.0 \ + && docker-php-ext-enable memcached \ + + + + + + + + + + + && pecl install mongodb-1.2.11 \ + && docker-php-ext-enable mongodb \ + + + + + + + + + + + && pecl install msgpack-0.5.7 \ + && docker-php-ext-enable msgpack \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install mysql \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install mysqli \ + + + + + + + + + + + && pecl install zendopcache \ + && docker-php-ext-enable opcache \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install pcntl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install pdo \ + + + + + + + + + && 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_firebird \ + + + + + + + + + + + && /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_pgsql \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install pdo_sqlite \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install pgsql \ + + + + + + + + + + + && git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + && git checkout phalcon-v2.0.13 \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + + + + + + + + + + && /usr/local/bin/docker-php-ext-install phar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install posix \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install pspell \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install recode \ + + + + + + + + + + + && pecl install redis \ + && docker-php-ext-enable redis \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install session \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install shmop \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install simplexml \ + + + + + + + + + + + && /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-configure soap --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install soap \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install sockets \ + + + + + + + + + + + && pecl install swoole-1.9.23 \ + && docker-php-ext-enable swoole \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install sysvmsg \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install sysvsem \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install sysvshm \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install tidy \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install tokenizer \ + + + + + + + + + + + && pecl install uploadprogress \ + && docker-php-ext-enable uploadprogress \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install wddx \ + + + + + + + + + + + && pecl install xdebug-2.4.1 \ + && docker-php-ext-enable xdebug \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install xml \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install xmlreader \ + + + + + + + + + + + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install xmlwriter \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install xsl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ + && /usr/local/bin/docker-php-ext-install zip \ + + + + + + + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -240,141 +932,145 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^pdo_mysql$' \ - && php-fpm -m | grep -oiE '^pdo_mysql$' \ - && php -m | grep -oiE '^tokenizer$' \ - && php-fpm -m | grep -oiE '^tokenizer$' \ - && php -m | grep -oiE '^dba$' \ - && php-fpm -m | grep -oiE '^dba$' \ - && php -m | grep -oiE '^intl$' \ - && php-fpm -m | grep -oiE '^intl$' \ - && php -m | grep -oiE '^shmop$' \ - && php-fpm -m | grep -oiE '^shmop$' \ - && php -m | grep -oiE '^tidy$' \ - && php-fpm -m | grep -oiE '^tidy$' \ - && php -m | grep -oiE '^bcmath$' \ - && php-fpm -m | grep -oiE '^bcmath$' \ - && php -m | grep -oiE '^phar$' \ - && php-fpm -m | grep -oiE '^phar$' \ - && php -m | grep -oiE '^gd$' \ - && php-fpm -m | grep -oiE '^gd$' \ - && php -m | grep -oiE '^recode$' \ - && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^mysql$' \ - && php-fpm -m | grep -oiE '^mysql$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && php -m | grep -oiE '^curl$' \ - && php-fpm -m | grep -oiE '^curl$' \ - && php -m | grep -oiE '^sockets$' \ - && php-fpm -m | grep -oiE '^sockets$' \ - && php -m | grep -oiE '^ftp$' \ - && php-fpm -m | grep -oiE '^ftp$' \ - && php -m | grep -oiE '^iconv$' \ - && php-fpm -m | grep -oiE '^iconv$' \ - && php -m | grep -oiE '^pdo_pgsql$' \ - && php-fpm -m | grep -oiE '^pdo_pgsql$' \ - && php -m | grep -oiE '^zip$' \ - && php-fpm -m | grep -oiE '^zip$' \ - && php -m | grep -oiE '^xmlwriter$' \ - && php-fpm -m | grep -oiE '^xmlwriter$' \ - && php -m | grep -oiE '^snmp$' \ - && php-fpm -m | grep -oiE '^snmp$' \ - && php -m | grep -oiE '^gettext$' \ - && php-fpm -m | grep -oiE '^gettext$' \ - && php -m | grep -oiE '^pgsql$' \ - && php-fpm -m | grep -oiE '^pgsql$' \ - && php -m | grep -oiE '^json$' \ - && php-fpm -m | grep -oiE '^json$' \ - && php -m | grep -oiE '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^ldap$' \ - && php-fpm -m | grep -oiE '^ldap$' \ - && php -m | grep -oiE '^sysvmsg$' \ - && php-fpm -m | grep -oiE '^sysvmsg$' \ - && php -m | grep -oiE '^gmp$' \ - && php-fpm -m | grep -oiE '^gmp$' \ - && php -m | grep -oiE '^sysvshm$' \ - && php-fpm -m | grep -oiE '^sysvshm$' \ - && php -m | grep -oiE '^soap$' \ - && php-fpm -m | grep -oiE '^soap$' \ - && php -m | grep -oiE '^pdo_firebird$' \ - && php-fpm -m | grep -oiE '^pdo_firebird$' \ - && php -m | grep -oiE '^hash$' \ - && php-fpm -m | grep -oiE '^hash$' \ - && php -m | grep -oiE '^xmlrpc$' \ - && php-fpm -m | grep -oiE '^xmlrpc$' \ - && php -m | grep -oiE '^pdo$' \ - && php-fpm -m | grep -oiE '^pdo$' \ - && php -m | grep -oiE '^ctype$' \ - && php-fpm -m | grep -oiE '^ctype$' \ - && php -m | grep -oiE '^fileinfo$' \ - && php-fpm -m | grep -oiE '^fileinfo$' \ - && php -m | grep -oiE '^sysvsem$' \ - && php-fpm -m | grep -oiE '^sysvsem$' \ - && php -m | grep -oiE '^pspell$' \ - && php-fpm -m | grep -oiE '^pspell$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^pdo_sqlite$' \ - && php-fpm -m | grep -oiE '^pdo_sqlite$' \ - && php -m | grep -oiE '^imap$' \ - && php-fpm -m | grep -oiE '^imap$' \ - && php -m | grep -oiE '^bz2$' \ - && php-fpm -m | grep -oiE '^bz2$' \ - && php -m | grep -oiE '^wddx$' \ - && php-fpm -m | grep -oiE '^wddx$' \ - && php -m | grep -oiE '^exif$' \ - && php-fpm -m | grep -oiE '^exif$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ - && php -m | grep -oiE '^dom$' \ - && php-fpm -m | grep -oiE '^dom$' \ - && php -m | grep -oiE '^pdo_dblib$' \ - && php-fpm -m | grep -oiE '^pdo_dblib$' \ - && php -m | grep -oiE '^xmlreader$' \ - && php-fpm -m | grep -oiE '^xmlreader$' \ - && php -m | grep -oiE '^session$' \ - && php-fpm -m | grep -oiE '^session$' \ - && php -m | grep -oiE '^posix$' \ - && php-fpm -m | grep -oiE '^posix$' \ - && php -m | grep -oiE '^simplexml$' \ - && php-fpm -m | grep -oiE '^simplexml$' \ - && php -m | grep -oiE '^calendar$' \ - && php-fpm -m | grep -oiE '^calendar$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^enchant$' \ - && php-fpm -m | grep -oiE '^enchant$' \ - && php -m | grep -oiE '^xsl$' \ - && php-fpm -m | grep -oiE '^xsl$' \ - && php -m | grep -oiE '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^swoole$' \ - && php-fpm -m | grep -oiE '^swoole$' \ - && php -m | grep -oiE '^mongodb$' \ - && php-fpm -m | grep -oiE '^mongodb$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ - && php -m | grep -oiE '^uploadprogress$' \ - && php-fpm -m | grep -oiE '^uploadprogress$' \ - && php -m | grep -oiE '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && php -m | grep -oiE '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^memcached$' \ - && php-fpm -m | grep -oiE '^memcached$' \ - && php -m | grep -oiE '^igbinary$' \ - && php-fpm -m | grep -oiE '^igbinary$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && php -m | grep -oiE '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && true + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysql$' \ + && php-fpm -m | grep -oiE '^mysql$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^recode$' \ + && php-fpm -m | grep -oiE '^recode$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && 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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index bcee37d..7dce215 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -18,90 +18,91 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ - zlib1g-dev \ - libicu-dev \ - libtidy-dev \ - libssl-dev \ - libpng-dev \ - libjpeg-dev \ - libxpm-dev \ - libvpx-dev \ - zlib1g-dev \ - libfreetype6-dev \ - librecode-dev \ - libcurl4-openssl-dev \ - libssl-dev \ - libpq-dev \ - zlib1g-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libpq-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libldap2-dev \ - libsasl2-dev \ - libgmp-dev \ - libxml2-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libxml2-dev \ - libpspell-dev \ - libedit-dev \ - libreadline-dev \ - libsqlite3-dev \ - libc-client-dev \ - libkrb5-dev \ - libcurl4-openssl-dev \ - libbz2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - freetds-dev \ - libxml2-dev \ - libmm-dev \ - libxml2-dev \ - libmcrypt-dev \ - libenchant-dev \ - libxslt-dev \ - librabbitmq-dev \ - libnghttp2-dev \ - libssl-dev \ - zlib1g-dev \ - libmagickwand-dev \ - zlib1g-dev \ - libmemcached-dev \ - git \ - ca-certificates + 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 \ + 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 \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + ca-certificates \ + git ENV RUN_DEPS \ - libicu52 \ - libtidy-0.99-0 \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - librecode0 \ - libpq5 \ - snmp \ - libpq5 \ - libfbclient2 \ - libfbclient2 \ - libaspell15 \ - libc-client2007e \ - libsybdb5 \ - libmcrypt4 \ - libenchant1c2a \ - libxslt1.1 \ - librabbitmq1 \ - libnghttp2-5 \ - libmagickwand-6.q16-2 \ - libmemcachedutil2 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + ca-certificates ### @@ -113,119 +114,814 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - && /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) tokenizer \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && /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) iconv \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - && /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) gettext \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && 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) sysvshm \ - && /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) pdo_firebird \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ - && /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) pdo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && /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) exif \ - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - && 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-configure xmlreader --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ - && /usr/local/bin/docker-php-ext-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - \ - \ - && pecl install xdebug-2.5.5 \ - && docker-php-ext-enable xdebug \ - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - && pecl install memcache \ - && docker-php-ext-enable memcache \ - && pecl install redis \ - && docker-php-ext-enable redis \ - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - \ - \ - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd /tmp/phalcon && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - \ + + + + + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + + + + + + + + + + + && pecl install apcu-4.0.11 \ + && docker-php-ext-enable apcu \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + + + + + + + + + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + + + + + + + + + && 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) hash \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + + + + + + + + + + + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + + + + + + + + + + + && pecl install imagick \ + && docker-php-ext-enable imagick \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + + + + + + + + + + + && pecl install memcache \ + && docker-php-ext-enable memcache \ + + + + + + + + + + + && pecl install memcached-2.2.0 \ + && docker-php-ext-enable memcached \ + + + + + + + + + + + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + + + + + + + + + + + && pecl install msgpack-0.5.7 \ + && docker-php-ext-enable msgpack \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + + + + + + + + + && 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_firebird \ + + + + + + + + + + + && /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_pgsql \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + + + + + + + + + + + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + + + + + + + + + + + && pecl install redis \ + && docker-php-ext-enable redis \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + + + + + + + + + + + && /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-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) sockets \ + + + + + + + + + + + && pecl install swoole-1.9.23 \ + && docker-php-ext-enable swoole \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + + + + + + + + + + + && pecl install uploadprogress \ + && docker-php-ext-enable uploadprogress \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + + + + + + + + + + + && pecl install xdebug-2.4.1 \ + && docker-php-ext-enable xdebug \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ + + + + + + + + + + + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + + + + + + + + + + + && /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 \ + + + + + + + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -248,147 +944,147 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^pdo_mysql$' \ - && php-fpm -m | grep -oiE '^pdo_mysql$' \ - && php -m | grep -oiE '^tokenizer$' \ - && php-fpm -m | grep -oiE '^tokenizer$' \ - && php -m | grep -oiE '^dba$' \ - && php-fpm -m | grep -oiE '^dba$' \ - && php -m | grep -oiE '^intl$' \ - && php-fpm -m | grep -oiE '^intl$' \ - && php -m | grep -oiE '^shmop$' \ - && php-fpm -m | grep -oiE '^shmop$' \ - && php -m | grep -oiE '^tidy$' \ - && php-fpm -m | grep -oiE '^tidy$' \ - && php -m | grep -oiE '^bcmath$' \ - && php-fpm -m | grep -oiE '^bcmath$' \ - && php -m | grep -oiE '^phar$' \ - && php-fpm -m | grep -oiE '^phar$' \ - && php -m | grep -oiE '^gd$' \ - && php-fpm -m | grep -oiE '^gd$' \ - && php -m | grep -oiE '^recode$' \ - && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^mysql$' \ - && php-fpm -m | grep -oiE '^mysql$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && php -m | grep -oiE '^curl$' \ - && php-fpm -m | grep -oiE '^curl$' \ - && php -m | grep -oiE '^sockets$' \ - && php-fpm -m | grep -oiE '^sockets$' \ - && php -m | grep -oiE '^ftp$' \ - && php-fpm -m | grep -oiE '^ftp$' \ - && php -m | grep -oiE '^iconv$' \ - && php-fpm -m | grep -oiE '^iconv$' \ - && php -m | grep -oiE '^pdo_pgsql$' \ - && php-fpm -m | grep -oiE '^pdo_pgsql$' \ - && php -m | grep -oiE '^zip$' \ - && php-fpm -m | grep -oiE '^zip$' \ - && php -m | grep -oiE '^xmlwriter$' \ - && php-fpm -m | grep -oiE '^xmlwriter$' \ - && php -m | grep -oiE '^snmp$' \ - && php-fpm -m | grep -oiE '^snmp$' \ - && php -m | grep -oiE '^gettext$' \ - && php-fpm -m | grep -oiE '^gettext$' \ - && php -m | grep -oiE '^pgsql$' \ - && php-fpm -m | grep -oiE '^pgsql$' \ - && php -m | grep -oiE '^json$' \ - && php-fpm -m | grep -oiE '^json$' \ - && php -m | grep -oiE '^interbase$' \ - && php-fpm -m | grep -oiE '^interbase$' \ - && php -m | grep -oiE '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^ldap$' \ - && php-fpm -m | grep -oiE '^ldap$' \ - && php -m | grep -oiE '^sysvmsg$' \ - && php-fpm -m | grep -oiE '^sysvmsg$' \ - && php -m | grep -oiE '^gmp$' \ - && php-fpm -m | grep -oiE '^gmp$' \ - && php -m | grep -oiE '^sysvshm$' \ - && php-fpm -m | grep -oiE '^sysvshm$' \ - && php -m | grep -oiE '^soap$' \ - && php-fpm -m | grep -oiE '^soap$' \ - && php -m | grep -oiE '^pdo_firebird$' \ - && php-fpm -m | grep -oiE '^pdo_firebird$' \ - && php -m | grep -oiE '^hash$' \ - && php-fpm -m | grep -oiE '^hash$' \ - && php -m | grep -oiE '^xmlrpc$' \ - && php-fpm -m | grep -oiE '^xmlrpc$' \ - && php -m | grep -oiE '^pdo$' \ - && php-fpm -m | grep -oiE '^pdo$' \ - && php -m | grep -oiE '^ctype$' \ - && php-fpm -m | grep -oiE '^ctype$' \ - && php -m | grep -oiE '^fileinfo$' \ - && php-fpm -m | grep -oiE '^fileinfo$' \ - && php -m | grep -oiE '^sysvsem$' \ - && php-fpm -m | grep -oiE '^sysvsem$' \ - && php -m | grep -oiE '^pspell$' \ - && php-fpm -m | grep -oiE '^pspell$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^readline$' \ - && php-fpm -m | grep -oiE '^readline$' \ - && php -m | grep -oiE '^pdo_sqlite$' \ - && php-fpm -m | grep -oiE '^pdo_sqlite$' \ - && php -m | grep -oiE '^imap$' \ - && php-fpm -m | grep -oiE '^imap$' \ - && php -m | grep -oiE '^bz2$' \ - && php-fpm -m | grep -oiE '^bz2$' \ - && php -m | grep -oiE '^wddx$' \ - && php-fpm -m | grep -oiE '^wddx$' \ - && php -m | grep -oiE '^exif$' \ - && php-fpm -m | grep -oiE '^exif$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ - && php -m | grep -oiE '^dom$' \ - && php-fpm -m | grep -oiE '^dom$' \ - && php -m | grep -oiE '^pdo_dblib$' \ - && php-fpm -m | grep -oiE '^pdo_dblib$' \ - && php -m | grep -oiE '^xmlreader$' \ - && php-fpm -m | grep -oiE '^xmlreader$' \ - && php -m | grep -oiE '^session$' \ - && php-fpm -m | grep -oiE '^session$' \ - && php -m | grep -oiE '^posix$' \ - && php-fpm -m | grep -oiE '^posix$' \ - && php -m | grep -oiE '^simplexml$' \ - && php-fpm -m | grep -oiE '^simplexml$' \ - && php -m | grep -oiE '^calendar$' \ - && php-fpm -m | grep -oiE '^calendar$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^enchant$' \ - && php-fpm -m | grep -oiE '^enchant$' \ - && php -m | grep -oiE '^xsl$' \ - && php-fpm -m | grep -oiE '^xsl$' \ - && php -m | grep -oiE '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^swoole$' \ - && php-fpm -m | grep -oiE '^swoole$' \ - && php -m | grep -oiE '^mongodb$' \ - && php-fpm -m | grep -oiE '^mongodb$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ - && php -m | grep -oiE '^uploadprogress$' \ - && php-fpm -m | grep -oiE '^uploadprogress$' \ - && php -m | grep -oiE '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && php -m | grep -oiE '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^memcached$' \ - && php-fpm -m | grep -oiE '^memcached$' \ - && php -m | grep -oiE '^igbinary$' \ - && php-fpm -m | grep -oiE '^igbinary$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && php -m | grep -oiE '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && true + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysql$' \ + && php-fpm -m | grep -oiE '^mysql$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 index 78bb66c..7e7f668 100644 --- a/Dockerfiles/mods/Dockerfile-5.6 +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -18,92 +18,93 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ - zlib1g-dev \ - libicu-dev \ - libtidy-dev \ - libssl-dev \ - libpng-dev \ - libjpeg-dev \ - libxpm-dev \ - libvpx-dev \ - zlib1g-dev \ - libfreetype6-dev \ - librecode-dev \ - libcurl4-openssl-dev \ - libssl-dev \ - libpq-dev \ - zlib1g-dev \ - libzip-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libpq-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libldap2-dev \ - libsasl2-dev \ - libgmp-dev \ - libxml2-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libxml2-dev \ - libpspell-dev \ - libedit-dev \ - libreadline-dev \ - libsqlite3-dev \ - libc-client-dev \ - libkrb5-dev \ - libcurl4-openssl-dev \ - libbz2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - freetds-dev \ - libxml2-dev \ - libmm-dev \ - libxml2-dev \ - libmcrypt-dev \ - libenchant-dev \ - libxslt-dev \ - librabbitmq-dev \ - libnghttp2-dev \ - libssl-dev \ - zlib1g-dev \ - libmagickwand-dev \ - zlib1g-dev \ - libmemcached-dev \ - git \ - ca-certificates + 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 \ + 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 \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + libzip-dev \ + ca-certificates \ + git ENV RUN_DEPS \ - libicu52 \ - libtidy-0.99-0 \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - librecode0 \ - libpq5 \ - libzip2 \ - snmp \ - libpq5 \ - libfbclient2 \ - libfbclient2 \ - libaspell15 \ - libc-client2007e \ - libsybdb5 \ - libmcrypt4 \ - libenchant1c2a \ - libxslt1.1 \ - librabbitmq1 \ - libnghttp2-5 \ - libmagickwand-6.q16-2 \ - libmemcachedutil2 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + libzip2 \ + ca-certificates ### @@ -115,119 +116,814 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - && /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) tokenizer \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && /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) iconv \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - && /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) gettext \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && 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) sysvshm \ - && /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) pdo_firebird \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ - && /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) pdo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && /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) exif \ - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - && 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-configure xmlreader --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ - && /usr/local/bin/docker-php-ext-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - \ - \ - && pecl install xdebug-2.5.5 \ - && docker-php-ext-enable xdebug \ - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - && pecl install memcache \ - && docker-php-ext-enable memcache \ - && pecl install redis \ - && docker-php-ext-enable redis \ - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - \ - \ - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd /tmp/phalcon && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - \ + + + + + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + + + + + + + + + + + && pecl install apcu-4.0.11 \ + && docker-php-ext-enable apcu \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + + + + + + + + + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + + + + + + + + + && 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) hash \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + + + + + + + + + + + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + + + + + + + + + + + && pecl install imagick \ + && docker-php-ext-enable imagick \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + + + + + + + + + + + && pecl install memcache \ + && docker-php-ext-enable memcache \ + + + + + + + + + + + && pecl install memcached-2.2.0 \ + && docker-php-ext-enable memcached \ + + + + + + + + + + + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + + + + + + + + + + + && pecl install msgpack-0.5.7 \ + && docker-php-ext-enable msgpack \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + + + + + + + + + && 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_firebird \ + + + + + + + + + + + && /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_pgsql \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + + + + + + + + + + + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + + + + + + + + + + + && pecl install redis \ + && docker-php-ext-enable redis \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + + + + + + + + + + + && /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-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) sockets \ + + + + + + + + + + + && pecl install swoole-1.9.23 \ + && docker-php-ext-enable swoole \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + + + + + + + + + + + && pecl install uploadprogress \ + && docker-php-ext-enable uploadprogress \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + + + + + + + + + + + && pecl install xdebug-2.4.1 \ + && docker-php-ext-enable xdebug \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ + + + + + + + + + + + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + + + + + + + + + + + && /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 \ + + + + + + + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -250,147 +946,147 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^pdo_mysql$' \ - && php-fpm -m | grep -oiE '^pdo_mysql$' \ - && php -m | grep -oiE '^tokenizer$' \ - && php-fpm -m | grep -oiE '^tokenizer$' \ - && php -m | grep -oiE '^dba$' \ - && php-fpm -m | grep -oiE '^dba$' \ - && php -m | grep -oiE '^intl$' \ - && php-fpm -m | grep -oiE '^intl$' \ - && php -m | grep -oiE '^shmop$' \ - && php-fpm -m | grep -oiE '^shmop$' \ - && php -m | grep -oiE '^tidy$' \ - && php-fpm -m | grep -oiE '^tidy$' \ - && php -m | grep -oiE '^bcmath$' \ - && php-fpm -m | grep -oiE '^bcmath$' \ - && php -m | grep -oiE '^phar$' \ - && php-fpm -m | grep -oiE '^phar$' \ - && php -m | grep -oiE '^gd$' \ - && php-fpm -m | grep -oiE '^gd$' \ - && php -m | grep -oiE '^recode$' \ - && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^mysql$' \ - && php-fpm -m | grep -oiE '^mysql$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && php -m | grep -oiE '^curl$' \ - && php-fpm -m | grep -oiE '^curl$' \ - && php -m | grep -oiE '^sockets$' \ - && php-fpm -m | grep -oiE '^sockets$' \ - && php -m | grep -oiE '^ftp$' \ - && php-fpm -m | grep -oiE '^ftp$' \ - && php -m | grep -oiE '^iconv$' \ - && php-fpm -m | grep -oiE '^iconv$' \ - && php -m | grep -oiE '^pdo_pgsql$' \ - && php-fpm -m | grep -oiE '^pdo_pgsql$' \ - && php -m | grep -oiE '^zip$' \ - && php-fpm -m | grep -oiE '^zip$' \ - && php -m | grep -oiE '^xmlwriter$' \ - && php-fpm -m | grep -oiE '^xmlwriter$' \ - && php -m | grep -oiE '^snmp$' \ - && php-fpm -m | grep -oiE '^snmp$' \ - && php -m | grep -oiE '^gettext$' \ - && php-fpm -m | grep -oiE '^gettext$' \ - && php -m | grep -oiE '^pgsql$' \ - && php-fpm -m | grep -oiE '^pgsql$' \ - && php -m | grep -oiE '^json$' \ - && php-fpm -m | grep -oiE '^json$' \ - && php -m | grep -oiE '^interbase$' \ - && php-fpm -m | grep -oiE '^interbase$' \ - && php -m | grep -oiE '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^ldap$' \ - && php-fpm -m | grep -oiE '^ldap$' \ - && php -m | grep -oiE '^sysvmsg$' \ - && php-fpm -m | grep -oiE '^sysvmsg$' \ - && php -m | grep -oiE '^gmp$' \ - && php-fpm -m | grep -oiE '^gmp$' \ - && php -m | grep -oiE '^sysvshm$' \ - && php-fpm -m | grep -oiE '^sysvshm$' \ - && php -m | grep -oiE '^soap$' \ - && php-fpm -m | grep -oiE '^soap$' \ - && php -m | grep -oiE '^pdo_firebird$' \ - && php-fpm -m | grep -oiE '^pdo_firebird$' \ - && php -m | grep -oiE '^hash$' \ - && php-fpm -m | grep -oiE '^hash$' \ - && php -m | grep -oiE '^xmlrpc$' \ - && php-fpm -m | grep -oiE '^xmlrpc$' \ - && php -m | grep -oiE '^pdo$' \ - && php-fpm -m | grep -oiE '^pdo$' \ - && php -m | grep -oiE '^ctype$' \ - && php-fpm -m | grep -oiE '^ctype$' \ - && php -m | grep -oiE '^fileinfo$' \ - && php-fpm -m | grep -oiE '^fileinfo$' \ - && php -m | grep -oiE '^sysvsem$' \ - && php-fpm -m | grep -oiE '^sysvsem$' \ - && php -m | grep -oiE '^pspell$' \ - && php-fpm -m | grep -oiE '^pspell$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^readline$' \ - && php-fpm -m | grep -oiE '^readline$' \ - && php -m | grep -oiE '^pdo_sqlite$' \ - && php-fpm -m | grep -oiE '^pdo_sqlite$' \ - && php -m | grep -oiE '^imap$' \ - && php-fpm -m | grep -oiE '^imap$' \ - && php -m | grep -oiE '^bz2$' \ - && php-fpm -m | grep -oiE '^bz2$' \ - && php -m | grep -oiE '^wddx$' \ - && php-fpm -m | grep -oiE '^wddx$' \ - && php -m | grep -oiE '^exif$' \ - && php-fpm -m | grep -oiE '^exif$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ - && php -m | grep -oiE '^dom$' \ - && php-fpm -m | grep -oiE '^dom$' \ - && php -m | grep -oiE '^pdo_dblib$' \ - && php-fpm -m | grep -oiE '^pdo_dblib$' \ - && php -m | grep -oiE '^xmlreader$' \ - && php-fpm -m | grep -oiE '^xmlreader$' \ - && php -m | grep -oiE '^session$' \ - && php-fpm -m | grep -oiE '^session$' \ - && php -m | grep -oiE '^posix$' \ - && php-fpm -m | grep -oiE '^posix$' \ - && php -m | grep -oiE '^simplexml$' \ - && php-fpm -m | grep -oiE '^simplexml$' \ - && php -m | grep -oiE '^calendar$' \ - && php-fpm -m | grep -oiE '^calendar$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^enchant$' \ - && php-fpm -m | grep -oiE '^enchant$' \ - && php -m | grep -oiE '^xsl$' \ - && php-fpm -m | grep -oiE '^xsl$' \ - && php -m | grep -oiE '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^swoole$' \ - && php-fpm -m | grep -oiE '^swoole$' \ - && php -m | grep -oiE '^mongodb$' \ - && php-fpm -m | grep -oiE '^mongodb$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ - && php -m | grep -oiE '^uploadprogress$' \ - && php-fpm -m | grep -oiE '^uploadprogress$' \ - && php -m | grep -oiE '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && php -m | grep -oiE '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^memcached$' \ - && php-fpm -m | grep -oiE '^memcached$' \ - && php -m | grep -oiE '^igbinary$' \ - && php-fpm -m | grep -oiE '^igbinary$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && php -m | grep -oiE '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && true + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysql$' \ + && php-fpm -m | grep -oiE '^mysql$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 index f8f0a15..ac1cfc2 100644 --- a/Dockerfiles/mods/Dockerfile-7.0 +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -18,93 +18,94 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ - zlib1g-dev \ - libicu-dev \ - libtidy-dev \ - libssl-dev \ - libpng-dev \ - libjpeg-dev \ - libxpm-dev \ - libvpx-dev \ - zlib1g-dev \ - libfreetype6-dev \ - libwebp-dev \ - librecode-dev \ - libcurl4-openssl-dev \ - libssl-dev \ - libpq-dev \ - zlib1g-dev \ - libzip-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libpq-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libldap2-dev \ - libsasl2-dev \ - libgmp-dev \ - libxml2-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libxml2-dev \ - libpspell-dev \ - libedit-dev \ - libreadline-dev \ - libsqlite3-dev \ - libc-client-dev \ - libkrb5-dev \ - libcurl4-openssl-dev \ - libbz2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - freetds-dev \ - libmm-dev \ - libxml2-dev \ - libmcrypt-dev \ - libenchant-dev \ - libxslt-dev \ - librabbitmq-dev \ - libnghttp2-dev \ - libssl-dev \ - libmagickwand-dev \ - zlib1g-dev \ - libmemcached-dev \ - git \ - zlib1g-dev \ - ca-certificates + 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 \ + libicu-dev \ + libldap2-dev \ + libsasl2-dev \ + libmcrypt-dev \ + zlib1g-dev \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + libzip-dev \ + ca-certificates \ + git ENV RUN_DEPS \ - libicu52 \ - libtidy-0.99-0 \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - libwebp-dev \ - librecode0 \ - libpq5 \ - libzip2 \ - snmp \ - libpq5 \ - libfbclient2 \ - libfbclient2 \ - libaspell15 \ - libc-client2007e \ - libsybdb5 \ - libmcrypt4 \ - libenchant1c2a \ - libxslt1.1 \ - librabbitmq1 \ - libnghttp2-5 \ - libmagickwand-6.q16-2 \ - libmemcachedutil2 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libwebp-dev \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + libzip2 \ + ca-certificates ### @@ -116,124 +117,801 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - && /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) tokenizer \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && /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) iconv \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - && /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) gettext \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && 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) sysvshm \ - && /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) pdo_firebird \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ - && /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) pdo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && /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) exif \ - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - && 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-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - \ - \ - && pecl install xdebug \ - && docker-php-ext-enable xdebug \ - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - && pecl install swoole \ - && docker-php-ext-enable swoole \ - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - && pecl install redis \ - && docker-php-ext-enable redis \ - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && pecl install msgpack \ - && docker-php-ext-enable msgpack \ - && pecl install memcached \ - && docker-php-ext-enable memcached \ - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - && pecl install apcu \ - && docker-php-ext-enable apcu \ - \ - \ - && git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ - && cd /tmp/uploadprogress \ - && git checkout master \ - && cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \ - && docker-php-ext-enable uploadprogress \ - && cd / && rm -rf /tmp/uploadprogress \ - && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ - && cd /tmp/memcache \ - && git checkout NON_BLOCKING_IO_php7 \ - && cd /tmp/memcache && phpize && ./configure --with-zlib-dir=/usr && make -j$(getconf _NPROCESSORS_ONLN) && make install \ - && docker-php-ext-enable memcache \ - && cd / && rm -rf /tmp/memcache \ - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd /tmp/phalcon && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - \ + + + + + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + + + + + + + + + + + && pecl install apcu \ + && docker-php-ext-enable apcu \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + + + + + + + + + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + + + + + + + + + && 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) hash \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + + + + + + + + + + + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + + + + + + + + + + + && pecl install imagick \ + && docker-php-ext-enable imagick \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + + + + + + + + + + + && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + && phpize \ + && ./configure --with-zlib-dir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + && docker-php-ext-enable memcache \ + && cd / && rm -rf /tmp/memcache \ + + + + + + + + + + && pecl install memcached \ + && docker-php-ext-enable memcached \ + + + + + + + + + + + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + + + + + + + + + + + && pecl install msgpack \ + && docker-php-ext-enable msgpack \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + + + + + + + + + && 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_firebird \ + + + + + + + + + + + && /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_pgsql \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + + + + + + + + + + + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + + + + + + + + + + + && pecl install redis \ + && docker-php-ext-enable redis \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + + + + + + + + + + + && /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-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) sockets \ + + + + + + + + + + + && pecl install swoole \ + && docker-php-ext-enable swoole \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + + + + + + + + + + + && git clone -v 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 \ + && cd / && rm -rf /tmp/uploadprogress \ + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + + + + + + + + + + + && pecl install xdebug \ + && docker-php-ext-enable xdebug \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + + + + + + + + + + + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + + + + + + + + + + + && /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 \ + + + + + + + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -256,143 +934,143 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^pdo_mysql$' \ - && php-fpm -m | grep -oiE '^pdo_mysql$' \ - && php -m | grep -oiE '^tokenizer$' \ - && php-fpm -m | grep -oiE '^tokenizer$' \ - && php -m | grep -oiE '^dba$' \ - && php-fpm -m | grep -oiE '^dba$' \ - && php -m | grep -oiE '^intl$' \ - && php-fpm -m | grep -oiE '^intl$' \ - && php -m | grep -oiE '^shmop$' \ - && php-fpm -m | grep -oiE '^shmop$' \ - && php -m | grep -oiE '^tidy$' \ - && php-fpm -m | grep -oiE '^tidy$' \ - && php -m | grep -oiE '^bcmath$' \ - && php-fpm -m | grep -oiE '^bcmath$' \ - && php -m | grep -oiE '^phar$' \ - && php-fpm -m | grep -oiE '^phar$' \ - && php -m | grep -oiE '^gd$' \ - && php-fpm -m | grep -oiE '^gd$' \ - && php -m | grep -oiE '^recode$' \ - && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && php -m | grep -oiE '^curl$' \ - && php-fpm -m | grep -oiE '^curl$' \ - && php -m | grep -oiE '^sockets$' \ - && php-fpm -m | grep -oiE '^sockets$' \ - && php -m | grep -oiE '^ftp$' \ - && php-fpm -m | grep -oiE '^ftp$' \ - && php -m | grep -oiE '^iconv$' \ - && php-fpm -m | grep -oiE '^iconv$' \ - && php -m | grep -oiE '^pdo_pgsql$' \ - && php-fpm -m | grep -oiE '^pdo_pgsql$' \ - && php -m | grep -oiE '^zip$' \ - && php-fpm -m | grep -oiE '^zip$' \ - && php -m | grep -oiE '^xmlwriter$' \ - && php-fpm -m | grep -oiE '^xmlwriter$' \ - && php -m | grep -oiE '^snmp$' \ - && php-fpm -m | grep -oiE '^snmp$' \ - && php -m | grep -oiE '^gettext$' \ - && php-fpm -m | grep -oiE '^gettext$' \ - && php -m | grep -oiE '^pgsql$' \ - && php-fpm -m | grep -oiE '^pgsql$' \ - && php -m | grep -oiE '^json$' \ - && php-fpm -m | grep -oiE '^json$' \ - && php -m | grep -oiE '^interbase$' \ - && php-fpm -m | grep -oiE '^interbase$' \ - && php -m | grep -oiE '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^ldap$' \ - && php-fpm -m | grep -oiE '^ldap$' \ - && php -m | grep -oiE '^sysvmsg$' \ - && php-fpm -m | grep -oiE '^sysvmsg$' \ - && php -m | grep -oiE '^gmp$' \ - && php-fpm -m | grep -oiE '^gmp$' \ - && php -m | grep -oiE '^sysvshm$' \ - && php-fpm -m | grep -oiE '^sysvshm$' \ - && php -m | grep -oiE '^soap$' \ - && php-fpm -m | grep -oiE '^soap$' \ - && php -m | grep -oiE '^pdo_firebird$' \ - && php-fpm -m | grep -oiE '^pdo_firebird$' \ - && php -m | grep -oiE '^hash$' \ - && php-fpm -m | grep -oiE '^hash$' \ - && php -m | grep -oiE '^xmlrpc$' \ - && php-fpm -m | grep -oiE '^xmlrpc$' \ - && php -m | grep -oiE '^pdo$' \ - && php-fpm -m | grep -oiE '^pdo$' \ - && php -m | grep -oiE '^ctype$' \ - && php-fpm -m | grep -oiE '^ctype$' \ - && php -m | grep -oiE '^fileinfo$' \ - && php-fpm -m | grep -oiE '^fileinfo$' \ - && php -m | grep -oiE '^sysvsem$' \ - && php-fpm -m | grep -oiE '^sysvsem$' \ - && php -m | grep -oiE '^pspell$' \ - && php-fpm -m | grep -oiE '^pspell$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^readline$' \ - && php-fpm -m | grep -oiE '^readline$' \ - && php -m | grep -oiE '^pdo_sqlite$' \ - && php-fpm -m | grep -oiE '^pdo_sqlite$' \ - && php -m | grep -oiE '^imap$' \ - && php-fpm -m | grep -oiE '^imap$' \ - && php -m | grep -oiE '^bz2$' \ - && php-fpm -m | grep -oiE '^bz2$' \ - && php -m | grep -oiE '^wddx$' \ - && php-fpm -m | grep -oiE '^wddx$' \ - && php -m | grep -oiE '^exif$' \ - && php-fpm -m | grep -oiE '^exif$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ - && php -m | grep -oiE '^dom$' \ - && php-fpm -m | grep -oiE '^dom$' \ - && php -m | grep -oiE '^pdo_dblib$' \ - && php-fpm -m | grep -oiE '^pdo_dblib$' \ - && php -m | grep -oiE '^session$' \ - && php-fpm -m | grep -oiE '^session$' \ - && php -m | grep -oiE '^posix$' \ - && php-fpm -m | grep -oiE '^posix$' \ - && php -m | grep -oiE '^simplexml$' \ - && php-fpm -m | grep -oiE '^simplexml$' \ - && php -m | grep -oiE '^calendar$' \ - && php-fpm -m | grep -oiE '^calendar$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^enchant$' \ - && php-fpm -m | grep -oiE '^enchant$' \ - && php -m | grep -oiE '^xsl$' \ - && php-fpm -m | grep -oiE '^xsl$' \ - && php -m | grep -oiE '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^swoole$' \ - && php-fpm -m | grep -oiE '^swoole$' \ - && php -m | grep -oiE '^mongodb$' \ - && php-fpm -m | grep -oiE '^mongodb$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ - && php -m | grep -oiE '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && php -m | grep -oiE '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^memcached$' \ - && php-fpm -m | grep -oiE '^memcached$' \ - && php -m | grep -oiE '^igbinary$' \ - && php-fpm -m | grep -oiE '^igbinary$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && php -m | grep -oiE '^uploadprogress$' \ - && php-fpm -m | grep -oiE '^uploadprogress$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && php -m | grep -oiE '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && true + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 index adafcbe..f0ee7cf 100644 --- a/Dockerfiles/mods/Dockerfile-7.1 +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -18,93 +18,94 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ - zlib1g-dev \ - libicu-dev \ - libtidy-dev \ - libssl-dev \ - libpng-dev \ - libjpeg-dev \ - libxpm-dev \ - libvpx-dev \ - zlib1g-dev \ - libfreetype6-dev \ - libwebp-dev \ - librecode-dev \ - libcurl4-openssl-dev \ - libssl-dev \ - libpq-dev \ - zlib1g-dev \ - libzip-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libpq-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libldap2-dev \ - libsasl2-dev \ - libgmp-dev \ - libxml2-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libxml2-dev \ - libpspell-dev \ - libedit-dev \ - libreadline-dev \ - libsqlite3-dev \ - libc-client-dev \ - libkrb5-dev \ - libcurl4-openssl-dev \ - libbz2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - freetds-dev \ - libmm-dev \ - libxml2-dev \ - libmcrypt-dev \ - libenchant-dev \ - libxslt-dev \ - librabbitmq-dev \ - libnghttp2-dev \ - libssl-dev \ - libmagickwand-dev \ - zlib1g-dev \ - libmemcached-dev \ - git \ - zlib1g-dev \ - ca-certificates + 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 \ + libicu-dev \ + libldap2-dev \ + libsasl2-dev \ + libmcrypt-dev \ + zlib1g-dev \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + libzip-dev \ + ca-certificates \ + git ENV RUN_DEPS \ - libicu52 \ - libtidy-0.99-0 \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - libwebp-dev \ - librecode0 \ - libpq5 \ - libzip2 \ - snmp \ - libpq5 \ - libfbclient2 \ - libfbclient2 \ - libaspell15 \ - libc-client2007e \ - libsybdb5 \ - libmcrypt4 \ - libenchant1c2a \ - libxslt1.1 \ - librabbitmq1 \ - libnghttp2-5 \ - libmagickwand-6.q16-2 \ - libmemcachedutil2 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libwebp-dev \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + libzip2 \ + ca-certificates ### @@ -116,124 +117,801 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - && /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) tokenizer \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && /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) iconv \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - && /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) gettext \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && 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) sysvshm \ - && /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) pdo_firebird \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ - && /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) pdo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && /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) exif \ - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - && 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-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - \ - \ - && pecl install xdebug \ - && docker-php-ext-enable xdebug \ - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - && pecl install swoole \ - && docker-php-ext-enable swoole \ - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - && pecl install redis \ - && docker-php-ext-enable redis \ - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && pecl install msgpack \ - && docker-php-ext-enable msgpack \ - && pecl install memcached \ - && docker-php-ext-enable memcached \ - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - && pecl install apcu \ - && docker-php-ext-enable apcu \ - \ - \ - && git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ - && cd /tmp/uploadprogress \ - && git checkout master \ - && cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \ - && docker-php-ext-enable uploadprogress \ - && cd / && rm -rf /tmp/uploadprogress \ - && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ - && cd /tmp/memcache \ - && git checkout NON_BLOCKING_IO_php7 \ - && cd /tmp/memcache && phpize && ./configure --with-zlib-dir=/usr && make -j$(getconf _NPROCESSORS_ONLN) && make install \ - && docker-php-ext-enable memcache \ - && cd / && rm -rf /tmp/memcache \ - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd /tmp/phalcon && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - \ + + + + + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + + + + + + + + + + + && pecl install apcu \ + && docker-php-ext-enable apcu \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + + + + + + + + + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + + + + + + + + + && 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) hash \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + + + + + + + + + + + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + + + + + + + + + + + && pecl install imagick \ + && docker-php-ext-enable imagick \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + + + + + + + + + + + && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + && phpize \ + && ./configure --with-zlib-dir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + && docker-php-ext-enable memcache \ + && cd / && rm -rf /tmp/memcache \ + + + + + + + + + + && pecl install memcached \ + && docker-php-ext-enable memcached \ + + + + + + + + + + + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + + + + + + + + + + + && pecl install msgpack \ + && docker-php-ext-enable msgpack \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + + + + + + + + + && 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_firebird \ + + + + + + + + + + + && /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_pgsql \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + + + + + + + + + + + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + + + + + + + + + + + && pecl install redis \ + && docker-php-ext-enable redis \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + + + + + + + + + + + && /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-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) sockets \ + + + + + + + + + + + && pecl install swoole \ + && docker-php-ext-enable swoole \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + + + + + + + + + + + && git clone -v 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 \ + && cd / && rm -rf /tmp/uploadprogress \ + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + + + + + + + + + + + && pecl install xdebug \ + && docker-php-ext-enable xdebug \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + + + + + + + + + + + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + + + + + + + + + + + && /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 \ + + + + + + + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -256,143 +934,143 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^pdo_mysql$' \ - && php-fpm -m | grep -oiE '^pdo_mysql$' \ - && php -m | grep -oiE '^tokenizer$' \ - && php-fpm -m | grep -oiE '^tokenizer$' \ - && php -m | grep -oiE '^dba$' \ - && php-fpm -m | grep -oiE '^dba$' \ - && php -m | grep -oiE '^intl$' \ - && php-fpm -m | grep -oiE '^intl$' \ - && php -m | grep -oiE '^shmop$' \ - && php-fpm -m | grep -oiE '^shmop$' \ - && php -m | grep -oiE '^tidy$' \ - && php-fpm -m | grep -oiE '^tidy$' \ - && php -m | grep -oiE '^bcmath$' \ - && php-fpm -m | grep -oiE '^bcmath$' \ - && php -m | grep -oiE '^phar$' \ - && php-fpm -m | grep -oiE '^phar$' \ - && php -m | grep -oiE '^gd$' \ - && php-fpm -m | grep -oiE '^gd$' \ - && php -m | grep -oiE '^recode$' \ - && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && php -m | grep -oiE '^curl$' \ - && php-fpm -m | grep -oiE '^curl$' \ - && php -m | grep -oiE '^sockets$' \ - && php-fpm -m | grep -oiE '^sockets$' \ - && php -m | grep -oiE '^ftp$' \ - && php-fpm -m | grep -oiE '^ftp$' \ - && php -m | grep -oiE '^iconv$' \ - && php-fpm -m | grep -oiE '^iconv$' \ - && php -m | grep -oiE '^pdo_pgsql$' \ - && php-fpm -m | grep -oiE '^pdo_pgsql$' \ - && php -m | grep -oiE '^zip$' \ - && php-fpm -m | grep -oiE '^zip$' \ - && php -m | grep -oiE '^xmlwriter$' \ - && php-fpm -m | grep -oiE '^xmlwriter$' \ - && php -m | grep -oiE '^snmp$' \ - && php-fpm -m | grep -oiE '^snmp$' \ - && php -m | grep -oiE '^gettext$' \ - && php-fpm -m | grep -oiE '^gettext$' \ - && php -m | grep -oiE '^pgsql$' \ - && php-fpm -m | grep -oiE '^pgsql$' \ - && php -m | grep -oiE '^json$' \ - && php-fpm -m | grep -oiE '^json$' \ - && php -m | grep -oiE '^interbase$' \ - && php-fpm -m | grep -oiE '^interbase$' \ - && php -m | grep -oiE '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^ldap$' \ - && php-fpm -m | grep -oiE '^ldap$' \ - && php -m | grep -oiE '^sysvmsg$' \ - && php-fpm -m | grep -oiE '^sysvmsg$' \ - && php -m | grep -oiE '^gmp$' \ - && php-fpm -m | grep -oiE '^gmp$' \ - && php -m | grep -oiE '^sysvshm$' \ - && php-fpm -m | grep -oiE '^sysvshm$' \ - && php -m | grep -oiE '^soap$' \ - && php-fpm -m | grep -oiE '^soap$' \ - && php -m | grep -oiE '^pdo_firebird$' \ - && php-fpm -m | grep -oiE '^pdo_firebird$' \ - && php -m | grep -oiE '^hash$' \ - && php-fpm -m | grep -oiE '^hash$' \ - && php -m | grep -oiE '^xmlrpc$' \ - && php-fpm -m | grep -oiE '^xmlrpc$' \ - && php -m | grep -oiE '^pdo$' \ - && php-fpm -m | grep -oiE '^pdo$' \ - && php -m | grep -oiE '^ctype$' \ - && php-fpm -m | grep -oiE '^ctype$' \ - && php -m | grep -oiE '^fileinfo$' \ - && php-fpm -m | grep -oiE '^fileinfo$' \ - && php -m | grep -oiE '^sysvsem$' \ - && php-fpm -m | grep -oiE '^sysvsem$' \ - && php -m | grep -oiE '^pspell$' \ - && php-fpm -m | grep -oiE '^pspell$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^readline$' \ - && php-fpm -m | grep -oiE '^readline$' \ - && php -m | grep -oiE '^pdo_sqlite$' \ - && php-fpm -m | grep -oiE '^pdo_sqlite$' \ - && php -m | grep -oiE '^imap$' \ - && php-fpm -m | grep -oiE '^imap$' \ - && php -m | grep -oiE '^bz2$' \ - && php-fpm -m | grep -oiE '^bz2$' \ - && php -m | grep -oiE '^wddx$' \ - && php-fpm -m | grep -oiE '^wddx$' \ - && php -m | grep -oiE '^exif$' \ - && php-fpm -m | grep -oiE '^exif$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ - && php -m | grep -oiE '^dom$' \ - && php-fpm -m | grep -oiE '^dom$' \ - && php -m | grep -oiE '^pdo_dblib$' \ - && php-fpm -m | grep -oiE '^pdo_dblib$' \ - && php -m | grep -oiE '^session$' \ - && php-fpm -m | grep -oiE '^session$' \ - && php -m | grep -oiE '^posix$' \ - && php-fpm -m | grep -oiE '^posix$' \ - && php -m | grep -oiE '^simplexml$' \ - && php-fpm -m | grep -oiE '^simplexml$' \ - && php -m | grep -oiE '^calendar$' \ - && php-fpm -m | grep -oiE '^calendar$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^enchant$' \ - && php-fpm -m | grep -oiE '^enchant$' \ - && php -m | grep -oiE '^xsl$' \ - && php-fpm -m | grep -oiE '^xsl$' \ - && php -m | grep -oiE '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^swoole$' \ - && php-fpm -m | grep -oiE '^swoole$' \ - && php -m | grep -oiE '^mongodb$' \ - && php-fpm -m | grep -oiE '^mongodb$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ - && php -m | grep -oiE '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && php -m | grep -oiE '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^memcached$' \ - && php-fpm -m | grep -oiE '^memcached$' \ - && php -m | grep -oiE '^igbinary$' \ - && php-fpm -m | grep -oiE '^igbinary$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && php -m | grep -oiE '^uploadprogress$' \ - && php-fpm -m | grep -oiE '^uploadprogress$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && php -m | grep -oiE '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && true + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 index a0ca9e0..a39c874 100644 --- a/Dockerfiles/mods/Dockerfile-7.2 +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -18,94 +18,95 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ - zlib1g-dev \ - libicu-dev \ - libtidy-dev \ - libssl-dev \ - libpng-dev \ - libjpeg-dev \ - libxpm-dev \ - libvpx-dev \ - zlib1g-dev \ - libfreetype6-dev \ - libwebp-dev \ - librecode-dev \ - libcurl4-openssl-dev \ - libssl-dev \ - libpq-dev \ - zlib1g-dev \ - libzip-dev \ - libsodium-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libpq-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libldap2-dev \ - libsasl2-dev \ - libgmp-dev \ - libxml2-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - libxml2-dev \ - libpspell-dev \ - libedit-dev \ - libreadline-dev \ - libsqlite3-dev \ - libc-client-dev \ - libkrb5-dev \ - libcurl4-openssl-dev \ - libbz2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - freetds-dev \ - libmm-dev \ - libxml2-dev \ - libenchant-dev \ - libxslt-dev \ - librabbitmq-dev \ - libnghttp2-dev \ - libssl-dev \ - libmagickwand-dev \ - libmcrypt-dev \ - zlib1g-dev \ - libmemcached-dev \ - git \ - zlib1g-dev \ - ca-certificates + 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 \ + libicu-dev \ + libldap2-dev \ + libsasl2-dev \ + libmcrypt-dev \ + zlib1g-dev \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libsodium-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + libzip-dev \ + ca-certificates \ + git ENV RUN_DEPS \ - libicu57 \ - libtidy5 \ - libpng16-16 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx4 \ - libfreetype6 \ - libwebp6 \ - librecode0 \ - libpq5 \ - libzip4 \ - snmp \ - libpq5 \ - libfbclient2 \ - libfbclient2 \ - libaspell15 \ - libc-client2007e \ - libsybdb5 \ - libenchant1c2a \ - libxslt1.1 \ - librabbitmq4 \ - libnghttp2-14 \ - libmagickwand-6.q16-3 \ - libmcrypt4 \ - libmemcachedutil2 \ - ca-certificates + librabbitmq4 \ + libenchant1c2a \ + libpng16-16 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx4 \ + libfreetype6 \ + libwebp6 \ + libmagickwand-6.q16-3 \ + libc-client2007e \ + libfbclient2 \ + libicu57 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-14 \ + libtidy5 \ + libxslt1.1 \ + libzip4 \ + ca-certificates ### @@ -117,126 +118,812 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - && /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) tokenizer \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && /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) iconv \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && /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) sodium \ - && /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - && /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) gettext \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && 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) sysvshm \ - && /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) pdo_firebird \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \ - && /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) pdo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - && 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 \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && /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) exif \ - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - && 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-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - \ - \ - && pecl install xdebug \ - && docker-php-ext-enable xdebug \ - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - && pecl install swoole \ - && docker-php-ext-enable swoole \ - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - && pecl install redis \ - && docker-php-ext-enable redis \ - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && pecl install msgpack \ - && docker-php-ext-enable msgpack \ - && pecl install mcrypt-1.0.1 \ - && docker-php-ext-enable mcrypt \ - && pecl install memcached \ - && docker-php-ext-enable memcached \ - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - && pecl install apcu \ - && docker-php-ext-enable apcu \ - \ - \ - && git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ - && cd /tmp/uploadprogress \ - && git checkout master \ - && cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \ - && docker-php-ext-enable uploadprogress \ - && cd / && rm -rf /tmp/uploadprogress \ - && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ - && cd /tmp/memcache \ - && git checkout NON_BLOCKING_IO_php7 \ - && cd /tmp/memcache && phpize && ./configure --with-zlib-dir=/usr && make -j$(getconf _NPROCESSORS_ONLN) && make install \ - && docker-php-ext-enable memcache \ - && cd / && rm -rf /tmp/memcache \ - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd /tmp/phalcon && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - \ + + + + + && pecl install amqp \ + && docker-php-ext-enable amqp \ + + + + + + + + + + + && pecl install apcu \ + && docker-php-ext-enable apcu \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + + + + + + + + + && 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) hash \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + + + + + + + + + + + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + + + + + + + + + + + && pecl install imagick \ + && docker-php-ext-enable imagick \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + + + + + + + + + && 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 \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + + + + + + + + + + + && pecl install mcrypt-1.0.1 \ + && docker-php-ext-enable mcrypt \ + + + + + + + + + + + && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + && phpize \ + && ./configure --with-zlib-dir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + && docker-php-ext-enable memcache \ + && cd / && rm -rf /tmp/memcache \ + + + + + + + + + + && pecl install memcached \ + && docker-php-ext-enable memcached \ + + + + + + + + + + + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + + + + + + + + + + + && pecl install msgpack \ + && docker-php-ext-enable msgpack \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + + + + + + + + + && 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_firebird \ + + + + + + + + + + + && /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_pgsql \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + + + + + + + + + + + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + + + + + + + + + + + && pecl install redis \ + && docker-php-ext-enable redis \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + + + + + + + + + + + && /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-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) sockets \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sodium \ + + + + + + + + + + + && pecl install swoole \ + && docker-php-ext-enable swoole \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + + + + + + + + + + + && git clone -v 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 \ + && cd / && rm -rf /tmp/uploadprogress \ + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + + + + + + + + + + + && pecl install xdebug \ + && docker-php-ext-enable xdebug \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + + + + + + + + + + + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + + + + + + + + + + + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + + + + + + + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -259,145 +946,145 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^pdo_mysql$' \ - && php-fpm -m | grep -oiE '^pdo_mysql$' \ - && php -m | grep -oiE '^tokenizer$' \ - && php-fpm -m | grep -oiE '^tokenizer$' \ - && php -m | grep -oiE '^dba$' \ - && php-fpm -m | grep -oiE '^dba$' \ - && php -m | grep -oiE '^intl$' \ - && php-fpm -m | grep -oiE '^intl$' \ - && php -m | grep -oiE '^shmop$' \ - && php-fpm -m | grep -oiE '^shmop$' \ - && php -m | grep -oiE '^tidy$' \ - && php-fpm -m | grep -oiE '^tidy$' \ - && php -m | grep -oiE '^bcmath$' \ - && php-fpm -m | grep -oiE '^bcmath$' \ - && php -m | grep -oiE '^phar$' \ - && php-fpm -m | grep -oiE '^phar$' \ - && php -m | grep -oiE '^gd$' \ - && php-fpm -m | grep -oiE '^gd$' \ - && php -m | grep -oiE '^recode$' \ - && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && php -m | grep -oiE '^curl$' \ - && php-fpm -m | grep -oiE '^curl$' \ - && php -m | grep -oiE '^sockets$' \ - && php-fpm -m | grep -oiE '^sockets$' \ - && php -m | grep -oiE '^ftp$' \ - && php-fpm -m | grep -oiE '^ftp$' \ - && php -m | grep -oiE '^iconv$' \ - && php-fpm -m | grep -oiE '^iconv$' \ - && php -m | grep -oiE '^pdo_pgsql$' \ - && php-fpm -m | grep -oiE '^pdo_pgsql$' \ - && php -m | grep -oiE '^zip$' \ - && php-fpm -m | grep -oiE '^zip$' \ - && php -m | grep -oiE '^sodium$' \ - && php-fpm -m | grep -oiE '^sodium$' \ - && php -m | grep -oiE '^xmlwriter$' \ - && php-fpm -m | grep -oiE '^xmlwriter$' \ - && php -m | grep -oiE '^snmp$' \ - && php-fpm -m | grep -oiE '^snmp$' \ - && php -m | grep -oiE '^gettext$' \ - && php-fpm -m | grep -oiE '^gettext$' \ - && php -m | grep -oiE '^pgsql$' \ - && php-fpm -m | grep -oiE '^pgsql$' \ - && php -m | grep -oiE '^json$' \ - && php-fpm -m | grep -oiE '^json$' \ - && php -m | grep -oiE '^interbase$' \ - && php-fpm -m | grep -oiE '^interbase$' \ - && php -m | grep -oiE '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^ldap$' \ - && php-fpm -m | grep -oiE '^ldap$' \ - && php -m | grep -oiE '^sysvmsg$' \ - && php-fpm -m | grep -oiE '^sysvmsg$' \ - && php -m | grep -oiE '^gmp$' \ - && php-fpm -m | grep -oiE '^gmp$' \ - && php -m | grep -oiE '^sysvshm$' \ - && php-fpm -m | grep -oiE '^sysvshm$' \ - && php -m | grep -oiE '^soap$' \ - && php-fpm -m | grep -oiE '^soap$' \ - && php -m | grep -oiE '^pdo_firebird$' \ - && php-fpm -m | grep -oiE '^pdo_firebird$' \ - && php -m | grep -oiE '^hash$' \ - && php-fpm -m | grep -oiE '^hash$' \ - && php -m | grep -oiE '^xmlrpc$' \ - && php-fpm -m | grep -oiE '^xmlrpc$' \ - && php -m | grep -oiE '^pdo$' \ - && php-fpm -m | grep -oiE '^pdo$' \ - && php -m | grep -oiE '^ctype$' \ - && php-fpm -m | grep -oiE '^ctype$' \ - && php -m | grep -oiE '^fileinfo$' \ - && php-fpm -m | grep -oiE '^fileinfo$' \ - && php -m | grep -oiE '^sysvsem$' \ - && php-fpm -m | grep -oiE '^sysvsem$' \ - && php -m | grep -oiE '^pspell$' \ - && php-fpm -m | grep -oiE '^pspell$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^readline$' \ - && php-fpm -m | grep -oiE '^readline$' \ - && php -m | grep -oiE '^pdo_sqlite$' \ - && php-fpm -m | grep -oiE '^pdo_sqlite$' \ - && php -m | grep -oiE '^imap$' \ - && php-fpm -m | grep -oiE '^imap$' \ - && php -m | grep -oiE '^bz2$' \ - && php-fpm -m | grep -oiE '^bz2$' \ - && php -m | grep -oiE '^wddx$' \ - && php-fpm -m | grep -oiE '^wddx$' \ - && php -m | grep -oiE '^exif$' \ - && php-fpm -m | grep -oiE '^exif$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ - && php -m | grep -oiE '^dom$' \ - && php-fpm -m | grep -oiE '^dom$' \ - && php -m | grep -oiE '^pdo_dblib$' \ - && php-fpm -m | grep -oiE '^pdo_dblib$' \ - && php -m | grep -oiE '^session$' \ - && php-fpm -m | grep -oiE '^session$' \ - && php -m | grep -oiE '^posix$' \ - && php-fpm -m | grep -oiE '^posix$' \ - && php -m | grep -oiE '^simplexml$' \ - && php-fpm -m | grep -oiE '^simplexml$' \ - && php -m | grep -oiE '^calendar$' \ - && php-fpm -m | grep -oiE '^calendar$' \ - && php -m | grep -oiE '^enchant$' \ - && php-fpm -m | grep -oiE '^enchant$' \ - && php -m | grep -oiE '^xsl$' \ - && php-fpm -m | grep -oiE '^xsl$' \ - && php -m | grep -oiE '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^swoole$' \ - && php-fpm -m | grep -oiE '^swoole$' \ - && php -m | grep -oiE '^mongodb$' \ - && php-fpm -m | grep -oiE '^mongodb$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ - && php -m | grep -oiE '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && php -m | grep -oiE '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^memcached$' \ - && php-fpm -m | grep -oiE '^memcached$' \ - && php -m | grep -oiE '^igbinary$' \ - && php-fpm -m | grep -oiE '^igbinary$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && php -m | grep -oiE '^uploadprogress$' \ - && php-fpm -m | grep -oiE '^uploadprogress$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && php -m | grep -oiE '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && true + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && 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 ### diff --git a/README.md b/README.md index 1831011..a353018 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ 5.4 Core, ctype, curl, date, dom, ereg, fileinfo, filter, hash, iconv, json, libxml, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib - amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib + amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysql, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib 5.5 diff --git a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 index dc2304e..9dd76a6 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 @@ -18,132 +18,43 @@ LABEL \ ### Envs ### ENV BUILD_DEPS \ -{# ---- PHP Built-in Extensions ---- #} -{% for ext in php_builtin_extensions.keys() %} -{# Enabled #} -{% if php_version in php_builtin_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %} -{# Version specific build_deps available #} -{% if php_version in php_builtin_extensions[ext] and 'build_dep' in php_builtin_extensions[ext][php_version] %} -{% for dep in php_builtin_extensions[ext][php_version]['build_dep'] %} - {{ dep }} \ +{# Loop over enabled build dependencies #} +{% for ext in extensions_enabled %} + {# Not disabled #} + {% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} + {# 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'] %} + {{ 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 %} -{# General build_deps available? #} -{% elif 'all' in php_builtin_extensions[ext] and 'build_dep' in php_builtin_extensions[ext]['all'] %} -{% for dep in php_builtin_extensions[ext]['all']['build_dep'] %} - {{ dep }} \ -{% endfor %} -{% endif %} -{% endif %} -{% endif %} -{% endfor %} -{# ---- PHP PECL Extensions ---- #} -{% for ext in php_pecl_extensions.keys() %} -{# Enabled #} -{% if php_version in php_pecl_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %} -{# Version specific build_deps available #} -{% if php_version in php_pecl_extensions[ext] and 'build_dep' in php_pecl_extensions[ext][php_version] %} -{% for dep in php_pecl_extensions[ext][php_version]['build_dep'] %} - {{ dep }} \ -{% endfor %} -{# General build_deps available? #} -{% elif 'all' in php_pecl_extensions[ext] and 'build_dep' in php_pecl_extensions[ext]['all'] %} -{% for dep in php_pecl_extensions[ext]['all']['build_dep'] %} - {{ dep }} \ -{% endfor %} -{% endif %} -{% endif %} -{% endif %} -{% endfor %} -{# ---- PHP GIT Extensions git requirement ---- #} -{% if php_git_extensions %} - git \ -{% endif %} -{# ---- PHP GIT Extensions ---- #} -{% for ext in php_git_extensions.keys() %} -{# Enabled #} -{% if php_version in php_git_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %} -{# Version specific build_deps available #} -{% if php_version in php_git_extensions[ext] and 'build_dep' in php_git_extensions[ext][php_version] %} -{% for dep in php_git_extensions[ext][php_version]['build_dep'] %} - {{ dep }} \ -{% endfor %} -{# General build_deps available? #} -{% elif 'all' in php_git_extensions[ext] and 'build_dep' in php_git_extensions[ext]['all'] %} -{% for dep in php_git_extensions[ext]['all']['build_dep'] %} - {{ dep }} \ -{% endfor %} -{% endif %} -{% endif %} -{% endif %} -{% endfor %} - ca-certificates + ca-certificates \ + git ENV RUN_DEPS \ -{# ---- PHP Built-in Extensions ---- #} -{% for ext in php_builtin_extensions.keys() %} -{# Enabled #} -{% if php_version in php_builtin_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %} -{# Version specific run_deps available #} -{% if php_version in php_builtin_extensions[ext] and 'run_dep' in php_builtin_extensions[ext][php_version] %} -{% for dep in php_builtin_extensions[ext][php_version]['run_dep'] %} - {{ dep }} \ -{% endfor %} -{# General config available? #} -{% elif 'all' in php_builtin_extensions[ext] and 'run_dep' in php_builtin_extensions[ext]['all'] %} -{% for dep in php_builtin_extensions[ext]['all']['run_dep'] %} - {{ dep }} \ -{% endfor %} -{% endif %} -{% endif %} -{% endif %} -{% endfor %} -{# ---- PHP PECL Extensions ---- #} -{% for ext in php_pecl_extensions.keys() %} -{# Enabled #} -{% if php_version in php_pecl_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %} -{# Version specific run_deps available #} -{% if php_version in php_pecl_extensions[ext] and 'run_dep' in php_pecl_extensions[ext][php_version] %} -{% for dep in php_pecl_extensions[ext][php_version]['run_dep'] %} - {{ dep }} \ -{% endfor %} -{# General run_deps available? #} -{% elif 'all' in php_pecl_extensions[ext] and 'run_dep' in php_pecl_extensions[ext]['all'] %} -{% for dep in php_pecl_extensions[ext]['all']['run_dep'] %} - {{ dep }} \ -{% endfor %} -{% endif %} -{% endif %} -{% endif %} -{% endfor %} -{# ---- PHP GIT Extensions ---- #} -{% for ext in php_git_extensions.keys() %} -{# Enabled #} -{% if php_version in php_git_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %} -{# Version specific run_deps available #} -{% if php_version in php_git_extensions[ext] and 'run_dep' in php_git_extensions[ext][php_version] %} -{% for dep in php_git_extensions[ext][php_version]['run_dep'] %} - {{ dep }} \ -{% endfor %} -{# General run_deps available? #} -{% elif 'all' in php_git_extensions[ext] and 'run_dep' in php_git_extensions[ext]['all'] %} -{% for dep in php_git_extensions[ext]['all']['run_dep'] %} - {{ dep }} \ -{% endfor %} -{% endif %} -{% endif %} -{% endif %} +{# Loop over enabled run-time dependencies #} +{% for ext in extensions_enabled %} + {# Not disabled #} + {% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} + {# Version specific run-time dependency available? #} + {% 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'] %} + {{ 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 %} ca-certificates @@ -157,109 +68,104 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ -{# ---- PHP Built-in Extensions ---- #} -{% for ext in php_builtin_extensions.keys() %} -{# Enabled #} -{% if php_version in php_builtin_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %} -{# Version specific command available #} -{% if php_version in php_builtin_extensions[ext] and 'command' in php_builtin_extensions[ext][php_version] %} - && {{ php_builtin_extensions[ext][php_version]['command'] }} \ -{# General command available? #} -{% elif 'all' in php_builtin_extensions[ext] and 'command' in php_builtin_extensions[ext]['all'] %} - && {{ php_builtin_extensions[ext]['all']['command'] }} \ -{% endif %} -{# Version specific configure available #} -{% if php_version in php_builtin_extensions[ext] and 'configure' in php_builtin_extensions[ext][php_version] %} - && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ php_builtin_extensions[ext][php_version]['configure'] }} \ -{# General configure available? #} -{% elif 'all' in php_builtin_extensions[ext] and 'configure' in php_builtin_extensions[ext]['all'] %} - && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ php_builtin_extensions[ext]['all']['configure'] }} \ -{% endif %} - && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ -{% endif %} -{% endif %} -{% endfor %} - \ - \ -{# ---- PHP PECL Extensions ---- #} -{% for ext in php_pecl_extensions.keys() %} -{# Enabled #} -{% if php_version in php_pecl_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %} -{# Version specific command available #} -{% if php_version in php_pecl_extensions[ext] and 'command' in php_pecl_extensions[ext][php_version] %} - && {{ php_pecl_extensions[ext][php_version]['command'] }} \ -{# General command available? #} -{% elif 'all' in php_pecl_extensions[ext] and 'command' in php_pecl_extensions[ext]['all'] %} - && {{ php_pecl_extensions[ext]['all']['command'] }} \ -{# Version specific name available #} -{% elif php_version in php_pecl_extensions[ext] and 'alt_name' in php_pecl_extensions[ext][php_version] %} - && pecl install {{ php_pecl_extensions[ext][php_version]['alt_name'] }} \ -{# General name available? #} -{% elif 'all' in php_pecl_extensions[ext] and 'alt_name' in php_pecl_extensions[ext]['all'] %} - && pecl install {{ php_pecl_extensions[ext]['all']['alt_name'] }} \ -{% else %} - && pecl install {{ ext }} \ -{% endif %} -{# Version specific module available #} -{% if php_version in php_pecl_extensions[ext] and 'alt_module' in php_pecl_extensions[ext][php_version] %} - && docker-php-ext-enable {{ php_pecl_extensions[ext][php_version]['alt_module'] }} \ -{# General module available? #} -{% elif 'all' in php_pecl_extensions[ext] and 'alt_module' in php_pecl_extensions[ext]['all'] %} - && docker-php-ext-enable {{ php_pecl_extensions[ext]['all']['alt_module'] }} \ -{% else %} - && docker-php-ext-enable {{ ext }} \ -{% endif %} -{% endif %} -{% endif %} -{% endfor %} - \ - \ -{# ---- PHP GIT Extensions ---- #} -{% for ext in php_git_extensions.keys() %} -{# Enabled #} -{% if php_version in php_git_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %} -{# Version specific url available #} -{% if php_version in php_git_extensions[ext] and 'git_url' in php_git_extensions[ext][php_version] %} - && git clone -v {{ php_git_extensions[ext][php_version]['git_url'] }} /tmp/{{ ext }} \ -{# General url available? #} -{% else %} - && git clone -v {{ php_git_extensions[ext]['all']['git_url'] }} /tmp/{{ ext }} \ -{% endif %} -{# Version specific ref available #} -{% if php_version in php_git_extensions[ext] and 'git_ref' in php_git_extensions[ext][php_version] %} - && cd /tmp/{{ ext }} \ - && git checkout {{ php_git_extensions[ext][php_version]['git_ref'] }} \ -{# General ref available? #} -{% elif 'all' in php_git_extensions[ext] and 'git_ref' in php_git_extensions[ext]['all'] %} - && cd /tmp/{{ ext }} \ - && git checkout {{ php_git_extensions[ext]['all']['git_ref'] }} \ -{% endif %} -{# Version specific command available #} -{% if php_version in php_git_extensions[ext] and 'command' in php_git_extensions[ext][php_version] %} - && cd /tmp/{{ ext }} && {{ php_git_extensions[ext][php_version]['command'] }} \ -{# General command available? #} -{% else %} - && cd /tmp/{{ ext }} && {{ php_git_extensions[ext]['all']['command'] }} \ -{% endif %} -{# Version specific module available #} -{% if php_version in php_git_extensions[ext] and 'alt_module' in php_git_extensions[ext][php_version] %} - && docker-php-ext-enable {{ php_git_extensions[ext][php_version]['alt_module'] }} \ -{# General module available? #} -{% elif 'all' in php_git_extensions[ext] and 'alt_module' in php_git_extensions[ext]['all'] %} - && docker-php-ext-enable {{ php_git_extensions[ext]['all']['alt_module'] }} \ -{% else %} - && docker-php-ext-enable {{ ext }} \ -{% endif %} -{# Cleanup #} - && cd / && rm -rf /tmp/{{ ext }} \ -{% endif %} -{% endif %} +{# Loop over enabled extensions #} +{% for ext in extensions_enabled %} + {# Not disabled #} + {% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} + + + {# ---------- Pre Command ---------- #} + {# 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'] }} \ + {# Generic pre-command available? #} + {% elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %} + && {{ extensions_available[ext]['all']['pre'] }} \ + {% endif %} + + {# ---------- Installation (specific) ---------- #} + {% if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] %} + + {# ---- 1.) Builtin ---- #} + {% if extensions_available[ext][php_version]['type'] == 'builtin' %} + {% if 'configure' in extensions_available[ext][php_version] %} + && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \ + {% endif %} + && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ + + {# ---- 2.) PECL ---- #} + {% elif extensions_available[ext][php_version]['type'] == 'pecl' %} + {% if 'command' in extensions_available[ext][php_version] %} + && {{ extensions_available[ext][php_version]['command'] }} \ + {% else %} + && pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \ + {% endif %} + && docker-php-ext-enable {{ ext }} \ + + {# ---- 3.) GIT ---- #} + {% elif extensions_available[ext][php_version]['type'] == 'git' %} + && git clone -v {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \ + && cd /tmp/{{ ext }} \ + {% if 'git_ref' in extensions_available[ext][php_version] %} + && git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \ + {% endif %} + {% if 'command' in extensions_available[ext][php_version] %} + && {{ extensions_available[ext][php_version]['command'] }} \ + {% else %} + && phpize \ + && ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + {% endif %} + && docker-php-ext-enable {{ ext }} \ + && cd / && rm -rf /tmp/{{ ext }} \ + {% endif %} + + + {# ---------- Installation (generic) ---------- #} + {% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %} + + {# ---- 1.) Builtin ---- #} + {% if extensions_available[ext]['all']['type'] == 'builtin' %} + {% if 'configure' in extensions_available[ext]['all'] %} + && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \ + {% endif %} + && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ + + {# ---- 2.) PECL ---- #} + {% elif extensions_available[ext]['all']['type'] == 'pecl' %} + {% if 'command' in extensions_available[ext]['all'] %} + && {{ extensions_available[ext]['all']['command'] }} \ + {% else %} + && pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \ + {% endif %} + && docker-php-ext-enable {{ ext }} \ + + {# ---- 3.) GIT ---- #} + {% elif extensions_available[ext]['all']['type'] == 'git' %} + && git clone -v {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \ + && cd /tmp/{{ ext }} \ + {% if 'git_ref' in extensions_available[ext]['all'] %} + && git checkout {{ extensions_available[ext]['all']['git_ref'] }} \ + {% endif %} + {% if 'command' in extensions_available[ext]['all'] %} + && {{ extensions_available[ext]['all']['command'] }} \ + {% else %} + && phpize \ + && ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + {% endif %} + && docker-php-ext-enable {{ ext }} \ + && cd / && rm -rf /tmp/{{ ext }} \ + {% endif %} + + + {% endif %} + + + + {% endif %} {% endfor %} \ \ @@ -285,53 +191,17 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ -{# ---- PHP Built-in Extensions ---- #} -{% for ext in php_builtin_extensions.keys() %} -{# Enabled #} -{% if php_version in php_builtin_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %} -{% if ext == 'opcache' %} - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ -{% else %} - && php -m | grep -oiE '^{{ ext }}$' \ - && php-fpm -m | grep -oiE '^{{ ext }}$' \ -{% endif %} -{% endif %} -{% endif %} -{% endfor %} -{# ---- PHP PECL Extensions ---- #} -{% for ext in php_pecl_extensions.keys() %} -{# Enabled #} -{% if php_version in php_pecl_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %} -{% if ext == 'opcache' %} - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ -{% else %} - && php -m | grep -oiE '^{{ ext }}$' \ - && php-fpm -m | grep -oiE '^{{ ext }}$' \ -{% endif %} -{% endif %} -{% endif %} -{% endfor %} -{# ---- PHP GIT Extensions ---- #} -{% for ext in php_git_extensions.keys() %} -{# Enabled #} -{% if php_version in php_git_extensions[ext]['enabled'] %} -{# Not Disabled #} -{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %} -{% if ext == 'opcache' %} - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ -{% else %} - && php -m | grep -oiE '^{{ ext }}$' \ - && php-fpm -m | grep -oiE '^{{ ext }}$' \ -{% endif %} -{% endif %} -{% endif %} +{% for ext in extensions_enabled %} + {# Not disabled #} + {% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} + {% if ext == 'opcache' %} + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + {% else %} + && php -m | grep -oiE '^{{ ext }}$' \ + && php-fpm -m | grep -oiE '^{{ ext }}$' \ + {% endif %} + {% endif %} {% endfor %} && true diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index b0a4f08..9a1c9b5 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -31,463 +31,563 @@ php_conf_dir: /usr/local/etc/php.d ### -### Available GIT extensions +### Extensions to actually enable ### -### : -### enabled: [] -### disabled: [] -### all: -### git_url: Url for git clone -### git_ref: git branch tag, commit or shell command to retrieve a tag or commit -### command: command to install -### alt_module: alternative module name to enable (precedence over .so) -### build_dep: -### run_dep: -### -php_git_extensions: - memcache: - enabled: "{{ php_all_versions }}" - disabled: [5.4, 5.5, 5.6] # Officiel memcache is installed via pecl for 5.4, 5.5 and 5.6 - all: - git_url: https://github.com/websupport-sk/pecl-memcache - git_ref: NON_BLOCKING_IO_php7 - command: phpize && ./configure --with-zlib-dir=/usr && make -j$(getconf _NPROCESSORS_ONLN) && make install - build_dep: [zlib1g-dev] - phalcon: - enabled: "{{ php_all_versions }}" - 5.4: - git_ref: phalcon-v2.0.13 - all: - git_url: https://github.com/phalcon/cphalcon - git_ref: $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') - command: cd build && ./install - uploadprogress: - enabled: "{{ php_all_versions }}" - disabled: [5.4, 5.5, 5.6] - all: - git_url: https://github.com/php/pecl-php-uploadprogress - git_ref: master - command: phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install +extensions_enabled: + - amqp + - apcu + - bcmath + - bz2 + - calendar + - ctype + - curl + - dba + - dom + - enchant + - exif + - fileinfo + - filter + - ftp + - gd + - gettext + - gmp + - hash + - iconv + - igbinary + - imagick + - imap + - interbase + - intl + - json + - ldap + - libxml + - mbstring + - mcrypt + - memcache + - memcached + - mongodb + - msgpack + - mysql + - mysqli + - mysqlnd + - oci8 + - odbc + - opcache + - openssl + - pcntl + - pcre + - pdo + - pdo_dblib + - pdo_firebird + - pdo_mysql + - pdo_oci + - pdo_odbc + - pdo_pgsql + - pdo_sqlite + - pgsql + - phalcon + - phar + - posix + - pspell + - readline + - recode + - redis + - session + - shmop + - simplexml + - snmp + - soap + - sockets + - sodium + - spl + - swoole + - sysvmsg + - sysvsem + - sysvshm + - tidy + - tokenizer + - uploadprogress + - wddx + - xdebug + - xml + - xmlreader + - xmlrpc + - xmlwriter + - xsl + - zip + ### -### Available PECL extensions +### All available php modules ### -### : -### enabled: [] -### disabled: [] -### all: -### command: alternative command to install (precedence over and -### alt_name: alternative name of to install (precedence over -### alt_module: alternative module name to enable (precedence over .so) -### build_dep: -### run_dep: -### -php_pecl_extensions: - #apc: - # enabled: "{{ php_all_versions }}" - # disabled: [5.5, 5.6, 7.0, 7.1, 7.2] - #apcu_bc: - # enabled: "{{ php_all_versions }}" - # disabled: [5.4, 5.5, 5.6] - # all: - # alt_module: apc - apcu: - enabled: "{{ php_all_versions }}" - 5.4: - alt_name: apcu-4.0.11 - 5.5: - alt_name: apcu-4.0.11 - 5.6: - alt_name: apcu-4.0.11 + +# all: is generic version of defines +# 7.2: is specific version of defines +# disabled: [optional] Array of PHP versions for which to disable this module +# +# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4: +# pre: [optional] Run command before anything else +# build_dep: [optional] Array of build dependencies +# run_dep: [optional] Array of run-time dependencies +# type: [required] One of 'builtin', 'pecl' or 'git' +# +# type: builtin +# configure: [optional] Add './configure' arguments +# type: pecl +# version: [optional] Pecl packet version +# command: [optional] Overwrite pecl command (pecl install ext) +# type: git +# git_url: [required] Git repository URL +# git_ref: [optional] Tag, branch, commit to checkout +# configure: [optional] Add './configure' arguments +# command: [optional] Overwrite default command (phpize && ./configure && make && make install) +extensions_available: amqp: - enabled: "{{ php_all_versions }}" 7.2: + type: pecl run_dep: [librabbitmq4] all: + type: pecl command: echo "/usr" | pecl install amqp build_dep: [librabbitmq-dev] run_dep: [librabbitmq1] - igbinary: - enabled: "{{ php_all_versions }}" - imagick: - enabled: "{{ php_all_versions }}" - 7.2: - run_dep: [libmagickwand-6.q16-3] - all: - build_dep: [libmagickwand-dev] - run_dep: [libmagickwand-6.q16-2] - mcrypt: - enabled: "{{ php_all_versions }}" - disabled: [5.4, 5.5, 5.6, 7.0, 7.1] # Already avail by default in other versions - 7.2: - alt_name: mcrypt-1.0.1 - build_dep: [libmcrypt-dev] - run_dep: [libmcrypt4] - memcache: - enabled: "{{ php_all_versions }}" - disabled: [7.0, 7.1, 7.2] # PHP7 uses unofficial git clone (see above) - all: - build_dep: [zlib1g-dev] - memcached: - enabled: "{{ php_all_versions }}" + apcu: 5.4: - alt_name: memcached-2.2.0 + type: pecl + version: 4.0.11 5.5: - alt_name: memcached-2.2.0 + type: pecl + version: 4.0.11 5.6: - alt_name: memcached-2.2.0 + type: pecl + version: 4.0.11 all: - build_dep: [zlib1g-dev, libmemcached-dev] - run_dep: [libmemcachedutil2] - mongodb: - enabled: "{{ php_all_versions }}" - 5.4: - alt_name: mongodb-1.2.11 - build_dep: [libssl-dev] - msgpack: - enabled: "{{ php_all_versions }}" - 5.4: - alt_name: msgpack-0.5.7 - 5.5: - alt_name: msgpack-0.5.7 - 5.6: - alt_name: msgpack-0.5.7 - redis: - enabled: "{{ php_all_versions }}" - swoole: - enabled: "{{ php_all_versions }}" - 5.4: - alt_name: swoole-1.9.23 - 5.5: - alt_name: swoole-1.9.23 - 5.6: - alt_name: swoole-1.9.23 - 7.2: - run_dep: [libnghttp2-14] - all: - build_dep: [libnghttp2-dev, libssl-dev] - run_dep: [libnghttp2-5] - uploadprogress: - enabled: "{{ php_all_versions }}" - disabled: [7.2, 7.1, 7.0] - xdebug: - enabled: "{{ php_all_versions }}" - 5.4: - alt_name: xdebug-2.4.1 - 5.5: - alt_name: xdebug-2.5.5 - 5.6: - alt_name: xdebug-2.5.5 - - -### -### PHP Built-in Modules to enable -### -### will use e.g. 5.6 for PHP 5.6 as specific configuration -### or if not available, use all -### -### module-name: -### enabled: [ what php versions it is enabled for] -### disabled: [ what php versions it is disabled for] (precedence over enabled) -### '5.6': -### command: command to execute prior installation -### configure: custom configure command -### build_dep: -### run_dep: -### all: -### command: -### configure: -### build_dep: -### run_dep: -### -php_builtin_extensions: + type: pecl bcmath: - enabled: "{{ php_all_versions }}" - bz2: - enabled: "{{ php_all_versions }}" all: + type: builtin + bz2: + all: + type: builtin build_dep: [libbz2-dev] calendar: - enabled: "{{ php_all_versions }}" - ctype: - enabled: "{{ php_all_versions }}" - curl: - enabled: "{{ php_all_versions }}" all: + type: builtin + ctype: + all: + type: builtin + curl: + all: + type: builtin build_dep: [libcurl4-openssl-dev] dba: - enabled: "{{ php_all_versions }}" - dom: - enabled: "{{ php_all_versions }}" all: + type: builtin + dom: + all: + type: builtin configure: --with-libxml-dir=/usr build_dep: [libxml2-dev] enchant: - enabled: "{{ php_all_versions }}" all: + type: builtin build_dep: [libenchant-dev] run_dep: [libenchant1c2a] exif: - enabled: "{{ php_all_versions }}" + all: + type: builtin fileinfo: - enabled: "{{ php_all_versions }}" + all: + type: builtin filter: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # Available by default ftp: - enabled: "{{ php_all_versions }}" all: + type: builtin configure: --with-openssl-dir build_dep: [libssl-dev] gd: - enabled: "{{ php_all_versions }}" 7.2: + 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 build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] 7.1: + 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 --enable-gd-native-ttf build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev] 7.0: + 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 --enable-gd-native-ttf build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev] all: - command: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ + type: builtin + pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ configure: --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 build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev] run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6] gettext: - enabled: "{{ php_all_versions }}" - gmp: - enabled: "{{ php_all_versions }}" all: - command: ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ + type: builtin + gmp: + all: + type: builtin + pre: ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ build_dep: [libgmp-dev] hash: - enabled: "{{ php_all_versions }}" - iconv: - enabled: "{{ php_all_versions }}" - imap: - enabled: "{{ php_all_versions }}" all: - command: ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ + type: builtin + iconv: + all: + type: builtin + igbinary: + all: + type: pecl + imagick: + 7.2: + type: pecl + run_dep: [libmagickwand-6.q16-3] + all: + type: pecl + build_dep: [libmagickwand-dev] + run_dep: [libmagickwand-6.q16-2] + imap: + all: + type: builtin + pre: ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ configure: --with-kerberos --with-imap-ssl --with-imap build_dep: [libc-client-dev, libkrb5-dev, libcurl4-openssl-dev] run_dep: [libc-client2007e] interbase: - enabled: "{{ php_all_versions }}" - disabled: [5.4] all: + type: builtin build_dep: [libfbclient2, libib-util, firebird-dev] run_dep: [libfbclient2] intl: - enabled: "{{ php_all_versions }}" 7.2: + type: builtin run_dep: [libicu57] all: + type: builtin build_dep: [libicu-dev] run_dep: [libicu52] json: - enabled: "{{ php_all_versions }}" - ldap: - enabled: "{{ php_all_versions }}" all: - command: ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ + type: builtin + ldap: + all: + type: builtin + pre: ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ configure: --with-ldap --with-ldap-sasl build_dep: [libldap2-dev, libsasl2-dev] libxml: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # Available by default mbstring: - enabled: "{{ php_all_versions }}" - mcrypt: - enabled: "{{ php_all_versions }}" - disabled: [7.2] - 7.2: - build_dep: [] - run_dep: [] all: + type: builtin + mcrypt: + 7.2: + type: pecl + version: 1.0.1 + all: + type: builtin run_dep: [libmcrypt4] build_dep: [libmcrypt-dev] + memcache: + 7.2: + type: git + git_url: https://github.com/websupport-sk/pecl-memcache + configure: --with-zlib-dir=/usr + 7.1: + type: git + git_url: https://github.com/websupport-sk/pecl-memcache + configure: --with-zlib-dir=/usr + 7.0: + type: git + git_url: https://github.com/websupport-sk/pecl-memcache + configure: --with-zlib-dir=/usr + all: + type: pecl + build_dep: [zlib1g-dev] + memcached: + 5.4: + type: pecl + version: 2.2.0 + 5.5: + type: pecl + version: 2.2.0 + 5.6: + type: pecl + version: 2.2.0 + all: + type: pecl + build_dep: [zlib1g-dev, libmemcached-dev] + run_dep: [libmemcachedutil2] + mongodb: + 5.4: + type: pecl + version: 1.2.11 + all: + type: pecl + build_dep: [libssl-dev] + msgpack: + 5.4: + type: pecl + version: 0.5.7 + 5.5: + type: pecl + version: 0.5.7 + 5.6: + type: pecl + version: 0.5.7 + all: + type: pecl mysql: - enabled: "{{ php_all_versions }}" - disabled: [7.0, 7.1, 7.2] + disabled: [7.0, 7.1, 7.2] # Deprecated in newer versions + all: + type: builtin mysqli: - enabled: "{{ php_all_versions }}" - #disabled: [7.0, 7.1, 7.2] + all: + type: builtin mysqlnd: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # Available by default oci8: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing odbc: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # TODO: sqlext.h' not found! opcache: - enabled: "{{ php_all_versions }}" - disabled: [5.4] + 5.4: + type: pecl + command: pecl install zendopcache + all: + type: builtin openssl: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # Available by default pcntl: - enabled: "{{ php_all_versions }}" + all: + type: builtin pcre: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # Available by default pdo: - enabled: "{{ php_all_versions }}" - pdo_dblib: - enabled: "{{ php_all_versions }}" all: - command: ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ + type: builtin + pdo_dblib: + all: + type: builtin + pre: ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ build_dep: [freetds-dev] run_dep: [libsybdb5] pdo_firebird: - enabled: "{{ php_all_versions }}" all: + type: builtin build_dep: [libfbclient2, libib-util, firebird-dev] run_dep: [libfbclient2] pdo_mysql: - enabled: "{{ php_all_versions }}" all: + type: builtin configure: --with-zlib-dir=/usr build_dep: [zlib1g-dev] pdo_oci: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing pdo_odbc: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # TODO: Build errors pdo_pgsql: - enabled: "{{ php_all_versions }}" all: + type: builtin build_dep: [libpq-dev] run_dep: [libpq5] pdo_sqlite: - enabled: "{{ php_all_versions }}" all: + type: builtin build_dep: [libsqlite3-dev] pgsql: - enabled: "{{ php_all_versions }}" all: + type: builtin build_dep: [libpq-dev] run_dep: [libpq5] - phar: - enabled: "{{ php_all_versions }}" + phalcon: + 5.4: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: phalcon-v2.0.13 + command: cd build && ./install all: + type: git + git_url: https://github.com/phalcon/cphalcon + git_ref: $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') + command: cd build && ./install + phar: + all: + type: builtin build_dep: [libssl-dev] posix: - enabled: "{{ php_all_versions }}" - pspell: - enabled: "{{ php_all_versions }}" all: + type: builtin + pspell: + all: + type: builtin build_dep: [libpspell-dev] run_dep: [libaspell15] readline: - enabled: "{{ php_all_versions }}" - disabled: [5.4] + disabled: [5.4] # Available by default all: + type: builtin build_dep: [libedit-dev, libreadline-dev] recode: - enabled: "{{ php_all_versions }}" all: + type: builtin build_dep: [librecode-dev] run_dep: [librecode0] - session: - enabled: "{{ php_all_versions }}" + redis: all: + type: pecl + session: + all: + type: builtin configure: --with-mm build_dep: [libmm-dev] shmop: - enabled: "{{ php_all_versions }}" - simplexml: - enabled: "{{ php_all_versions }}" all: + type: builtin + simplexml: + all: + type: builtin configure: --with-libxml-dir=/usr build_dep: [libxml2-dev] snmp: - enabled: "{{ php_all_versions }}" all: + type: builtin configure: --with-openssl-dir build_dep: [libssl-dev, libsnmp-dev, snmp] run_dep: [snmp] soap: - enabled: "{{ php_all_versions }}" all: + type: builtin configure: --with-libxml-dir=/usr build_dep: [libxml2-dev] sockets: - enabled: "{{ php_all_versions }}" - sodium: - enabled: "{{ php_all_versions }}" - disabled: [5.4, 5.5, 5.6, 7.0, 7.1] all: + type: builtin + sodium: + disabled: [5.4, 5.5, 5.6, 7.0, 7.1] + 7.2: + type: builtin build_dep: [libsodium-dev] spl: - enabled: "{{ php_all_versions }}" disabled: "{{ php_all_versions }}" # TODO: Did not work - sysvmsg: - enabled: "{{ php_all_versions }}" - sysvsem: - enabled: "{{ php_all_versions }}" - sysvshm: - enabled: "{{ php_all_versions }}" - tidy: - enabled: "{{ php_all_versions }}" + swoole: + 5.4: + type: pecl + version: 1.9.23 + 5.5: + type: pecl + version: 1.9.23 + 5.6: + type: pecl + version: 1.9.23 7.2: + type: pecl + run_dep: [libnghttp2-14] + all: + type: pecl + build_dep: [libnghttp2-dev, libssl-dev] + run_dep: [libnghttp2-5] + sysvmsg: + all: + type: builtin + sysvsem: + all: + type: builtin + sysvshm: + all: + type: builtin + tidy: + 7.2: + type: builtin run_dep: [libtidy5] all: + type: builtin build_dep: [libtidy-dev] run_dep: [libtidy-0.99-0] tokenizer: - enabled: "{{ php_all_versions }}" - wddx: - enabled: "{{ php_all_versions }}" all: + type: builtin + uploadprogress: + 7.2: + type: git + git_url: https://github.com/php/pecl-php-uploadprogress + configure: --enable-uploadprogress + 7.1: + type: git + git_url: https://github.com/php/pecl-php-uploadprogress + configure: --enable-uploadprogress + 7.0: + type: git + git_url: https://github.com/php/pecl-php-uploadprogress + configure: --enable-uploadprogress + all: + type: pecl + wddx: + all: + type: builtin configure: --with-libxml-dir=/usr build_dep: [libxml2-dev] - xml: - enabled: "{{ php_all_versions }}" + xdebug: + 5.4: + type: pecl + version: 2.4.1 + 5.5: + type: pecl + version: 2.4.1 + 5.6: + type: pecl + version: 2.4.1 all: + type: pecl + xml: + all: + type: builtin configure: --with-libxml-dir=/usr build_dep: [libxml2-dev] xmlreader: - enabled: "{{ php_all_versions }}" - disabled: [7.0, 7.1, 7.2] # build errors + disabled: [7.0, 7.1, 7.2] # Available by default all: + type: builtin configure: --with-libxml-dir=/usr build_dep: [libxml2-dev] xmlrpc: - enabled: "{{ php_all_versions }}" all: + type: builtin configure: --with-libxml-dir=/usr --with-iconv-dir=/usr build_dep: [libxml2-dev] xmlwriter: - enabled: "{{ php_all_versions }}" all: + type: builtin configure: --with-libxml-dir=/usr build_dep: [libxml2-dev] xsl: - enabled: "{{ php_all_versions }}" all: + type: builtin build_dep: [libxslt-dev] run_dep: [libxslt1.1] zip: - enabled: "{{ php_all_versions }}" 5.4: + type: builtin configure: --with-zlib-dir=/usr --with-pcre-dir=/usr build_dep: [zlib1g-dev] run_dep: [] 5.5: + type: builtin configure: --with-zlib-dir=/usr --with-pcre-dir=/usr build_dep: [zlib1g-dev] run_dep: [] 7.2: + type: builtin run_dep: [libzip4] all: + type: builtin configure: --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip build_dep: [zlib1g-dev, libzip-dev] run_dep: [libzip2] From 7d41e38374824ee88cd72770a39748e0aab76367 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 25 Feb 2018 15:18:45 +0100 Subject: [PATCH 13/35] Clean up Dockerfiles --- Dockerfiles/mods/Dockerfile-5.4 | 1345 +++++------------ Dockerfiles/mods/Dockerfile-5.5 | 1363 +++++------------ Dockerfiles/mods/Dockerfile-5.6 | 1367 +++++------------ Dockerfiles/mods/Dockerfile-7.0 | 1357 +++++------------ Dockerfiles/mods/Dockerfile-7.1 | 1357 +++++------------ Dockerfiles/mods/Dockerfile-7.2 | 1375 +++++------------- build/ansible/DOCKERFILES/Dockerfile-mods.j2 | 252 ++-- 7 files changed, 2136 insertions(+), 6280 deletions(-) diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index ea155f4..d801d83 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -18,89 +18,89 @@ LABEL \ ### Envs ### 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 \ - 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 \ - zlib1g-dev \ - libmemcached-dev \ - libssl-dev \ - freetds-dev \ - libfbclient2 \ - libib-util \ - firebird-dev \ - zlib1g-dev \ - libpq-dev \ - libsqlite3-dev \ - libpq-dev \ - libssl-dev \ - libpspell-dev \ - librecode-dev \ - libmm-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libxml2-dev \ - libnghttp2-dev \ - libssl-dev \ - libtidy-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxslt-dev \ - zlib1g-dev \ - ca-certificates \ + 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 \ + 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 \ + zlib1g-dev \ + libmemcached-dev \ + libssl-dev \ + freetds-dev \ + libfbclient2 \ + libib-util \ + firebird-dev \ + zlib1g-dev \ + libpq-dev \ + libsqlite3-dev \ + libpq-dev \ + libssl-dev \ + libpspell-dev \ + librecode-dev \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + ca-certificates \ git ENV RUN_DEPS \ - librabbitmq1 \ - libenchant1c2a \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - libmagickwand-6.q16-2 \ - libc-client2007e \ - libfbclient2 \ - libicu52 \ - libmcrypt4 \ - libmemcachedutil2 \ - libsybdb5 \ - libfbclient2 \ - libpq5 \ - libpq5 \ - libaspell15 \ - librecode0 \ - snmp \ - libnghttp2-5 \ - libtidy-0.99-0 \ - libxslt1.1 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + ca-certificates ### @@ -112,804 +112,115 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - - - - - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - - - - - - - - - - - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install bcmath \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install bz2 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install calendar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install ctype \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install curl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install dba \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install dom \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install enchant \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install exif \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install fileinfo \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install ftp \ - - - - - - - - - && 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-install gd \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install gettext \ - - - - - - - - - && 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 hash \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install iconv \ - - - - - - - - - - - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - - - - - - - - - - - && pecl install imagick \ - && docker-php-ext-enable imagick \ - - - - - - - - - && 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 imap \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install interbase \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install intl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install json \ - - - - - - - - - && 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 ldap \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install mbstring \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install mcrypt \ - - - - - - - - - - - && pecl install memcache \ - && docker-php-ext-enable memcache \ - - - - - - - - - - - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - - - - - - - - - - - && pecl install mongodb-1.2.11 \ - && docker-php-ext-enable mongodb \ - - - - - - - - - - - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install mysql \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install mysqli \ - - - - - - - - - - - && pecl install zendopcache \ - && docker-php-ext-enable opcache \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install pcntl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install pdo \ - - - - - - - - - && 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_firebird \ - - - - - - - - - - - && /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_pgsql \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install pdo_sqlite \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install pgsql \ - - - - - - - - - - - && git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - && git checkout phalcon-v2.0.13 \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - - - - - - - - - - && /usr/local/bin/docker-php-ext-install phar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install posix \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install pspell \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install recode \ - - - - - - - - - - - && pecl install redis \ - && docker-php-ext-enable redis \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install session \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install shmop \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install simplexml \ - - - - - - - - - - - && /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-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install soap \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install sockets \ - - - - - - - - - - - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install sysvmsg \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install sysvsem \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install sysvshm \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install tidy \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install tokenizer \ - - - - - - - - - - - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install wddx \ - - - - - - - - - - - && pecl install xdebug-2.4.1 \ - && docker-php-ext-enable xdebug \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install xml \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install xmlreader \ - - - - - - - - - - - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install xmlwriter \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install xsl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ - && /usr/local/bin/docker-php-ext-install zip \ - - - - - - - \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install apcu-4.0.11 \ + && docker-php-ext-enable apcu \ + && /usr/local/bin/docker-php-ext-install bcmath \ + && /usr/local/bin/docker-php-ext-install bz2 \ + && /usr/local/bin/docker-php-ext-install calendar \ + && /usr/local/bin/docker-php-ext-install ctype \ + && /usr/local/bin/docker-php-ext-install curl \ + && /usr/local/bin/docker-php-ext-install dba \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install dom \ + && /usr/local/bin/docker-php-ext-install enchant \ + && /usr/local/bin/docker-php-ext-install exif \ + && /usr/local/bin/docker-php-ext-install fileinfo \ + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install ftp \ + && 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-install gd \ + && /usr/local/bin/docker-php-ext-install gettext \ + && 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 hash \ + && /usr/local/bin/docker-php-ext-install iconv \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && 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 imap \ + && /usr/local/bin/docker-php-ext-install interbase \ + && /usr/local/bin/docker-php-ext-install intl \ + && /usr/local/bin/docker-php-ext-install json \ + && 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 ldap \ + && /usr/local/bin/docker-php-ext-install mbstring \ + && /usr/local/bin/docker-php-ext-install mcrypt \ + && pecl install memcache \ + && docker-php-ext-enable memcache \ + && pecl install memcached-2.2.0 \ + && docker-php-ext-enable memcached \ + && pecl install mongodb-1.2.11 \ + && docker-php-ext-enable mongodb \ + && pecl install msgpack-0.5.7 \ + && docker-php-ext-enable msgpack \ + && /usr/local/bin/docker-php-ext-install mysql \ + && /usr/local/bin/docker-php-ext-install mysqli \ + && pecl install zendopcache \ + && docker-php-ext-enable opcache \ + && /usr/local/bin/docker-php-ext-install pcntl \ + && /usr/local/bin/docker-php-ext-install pdo \ + && 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_firebird \ + && /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_pgsql \ + && /usr/local/bin/docker-php-ext-install pdo_sqlite \ + && /usr/local/bin/docker-php-ext-install pgsql \ + && git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + && git checkout phalcon-v2.0.13 \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + && /usr/local/bin/docker-php-ext-install phar \ + && /usr/local/bin/docker-php-ext-install posix \ + && /usr/local/bin/docker-php-ext-install pspell \ + && /usr/local/bin/docker-php-ext-install recode \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install session \ + && /usr/local/bin/docker-php-ext-install shmop \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install simplexml \ + && /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-configure soap --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install soap \ + && /usr/local/bin/docker-php-ext-install sockets \ + && pecl install swoole-1.9.23 \ + && docker-php-ext-enable swoole \ + && /usr/local/bin/docker-php-ext-install sysvmsg \ + && /usr/local/bin/docker-php-ext-install sysvsem \ + && /usr/local/bin/docker-php-ext-install sysvshm \ + && /usr/local/bin/docker-php-ext-install tidy \ + && /usr/local/bin/docker-php-ext-install tokenizer \ + && pecl install uploadprogress \ + && docker-php-ext-enable uploadprogress \ + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install wddx \ + && pecl install xdebug-2.4.1 \ + && docker-php-ext-enable xdebug \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install xml \ + && /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install xmlreader \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install xmlwriter \ + && /usr/local/bin/docker-php-ext-install xsl \ + && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ + && /usr/local/bin/docker-php-ext-install zip \ + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -932,145 +243,145 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && 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 '^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 '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && 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 '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && 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 '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^mysql$' \ - && php-fpm -m | grep -oiE '^mysql$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && 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 '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && 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 '^recode$' \ - && php-fpm -m | grep -oiE '^recode$' \ - && php -m | grep -oiE '^redis$' \ - && php-fpm -m | grep -oiE '^redis$' \ - && 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 '^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 '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && 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 + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysql$' \ + && php-fpm -m | grep -oiE '^mysql$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^recode$' \ + && php-fpm -m | grep -oiE '^recode$' \ + && php -m | grep -oiE '^redis$' \ + && php-fpm -m | grep -oiE '^redis$' \ + && 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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index 7dce215..76d0a1c 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -18,91 +18,91 @@ LABEL \ ### Envs ### 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 \ - 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 \ - zlib1g-dev \ - libmemcached-dev \ - libssl-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 \ - libmm-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libxml2-dev \ - libnghttp2-dev \ - libssl-dev \ - libtidy-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxslt-dev \ - zlib1g-dev \ - ca-certificates \ + 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 \ + 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 \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + ca-certificates \ git ENV RUN_DEPS \ - librabbitmq1 \ - libenchant1c2a \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - libmagickwand-6.q16-2 \ - libc-client2007e \ - libfbclient2 \ - libicu52 \ - libmcrypt4 \ - libmemcachedutil2 \ - libsybdb5 \ - libfbclient2 \ - libpq5 \ - libpq5 \ - libaspell15 \ - librecode0 \ - snmp \ - libnghttp2-5 \ - libtidy-0.99-0 \ - libxslt1.1 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + ca-certificates ### @@ -114,814 +114,115 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - - - - - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - - - - - - - - - - - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ - - - - - - - - - && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - - - - - - - - - && 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) hash \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ - - - - - - - - - - - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - - - - - - - - - - - && pecl install imagick \ - && docker-php-ext-enable imagick \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - - - - - - - - - - - && pecl install memcache \ - && docker-php-ext-enable memcache \ - - - - - - - - - - - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - - - - - - - - - - - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - - - - - - - - - - - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ - - - - - - - - - && 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_firebird \ - - - - - - - - - - - && /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_pgsql \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - - - - - - - - - - - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - - - - - - - - - - - && pecl install redis \ - && docker-php-ext-enable redis \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - - - - - - - - - - - && /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-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) sockets \ - - - - - - - - - - - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ - - - - - - - - - - - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - - - - - - - - - - - && pecl install xdebug-2.4.1 \ - && docker-php-ext-enable xdebug \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ - - - - - - - - - - - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - - - - - - - - - - - && /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 \ - - - - - - - \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install apcu-4.0.11 \ + && docker-php-ext-enable apcu \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && 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) hash \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && pecl install memcache \ + && docker-php-ext-enable memcache \ + && pecl install memcached-2.2.0 \ + && docker-php-ext-enable memcached \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install msgpack-0.5.7 \ + && docker-php-ext-enable msgpack \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + && 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_firebird \ + && /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_pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /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-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) sockets \ + && pecl install swoole-1.9.23 \ + && docker-php-ext-enable swoole \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && pecl install uploadprogress \ + && docker-php-ext-enable uploadprogress \ + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && pecl install xdebug-2.4.1 \ + && docker-php-ext-enable xdebug \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && /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 \ + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -944,147 +245,147 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && 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 '^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 '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && 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 '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && 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 '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^mysql$' \ - && php-fpm -m | grep -oiE '^mysql$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && 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 '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && 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 '^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 '^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 '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && 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 + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysql$' \ + && php-fpm -m | grep -oiE '^mysql$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 index 7e7f668..5509a6b 100644 --- a/Dockerfiles/mods/Dockerfile-5.6 +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -18,93 +18,93 @@ LABEL \ ### Envs ### 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 \ - 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 \ - zlib1g-dev \ - libmemcached-dev \ - libssl-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 \ - libmm-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libxml2-dev \ - libnghttp2-dev \ - libssl-dev \ - libtidy-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxslt-dev \ - zlib1g-dev \ - libzip-dev \ - ca-certificates \ + 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 \ + 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 \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + libzip-dev \ + ca-certificates \ git ENV RUN_DEPS \ - librabbitmq1 \ - libenchant1c2a \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - libmagickwand-6.q16-2 \ - libc-client2007e \ - libfbclient2 \ - libicu52 \ - libmcrypt4 \ - libmemcachedutil2 \ - libsybdb5 \ - libfbclient2 \ - libpq5 \ - libpq5 \ - libaspell15 \ - librecode0 \ - snmp \ - libnghttp2-5 \ - libtidy-0.99-0 \ - libxslt1.1 \ - libzip2 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + libzip2 \ + ca-certificates ### @@ -116,814 +116,115 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - - - - - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - - - - - - - - - - - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ - - - - - - - - - && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - - - - - - - - - && 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) hash \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ - - - - - - - - - - - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - - - - - - - - - - - && pecl install imagick \ - && docker-php-ext-enable imagick \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - - - - - - - - - - - && pecl install memcache \ - && docker-php-ext-enable memcache \ - - - - - - - - - - - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - - - - - - - - - - - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - - - - - - - - - - - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ - - - - - - - - - && 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_firebird \ - - - - - - - - - - - && /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_pgsql \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - - - - - - - - - - - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - - - - - - - - - - - && pecl install redis \ - && docker-php-ext-enable redis \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - - - - - - - - - - - && /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-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) sockets \ - - - - - - - - - - - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ - - - - - - - - - - - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - - - - - - - - - - - && pecl install xdebug-2.4.1 \ - && docker-php-ext-enable xdebug \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ - - - - - - - - - - - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - - - - - - - - - - - && /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 \ - - - - - - - \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install apcu-4.0.11 \ + && docker-php-ext-enable apcu \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && 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) hash \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && pecl install memcache \ + && docker-php-ext-enable memcache \ + && pecl install memcached-2.2.0 \ + && docker-php-ext-enable memcached \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install msgpack-0.5.7 \ + && docker-php-ext-enable msgpack \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + && 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_firebird \ + && /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_pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /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-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) sockets \ + && pecl install swoole-1.9.23 \ + && docker-php-ext-enable swoole \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && pecl install uploadprogress \ + && docker-php-ext-enable uploadprogress \ + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && pecl install xdebug-2.4.1 \ + && docker-php-ext-enable xdebug \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && /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 \ + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -946,147 +247,147 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && 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 '^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 '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && 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 '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && 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 '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^mysql$' \ - && php-fpm -m | grep -oiE '^mysql$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && 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 '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && 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 '^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 '^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 '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && 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 + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysql$' \ + && php-fpm -m | grep -oiE '^mysql$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 index ac1cfc2..94b95ff 100644 --- a/Dockerfiles/mods/Dockerfile-7.0 +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -18,94 +18,94 @@ LABEL \ ### Envs ### 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 \ - libicu-dev \ - libldap2-dev \ - libsasl2-dev \ - libmcrypt-dev \ - zlib1g-dev \ - zlib1g-dev \ - libmemcached-dev \ - libssl-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 \ - libmm-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libxml2-dev \ - libnghttp2-dev \ - libssl-dev \ - libtidy-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxslt-dev \ - zlib1g-dev \ - libzip-dev \ - ca-certificates \ + 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 \ + libicu-dev \ + libldap2-dev \ + libsasl2-dev \ + libmcrypt-dev \ + zlib1g-dev \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + libzip-dev \ + ca-certificates \ git ENV RUN_DEPS \ - librabbitmq1 \ - libenchant1c2a \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - libwebp-dev \ - libmagickwand-6.q16-2 \ - libc-client2007e \ - libfbclient2 \ - libicu52 \ - libmcrypt4 \ - libmemcachedutil2 \ - libsybdb5 \ - libfbclient2 \ - libpq5 \ - libpq5 \ - libaspell15 \ - librecode0 \ - snmp \ - libnghttp2-5 \ - libtidy-0.99-0 \ - libxslt1.1 \ - libzip2 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libwebp-dev \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + libzip2 \ + ca-certificates ### @@ -117,801 +117,124 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - - - - - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - - - - - - - - - - - && pecl install apcu \ - && docker-php-ext-enable apcu \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ - - - - - - - - - && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - - - - - - - - - && 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) hash \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ - - - - - - - - - - - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - - - - - - - - - - - && pecl install imagick \ - && docker-php-ext-enable imagick \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - - - - - - - - - - - && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ - && cd /tmp/memcache \ - && phpize \ - && ./configure --with-zlib-dir=/usr \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - && docker-php-ext-enable memcache \ - && cd / && rm -rf /tmp/memcache \ - - - - - - - - - - && pecl install memcached \ - && docker-php-ext-enable memcached \ - - - - - - - - - - - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - - - - - - - - - - - && pecl install msgpack \ - && docker-php-ext-enable msgpack \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ - - - - - - - - - && 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_firebird \ - - - - - - - - - - - && /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_pgsql \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - - - - - - - - - - - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - - - - - - - - - - - && pecl install redis \ - && docker-php-ext-enable redis \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - - - - - - - - - - - && /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-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) sockets \ - - - - - - - - - - - && pecl install swoole \ - && docker-php-ext-enable swoole \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ - - - - - - - - - - - && git clone -v 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 \ - && cd / && rm -rf /tmp/uploadprogress \ - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - - - - - - - - - - - && pecl install xdebug \ - && docker-php-ext-enable xdebug \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - - - - - - - - - - - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - - - - - - - - - - - && /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 \ - - - - - - - \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install apcu \ + && docker-php-ext-enable apcu \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && 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) hash \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + && phpize \ + && ./configure --with-zlib-dir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + && docker-php-ext-enable memcache \ + && cd / && rm -rf /tmp/memcache \ + && pecl install memcached \ + && docker-php-ext-enable memcached \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install msgpack \ + && docker-php-ext-enable msgpack \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + && 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_firebird \ + && /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_pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /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-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) sockets \ + && pecl install swoole \ + && docker-php-ext-enable swoole \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && git clone -v 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 \ + && cd / && rm -rf /tmp/uploadprogress \ + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && pecl install xdebug \ + && docker-php-ext-enable xdebug \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && /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 \ + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -934,143 +257,143 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && 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 '^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 '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && 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 '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && 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 '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && 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 '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && 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 '^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 '^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 '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ - && 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 + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 index f0ee7cf..fcde385 100644 --- a/Dockerfiles/mods/Dockerfile-7.1 +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -18,94 +18,94 @@ LABEL \ ### Envs ### 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 \ - libicu-dev \ - libldap2-dev \ - libsasl2-dev \ - libmcrypt-dev \ - zlib1g-dev \ - zlib1g-dev \ - libmemcached-dev \ - libssl-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 \ - libmm-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libxml2-dev \ - libnghttp2-dev \ - libssl-dev \ - libtidy-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxslt-dev \ - zlib1g-dev \ - libzip-dev \ - ca-certificates \ + 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 \ + libicu-dev \ + libldap2-dev \ + libsasl2-dev \ + libmcrypt-dev \ + zlib1g-dev \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + libzip-dev \ + ca-certificates \ git ENV RUN_DEPS \ - librabbitmq1 \ - libenchant1c2a \ - libpng12-0 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx1 \ - libfreetype6 \ - libwebp-dev \ - libmagickwand-6.q16-2 \ - libc-client2007e \ - libfbclient2 \ - libicu52 \ - libmcrypt4 \ - libmemcachedutil2 \ - libsybdb5 \ - libfbclient2 \ - libpq5 \ - libpq5 \ - libaspell15 \ - librecode0 \ - snmp \ - libnghttp2-5 \ - libtidy-0.99-0 \ - libxslt1.1 \ - libzip2 \ - ca-certificates + librabbitmq1 \ + libenchant1c2a \ + libpng12-0 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx1 \ + libfreetype6 \ + libwebp-dev \ + libmagickwand-6.q16-2 \ + libc-client2007e \ + libfbclient2 \ + libicu52 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-5 \ + libtidy-0.99-0 \ + libxslt1.1 \ + libzip2 \ + ca-certificates ### @@ -117,801 +117,124 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - - - - - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - - - - - - - - - - - && pecl install apcu \ - && docker-php-ext-enable apcu \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ - - - - - - - - - && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - - - - - - - - - && 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) hash \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ - - - - - - - - - - - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - - - - - - - - - - - && pecl install imagick \ - && docker-php-ext-enable imagick \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - - - - - - - - - - - && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ - && cd /tmp/memcache \ - && phpize \ - && ./configure --with-zlib-dir=/usr \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - && docker-php-ext-enable memcache \ - && cd / && rm -rf /tmp/memcache \ - - - - - - - - - - && pecl install memcached \ - && docker-php-ext-enable memcached \ - - - - - - - - - - - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - - - - - - - - - - - && pecl install msgpack \ - && docker-php-ext-enable msgpack \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ - - - - - - - - - && 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_firebird \ - - - - - - - - - - - && /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_pgsql \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - - - - - - - - - - - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - - - - - - - - - - - && pecl install redis \ - && docker-php-ext-enable redis \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - - - - - - - - - - - && /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-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) sockets \ - - - - - - - - - - - && pecl install swoole \ - && docker-php-ext-enable swoole \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ - - - - - - - - - - - && git clone -v 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 \ - && cd / && rm -rf /tmp/uploadprogress \ - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - - - - - - - - - - - && pecl install xdebug \ - && docker-php-ext-enable xdebug \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - - - - - - - - - - - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - - - - - - - - - - - && /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 \ - - - - - - - \ + && echo "/usr" | pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install apcu \ + && docker-php-ext-enable apcu \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + && 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-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && 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) hash \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + && phpize \ + && ./configure --with-zlib-dir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + && docker-php-ext-enable memcache \ + && cd / && rm -rf /tmp/memcache \ + && pecl install memcached \ + && docker-php-ext-enable memcached \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install msgpack \ + && docker-php-ext-enable msgpack \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + && 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_firebird \ + && /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_pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /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-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) sockets \ + && pecl install swoole \ + && docker-php-ext-enable swoole \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && git clone -v 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 \ + && cd / && rm -rf /tmp/uploadprogress \ + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && pecl install xdebug \ + && docker-php-ext-enable xdebug \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && /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 \ + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -934,143 +257,143 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && 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 '^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 '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && 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 '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && 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 '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && 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 '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && 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 '^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 '^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 '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ - && 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 + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && 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 ### diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 index a39c874..09c9d3c 100644 --- a/Dockerfiles/mods/Dockerfile-7.2 +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -18,95 +18,95 @@ LABEL \ ### Envs ### 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 \ - libicu-dev \ - libldap2-dev \ - libsasl2-dev \ - libmcrypt-dev \ - zlib1g-dev \ - zlib1g-dev \ - libmemcached-dev \ - libssl-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 \ - libmm-dev \ - libxml2-dev \ - libssl-dev \ - libsnmp-dev \ - snmp \ - libxml2-dev \ - libsodium-dev \ - libnghttp2-dev \ - libssl-dev \ - libtidy-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxml2-dev \ - libxslt-dev \ - zlib1g-dev \ - libzip-dev \ - ca-certificates \ + 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 \ + libicu-dev \ + libldap2-dev \ + libsasl2-dev \ + libmcrypt-dev \ + zlib1g-dev \ + zlib1g-dev \ + libmemcached-dev \ + libssl-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 \ + libmm-dev \ + libxml2-dev \ + libssl-dev \ + libsnmp-dev \ + snmp \ + libxml2-dev \ + libsodium-dev \ + libnghttp2-dev \ + libssl-dev \ + libtidy-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxml2-dev \ + libxslt-dev \ + zlib1g-dev \ + libzip-dev \ + ca-certificates \ git ENV RUN_DEPS \ - librabbitmq4 \ - libenchant1c2a \ - libpng16-16 \ - libjpeg62-turbo \ - libxpm4 \ - libvpx4 \ - libfreetype6 \ - libwebp6 \ - libmagickwand-6.q16-3 \ - libc-client2007e \ - libfbclient2 \ - libicu57 \ - libmcrypt4 \ - libmemcachedutil2 \ - libsybdb5 \ - libfbclient2 \ - libpq5 \ - libpq5 \ - libaspell15 \ - librecode0 \ - snmp \ - libnghttp2-14 \ - libtidy5 \ - libxslt1.1 \ - libzip4 \ - ca-certificates + librabbitmq4 \ + libenchant1c2a \ + libpng16-16 \ + libjpeg62-turbo \ + libxpm4 \ + libvpx4 \ + libfreetype6 \ + libwebp6 \ + libmagickwand-6.q16-3 \ + libc-client2007e \ + libfbclient2 \ + libicu57 \ + libmcrypt4 \ + libmemcachedutil2 \ + libsybdb5 \ + libfbclient2 \ + libpq5 \ + libpq5 \ + libaspell15 \ + librecode0 \ + snmp \ + libnghttp2-14 \ + libtidy5 \ + libxslt1.1 \ + libzip4 \ + ca-certificates ### @@ -118,812 +118,125 @@ RUN set -x \ ${BUILD_DEPS} \ \ \ - - - - - && pecl install amqp \ - && docker-php-ext-enable amqp \ - - - - - - - - - - - && pecl install apcu \ - && docker-php-ext-enable apcu \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - - - - - - - - - && 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) hash \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ - - - - - - - - - - - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - - - - - - - - - - - && pecl install imagick \ - && docker-php-ext-enable imagick \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ - - - - - - - - - && 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 \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - - - - - - - - - - - && pecl install mcrypt-1.0.1 \ - && docker-php-ext-enable mcrypt \ - - - - - - - - - - - && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ - && cd /tmp/memcache \ - && phpize \ - && ./configure --with-zlib-dir=/usr \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - && docker-php-ext-enable memcache \ - && cd / && rm -rf /tmp/memcache \ - - - - - - - - - - && pecl install memcached \ - && docker-php-ext-enable memcached \ - - - - - - - - - - - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - - - - - - - - - - - && pecl install msgpack \ - && docker-php-ext-enable msgpack \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ - - - - - - - - - && 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_firebird \ - - - - - - - - - - - && /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_pgsql \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - - - - - - - - - - - && git clone -v https://github.com/phalcon/cphalcon /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') \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && cd / && rm -rf /tmp/phalcon \ - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - - - - - - - - - - - && pecl install redis \ - && docker-php-ext-enable redis \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure session --with-mm \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ - - - - - - - - - - - && /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-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) sockets \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sodium \ - - - - - - - - - - - && pecl install swoole \ - && docker-php-ext-enable swoole \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ - - - - - - - - - - - && git clone -v 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 \ - && cd / && rm -rf /tmp/uploadprogress \ - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - - - - - - - - - - - && pecl install xdebug \ - && docker-php-ext-enable xdebug \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ - - - - - - - - - - - && /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-configure xmlwriter --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - - - - - - - - - - - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - - - - - - - \ + && pecl install amqp \ + && docker-php-ext-enable amqp \ + && pecl install apcu \ + && docker-php-ext-enable apcu \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \ + && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && 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) hash \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \ + && pecl install igbinary \ + && docker-php-ext-enable igbinary \ + && pecl install imagick \ + && docker-php-ext-enable imagick \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \ + && 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 \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && pecl install mcrypt-1.0.1 \ + && docker-php-ext-enable mcrypt \ + && git clone -v https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + && phpize \ + && ./configure --with-zlib-dir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + && docker-php-ext-enable memcache \ + && cd / && rm -rf /tmp/memcache \ + && pecl install memcached \ + && docker-php-ext-enable memcached \ + && pecl install mongodb \ + && docker-php-ext-enable mongodb \ + && pecl install msgpack \ + && docker-php-ext-enable msgpack \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \ + && 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_firebird \ + && /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_pgsql \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && git clone -v https://github.com/phalcon/cphalcon /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') \ + && cd build && ./install \ + && docker-php-ext-enable phalcon \ + && cd / && rm -rf /tmp/phalcon \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && /usr/local/bin/docker-php-ext-configure session --with-mm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \ + && /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-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) sockets \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sodium \ + && pecl install swoole \ + && docker-php-ext-enable swoole \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \ + && git clone -v 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 \ + && cd / && rm -rf /tmp/uploadprogress \ + && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && pecl install xdebug \ + && docker-php-ext-enable xdebug \ + && /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \ + && /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-configure xmlwriter --with-libxml-dir=/usr \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + \ \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ ${BUILD_DEPS} \ @@ -946,145 +259,145 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && php -m | grep -oiE '^amqp$' \ - && php-fpm -m | grep -oiE '^amqp$' \ - && php -m | grep -oiE '^apcu$' \ - && php-fpm -m | grep -oiE '^apcu$' \ - && 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 '^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 '^imagick$' \ - && php-fpm -m | grep -oiE '^imagick$' \ - && 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 '^mbstring$' \ - && php-fpm -m | grep -oiE '^mbstring$' \ - && php -m | grep -oiE '^mcrypt$' \ - && php-fpm -m | grep -oiE '^mcrypt$' \ - && php -m | grep -oiE '^memcache$' \ - && php-fpm -m | grep -oiE '^memcache$' \ - && 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 '^msgpack$' \ - && php-fpm -m | grep -oiE '^msgpack$' \ - && php -m | grep -oiE '^mysqli$' \ - && php-fpm -m | grep -oiE '^mysqli$' \ - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - && php -m | grep -oiE '^pcntl$' \ - && php-fpm -m | grep -oiE '^pcntl$' \ - && 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 '^phalcon$' \ - && php-fpm -m | grep -oiE '^phalcon$' \ - && 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 '^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 '^xdebug$' \ - && php-fpm -m | grep -oiE '^xdebug$' \ - && php -m | grep -oiE '^xml$' \ - && php-fpm -m | grep -oiE '^xml$' \ - && 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 + && php -m | grep -oiE '^amqp$' \ + && php-fpm -m | grep -oiE '^amqp$' \ + && php -m | grep -oiE '^apcu$' \ + && php-fpm -m | grep -oiE '^apcu$' \ + && 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 '^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 '^imagick$' \ + && php-fpm -m | grep -oiE '^imagick$' \ + && 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 '^mbstring$' \ + && php-fpm -m | grep -oiE '^mbstring$' \ + && php -m | grep -oiE '^mcrypt$' \ + && php-fpm -m | grep -oiE '^mcrypt$' \ + && php -m | grep -oiE '^memcache$' \ + && php-fpm -m | grep -oiE '^memcache$' \ + && 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 '^msgpack$' \ + && php-fpm -m | grep -oiE '^msgpack$' \ + && php -m | grep -oiE '^mysqli$' \ + && php-fpm -m | grep -oiE '^mysqli$' \ + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ + && php -m | grep -oiE '^pcntl$' \ + && php-fpm -m | grep -oiE '^pcntl$' \ + && 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 '^phalcon$' \ + && php-fpm -m | grep -oiE '^phalcon$' \ + && 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 '^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 '^xdebug$' \ + && php-fpm -m | grep -oiE '^xdebug$' \ + && php -m | grep -oiE '^xml$' \ + && php-fpm -m | grep -oiE '^xml$' \ + && 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 ### diff --git a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 index 9dd76a6..7fdccb8 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 @@ -20,20 +20,20 @@ LABEL \ ENV BUILD_DEPS \ {# Loop over enabled build dependencies #} {% for ext in extensions_enabled %} - {# Not disabled #} - {% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} - {# 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'] %} - {{ 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 %} +{# Not disabled #} +{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} +{# 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'] %} + {{ 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 %} ca-certificates \ git @@ -41,20 +41,20 @@ ENV BUILD_DEPS \ ENV RUN_DEPS \ {# Loop over enabled run-time dependencies #} {% for ext in extensions_enabled %} - {# Not disabled #} - {% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} - {# Version specific run-time dependency available? #} - {% 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'] %} - {{ 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 %} +{# Not disabled #} +{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} +{# Version specific run-time dependency available? #} +{% 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'] %} + {{ 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 %} ca-certificates @@ -70,102 +70,86 @@ RUN set -x \ \ {# Loop over enabled extensions #} {% for ext in extensions_enabled %} - {# Not disabled #} - {% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} - - - {# ---------- Pre Command ---------- #} - {# 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'] }} \ - {# Generic pre-command available? #} - {% elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %} - && {{ extensions_available[ext]['all']['pre'] }} \ - {% endif %} - - {# ---------- Installation (specific) ---------- #} - {% if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] %} - - {# ---- 1.) Builtin ---- #} - {% if extensions_available[ext][php_version]['type'] == 'builtin' %} - {% if 'configure' in extensions_available[ext][php_version] %} - && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \ - {% endif %} - && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ - - {# ---- 2.) PECL ---- #} - {% elif extensions_available[ext][php_version]['type'] == 'pecl' %} - {% if 'command' in extensions_available[ext][php_version] %} - && {{ extensions_available[ext][php_version]['command'] }} \ - {% else %} - && pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \ - {% endif %} - && docker-php-ext-enable {{ ext }} \ - - {# ---- 3.) GIT ---- #} - {% elif extensions_available[ext][php_version]['type'] == 'git' %} - && git clone -v {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \ - && cd /tmp/{{ ext }} \ - {% if 'git_ref' in extensions_available[ext][php_version] %} - && git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \ - {% endif %} - {% if 'command' in extensions_available[ext][php_version] %} - && {{ extensions_available[ext][php_version]['command'] }} \ - {% else %} - && phpize \ - && ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - {% endif %} - && docker-php-ext-enable {{ ext }} \ - && cd / && rm -rf /tmp/{{ ext }} \ - {% endif %} - - - {# ---------- Installation (generic) ---------- #} - {% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %} - - {# ---- 1.) Builtin ---- #} - {% if extensions_available[ext]['all']['type'] == 'builtin' %} - {% if 'configure' in extensions_available[ext]['all'] %} - && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \ - {% endif %} - && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ - - {# ---- 2.) PECL ---- #} - {% elif extensions_available[ext]['all']['type'] == 'pecl' %} - {% if 'command' in extensions_available[ext]['all'] %} - && {{ extensions_available[ext]['all']['command'] }} \ - {% else %} - && pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \ - {% endif %} - && docker-php-ext-enable {{ ext }} \ - - {# ---- 3.) GIT ---- #} - {% elif extensions_available[ext]['all']['type'] == 'git' %} - && git clone -v {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \ - && cd /tmp/{{ ext }} \ - {% if 'git_ref' in extensions_available[ext]['all'] %} - && git checkout {{ extensions_available[ext]['all']['git_ref'] }} \ - {% endif %} - {% if 'command' in extensions_available[ext]['all'] %} - && {{ extensions_available[ext]['all']['command'] }} \ - {% else %} - && phpize \ - && ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - {% endif %} - && docker-php-ext-enable {{ ext }} \ - && cd / && rm -rf /tmp/{{ ext }} \ - {% endif %} - - - {% endif %} - - - - {% endif %} +{# Not disabled #} +{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} +{# ---------- Pre Command ---------- #} +{# 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'] }} \ +{# Generic pre-command available? #} +{% elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %} + && {{ extensions_available[ext]['all']['pre'] }} \ +{% endif %} +{# ---------- Installation (specific) ---------- #} +{% if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] %} +{# ---- 1.) Builtin ---- #} +{% if extensions_available[ext][php_version]['type'] == 'builtin' %} +{% if 'configure' in extensions_available[ext][php_version] %} + && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \ +{% endif %} + && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ +{# ---- 2.) PECL ---- #} +{% elif extensions_available[ext][php_version]['type'] == 'pecl' %} +{% if 'command' in extensions_available[ext][php_version] %} + && {{ extensions_available[ext][php_version]['command'] }} \ +{% else %} + && pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \ +{% endif %} + && docker-php-ext-enable {{ ext }} \ +{# ---- 3.) GIT ---- #} +{% elif extensions_available[ext][php_version]['type'] == 'git' %} + && git clone -v {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \ + && cd /tmp/{{ ext }} \ +{% if 'git_ref' in extensions_available[ext][php_version] %} + && git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \ +{% endif %} +{% if 'command' in extensions_available[ext][php_version] %} + && {{ extensions_available[ext][php_version]['command'] }} \ +{% else %} + && phpize \ + && ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ +{% endif %} + && docker-php-ext-enable {{ ext }} \ + && cd / && rm -rf /tmp/{{ ext }} \ +{% endif %} +{# ---------- Installation (generic) ---------- #} +{% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %} +{# ---- 1.) Builtin ---- #} +{% if extensions_available[ext]['all']['type'] == 'builtin' %} +{% if 'configure' in extensions_available[ext]['all'] %} + && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \ +{% endif %} + && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ +{# ---- 2.) PECL ---- #} +{% elif extensions_available[ext]['all']['type'] == 'pecl' %} +{% if 'command' in extensions_available[ext]['all'] %} + && {{ extensions_available[ext]['all']['command'] }} \ +{% else %} + && pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \ +{% endif %} + && docker-php-ext-enable {{ ext }} \ +{# ---- 3.) GIT ---- #} +{% elif extensions_available[ext]['all']['type'] == 'git' %} + && git clone -v {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \ + && cd /tmp/{{ ext }} \ +{% if 'git_ref' in extensions_available[ext]['all'] %} + && git checkout {{ extensions_available[ext]['all']['git_ref'] }} \ +{% endif %} +{% if 'command' in extensions_available[ext]['all'] %} + && {{ extensions_available[ext]['all']['command'] }} \ +{% else %} + && phpize \ + && ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ +{% endif %} + && docker-php-ext-enable {{ ext }} \ + && cd / && rm -rf /tmp/{{ ext }} \ +{% endif %} +{% endif %} +{% endif %} {% endfor %} \ \ @@ -192,16 +176,16 @@ RUN set -x \ RUN set -x \ {% for ext in extensions_enabled %} - {# Not disabled #} - {% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} - {% if ext == 'opcache' %} - && php -m | grep -oiE '^Zend Opcache$' \ - && php-fpm -m | grep -oiE '^Zend Opcache$' \ - {% else %} - && php -m | grep -oiE '^{{ ext }}$' \ - && php-fpm -m | grep -oiE '^{{ ext }}$' \ - {% endif %} - {% endif %} +{# Not disabled #} +{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} +{% if ext == 'opcache' %} + && php -m | grep -oiE '^Zend Opcache$' \ + && php-fpm -m | grep -oiE '^Zend Opcache$' \ +{% else %} + && php -m | grep -oiE '^{{ ext }}$' \ + && php-fpm -m | grep -oiE '^{{ ext }}$' \ +{% endif %} +{% endif %} {% endfor %} && true From f5491d91fccf573544cdfaeef9a327412d97145e Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 27 Feb 2018 09:32:49 +0100 Subject: [PATCH 14/35] Rebuild docker-entrypoint scripts --- Dockerfiles/base/Dockerfile-5.4 | 2 +- Dockerfiles/base/Dockerfile-5.5 | 2 +- Dockerfiles/base/Dockerfile-5.6 | 2 +- Dockerfiles/base/Dockerfile-7.0 | 2 +- Dockerfiles/base/Dockerfile-7.1 | 2 +- Dockerfiles/base/Dockerfile-7.2 | 2 +- .../data/docker-entrypoint.d/00-base-libs.sh | 125 +++++--------- .../base/data/docker-entrypoint.d/01-debug.sh | 22 --- .../data/docker-entrypoint.d/01-uid-gid.sh | 125 ++++++++++++++ .../data/docker-entrypoint.d/02-uid-gid.sh | 104 ------------ Dockerfiles/base/data/docker-entrypoint.sh | 44 ++--- Dockerfiles/base/data/php-fpm.conf | 2 - Dockerfiles/base/data/php-fpm.d/docker.conf | 10 ++ Dockerfiles/base/data/php-fpm.d/listen.conf | 3 + Dockerfiles/base/data/php-fpm.d/logfiles.conf | 6 + Dockerfiles/base/data/php-fpm.d/loglevel.conf | 2 + .../php-fpm.d/{devilbox.conf => pool.conf} | 3 - Dockerfiles/base/data/php-fpm.d/user.conf | 5 + .../data/docker-entrypoint.d/30-timezone.sh | 61 +++---- .../data/docker-entrypoint.d/31-postfix.sh | 71 ++++---- .../docker-entrypoint.d/32-docker-logs.sh | 141 ++++++---------- .../33-socat-port-forwarding.sh | 159 ++++++++---------- .../data/docker-entrypoint.d/34-supervisor.sh | 51 ++++++ ...om-ini-files.sh => 35-custom-ini-files.sh} | 28 +-- .../data/docker-entrypoint.d/35-supervisor.sh | 60 ------- Dockerfiles/prod/data/docker-entrypoint.sh | 104 ++++++------ build/ansible/DOCKERFILES/Dockerfile-base.j2 | 2 +- 27 files changed, 530 insertions(+), 610 deletions(-) delete mode 100755 Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh create mode 100755 Dockerfiles/base/data/docker-entrypoint.d/01-uid-gid.sh delete mode 100755 Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh create mode 100644 Dockerfiles/base/data/php-fpm.d/docker.conf create mode 100644 Dockerfiles/base/data/php-fpm.d/listen.conf create mode 100644 Dockerfiles/base/data/php-fpm.d/logfiles.conf create mode 100644 Dockerfiles/base/data/php-fpm.d/loglevel.conf rename Dockerfiles/base/data/php-fpm.d/{devilbox.conf => pool.conf} (80%) create mode 100644 Dockerfiles/base/data/php-fpm.d/user.conf create mode 100755 Dockerfiles/prod/data/docker-entrypoint.d/34-supervisor.sh rename Dockerfiles/prod/data/docker-entrypoint.d/{34-custom-ini-files.sh => 35-custom-ini-files.sh} (74%) delete mode 100755 Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh diff --git a/Dockerfiles/base/Dockerfile-5.4 b/Dockerfiles/base/Dockerfile-5.4 index 5da2e79..78ba444 100644 --- a/Dockerfiles/base/Dockerfile-5.4 +++ b/Dockerfiles/base/Dockerfile-5.4 @@ -46,7 +46,7 @@ RUN set -x \ COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.d /docker-entrypoint.d COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf -COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf +COPY ./data/php-fpm.d /usr/local/etc/php-fpm.d ### diff --git a/Dockerfiles/base/Dockerfile-5.5 b/Dockerfiles/base/Dockerfile-5.5 index 9fafe2f..c6907fb 100644 --- a/Dockerfiles/base/Dockerfile-5.5 +++ b/Dockerfiles/base/Dockerfile-5.5 @@ -46,7 +46,7 @@ RUN set -x \ COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.d /docker-entrypoint.d COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf -COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf +COPY ./data/php-fpm.d /usr/local/etc/php-fpm.d ### diff --git a/Dockerfiles/base/Dockerfile-5.6 b/Dockerfiles/base/Dockerfile-5.6 index 0217520..dfe0bcd 100644 --- a/Dockerfiles/base/Dockerfile-5.6 +++ b/Dockerfiles/base/Dockerfile-5.6 @@ -46,7 +46,7 @@ RUN set -x \ COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.d /docker-entrypoint.d COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf -COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf +COPY ./data/php-fpm.d /usr/local/etc/php-fpm.d ### diff --git a/Dockerfiles/base/Dockerfile-7.0 b/Dockerfiles/base/Dockerfile-7.0 index 174bae9..c0620fa 100644 --- a/Dockerfiles/base/Dockerfile-7.0 +++ b/Dockerfiles/base/Dockerfile-7.0 @@ -46,7 +46,7 @@ RUN set -x \ COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.d /docker-entrypoint.d COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf -COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf +COPY ./data/php-fpm.d /usr/local/etc/php-fpm.d ### diff --git a/Dockerfiles/base/Dockerfile-7.1 b/Dockerfiles/base/Dockerfile-7.1 index 827bd16..6158367 100644 --- a/Dockerfiles/base/Dockerfile-7.1 +++ b/Dockerfiles/base/Dockerfile-7.1 @@ -46,7 +46,7 @@ RUN set -x \ COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.d /docker-entrypoint.d COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf -COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf +COPY ./data/php-fpm.d /usr/local/etc/php-fpm.d ### diff --git a/Dockerfiles/base/Dockerfile-7.2 b/Dockerfiles/base/Dockerfile-7.2 index 7e571a1..c4d39c5 100644 --- a/Dockerfiles/base/Dockerfile-7.2 +++ b/Dockerfiles/base/Dockerfile-7.2 @@ -46,7 +46,7 @@ RUN set -x \ COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.d /docker-entrypoint.d COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf -COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf +COPY ./data/php-fpm.d /usr/local/etc/php-fpm.d ### diff --git a/Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh b/Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh index 1094b2b..361ae34 100755 --- a/Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh +++ b/Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh @@ -1,13 +1,8 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL - +#!/usr/bin/env bash set -e set -u +set -o pipefail ############################################################ @@ -18,38 +13,31 @@ set -u ### Log to stdout/stderr ### log() { - log_lvl="${1}" - log_msg="${2}" + local type="${1}" # ok, warn or err + local message="${2}" # msg to print + local debug="${3}" # 0: only warn and error, >0: ok and info - log_clr_ok="\033[0;32m" - log_clr_info="\033[0;34m" - log_clr_warn="\033[0;33m" - log_clr_err="\033[0;31m" - log_clr_rst="\033[0m" + local clr_ok="\033[0;32m" + local clr_info="\033[0;34m" + local clr_warn="\033[0;33m" + local clr_err="\033[0;31m" + local clr_rst="\033[0m" - if [ "${log_lvl}" = "ok" ]; then - if [ "${DEBUG_LEVEL}" -gt "0" ]; then - printf "${log_clr_ok}[OK] %s${log_clr_rst}\n" "${log_msg}" + if [ "${type}" = "ok" ]; then + if [ "${debug}" -gt "0" ]; then + printf "${clr_ok}[OK] %s${clr_rst}\n" "${message}" fi - elif [ "${log_lvl}" = "info" ]; then - if [ "${DEBUG_LEVEL}" -gt "0" ]; then - printf "${log_clr_info}[INFO] %s${log_clr_rst}\n" "${log_msg}" + elif [ "${type}" = "info" ]; then + if [ "${debug}" -gt "0" ]; then + printf "${clr_info}[INFO] %s${clr_rst}\n" "${message}" fi - elif [ "${log_lvl}" = "warn" ]; then - printf "${log_clr_warn}[WARN] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr - elif [ "${log_lvl}" = "err" ]; then - printf "${log_clr_err}[ERR] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr + elif [ "${type}" = "warn" ]; then + printf "${clr_warn}[WARN] %s${clr_rst}\n" "${message}" 1>&2 # stdout -> stderr + elif [ "${type}" = "err" ]; then + printf "${clr_err}[ERR] %s${clr_rst}\n" "${message}" 1>&2 # stdout -> stderr else - printf "${log_clr_err}[???] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr + printf "${clr_err}[???] %s${clr_rst}\n" "${message}" 1>&2 # stdout -> stderr fi - - unset -v log_lvl - unset -v log_msg - unset -v log_clr_ok - unset -v log_clr_info - unset -v log_clr_warn - unset -v log_clr_err - unset -v log_clr_rst } @@ -57,29 +45,25 @@ log() { ### Wrapper for run_run command ### run() { - run_cmd="${1}" + local cmd="${1}" # command to execute + local debug="${2}" # show commands if debug level > 1 - run_clr_red="\033[0;31m" - run_clr_green="\033[0;32m" - run_clr_reset="\033[0m" + local clr_red="\033[0;31m" + local clr_green="\033[0;32m" + local clr_reset="\033[0m" - if [ "${DEBUG_LEVEL}" -gt "1" ]; then - printf "${run_clr_red}%s \$ ${run_clr_green}${run_cmd}${run_clr_reset}\n" "$( whoami )" + if [ "${debug}" -gt "1" ]; then + printf "${clr_red}%s \$ ${clr_green}${cmd}${clr_reset}\n" "$( whoami )" fi - /bin/sh -c "LANG=C LC_ALL=C ${run_cmd}" - - unset -v run_cmd - unset -v run_clr_red - unset -v run_clr_green - unset -v run_clr_reset + /bin/sh -c "LANG=C LC_ALL=C ${cmd}" } ### -### Is argument an integer? +### Is argument a positive integer? ### isint() { - echo "${1}" | grep -Eq '^([0-9]|[1-9][0-9]*)$' + test -n "${1##*[!0-9]*}" } @@ -87,11 +71,7 @@ isint() { ### Is env variable set? ### env_set() { - if set | grep "^${1}=" >/dev/null 2>&1; then - return 0 - else - return 1 - fi + printenv "${1}" >/dev/null 2>&1 } @@ -99,42 +79,25 @@ env_set() { ### Get env variable by name ### env_get() { - if ! env_set "${1}"; then - return 1 + local env_name="${1}" + + # Did we have a default value specified? + if [ "${#}" -gt "1" ]; then + if ! env_set "${env_name}"; then + echo "${2}" + return 0 + fi fi - - env_get_value="$( set | grep "^${1}=" | awk -F '=' '{for (i=2; i/dev/null 2>&1; then - log "err" "grep not found, but required." - exit 1 -fi -if ! command -v sed >/dev/null 2>&1; then - log "err" "sed not found, but required." - exit 1 -fi -if ! command -v awk >/dev/null 2>&1; then - log "err" "awk not found, but required." - exit 1 -fi -if ! command -v getent >/dev/null 2>&1; then - log "err" "getent not found, but required." +if ! command -v printenv >/dev/null 2>&1; then + log "err" "printenv not found, but required." "1" exit 1 fi diff --git a/Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh b/Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh deleted file mode 100755 index e059dcc..0000000 --- a/Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -set -e -set -u - - -############################################################ -# Functions -############################################################ - -### -### Debug level -### -get_debug_level() { - if ! env_set "${1}"; then - # Return default specified value - echo "${2}" - else - # Return env value - env_get "${1}" - fi -} diff --git a/Dockerfiles/base/data/docker-entrypoint.d/01-uid-gid.sh b/Dockerfiles/base/data/docker-entrypoint.d/01-uid-gid.sh new file mode 100755 index 0000000..75a8f47 --- /dev/null +++ b/Dockerfiles/base/data/docker-entrypoint.d/01-uid-gid.sh @@ -0,0 +1,125 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + + +############################################################ +# Functions +############################################################ + +### +### Helper +### +_get_username_by_uid() { + if getent="$( getent passwd "${1}" )"; then + echo "${getent//:*}" + return 0 + fi + return 1 +} +_get_groupname_by_gid() { + if getent="$( getent group "${1}" )"; then + echo "${getent//:*}" + return 0 + fi + return 1 +} + + +### +### Change UID +### +set_uid() { + local uid_varname="${1}" + local username="${2}" + local homedir="${3}" + local debug="${4}" + + local uid= # new uid + local spare_uid=9876 # spare uid to change another user to + + if ! env_set "${uid_varname}"; then + log "info" "\$${uid_varname} not set. Keeping default uid for '${username}'." "${debug}" + else + uid="$( env_get "${uid_varname}" )" + + if ! isint "${uid}"; then + log "err" "\$${uid_varname} is not an integer: '${uid}'" "${debug}" + exit 1 + else + # Username with this uid already exists + if target_username="$( _get_username_by_uid "${uid}" )"; then + # It is not our user, so we need to changes his/her uid to something else first + if [ "${target_username}" != "${username}" ]; then + log "warn" "User with ${uid} already exists: ${target_username}" "${debug}" + log "info" "Changing UID of ${target_username} to ${spare_uid}" "${debug}" + run "usermod -u ${spare_uid} ${target_username}" "${debug}" + fi + fi + # Change uid and fix homedir permissions + log "info" "Changing user '${username}' uid to: ${uid}" "${debug}" + run "usermod -u ${uid} ${username}" "${debug}" + run "chown -R ${username} ${homedir}" "${debug}" + fi + fi +} + + +### +### Change GID +### +set_gid() { + local gid_varname="${1}" + local groupname="${2}" + local homedir="${3}" + local debug="${4}" + + local gid= # new gid + local spare_gid=9876 # spare gid to change another group to + + if ! env_set "${gid_varname}"; then + log "info" "\$${gid_varname} not set. Keeping default gid for '${groupname}'." "${debug}" + else + # Retrieve the value from env + gid="$( env_get "${gid_varname}" )" + + if ! isint "${gid}"; then + log "err" "\$${gid_varname} is not an integer: '${gid}'" "${debug}" + exit 1 + else + # Groupname with this gid already exists + if target_groupname="$( _get_groupname_by_gid "${gid}" )"; then + # It is not our group, so we need to changes his/her gid to something else first + if [ "${target_groupname}" != "${groupname}" ]; then + log "warn" "Group with ${gid} already exists: ${target_groupname}" "${debug}" + log "info" "Changing GID of ${target_groupname} to ${spare_gid}" "${debug}" + run "groupmod -g ${spare_gid} ${target_groupname}" "${debug}" + fi + fi + # Change ugd and fix homedir permissions + log "info" "Changing group '${groupname}' gid to: ${gid}" "${debug}" + run "groupmod -g ${gid} ${groupname}" "${debug}" + run "chown -R :${groupname} ${homedir}" "${debug}" + fi + fi +} + + +############################################################ +# Sanity Checks +############################################################ + +if ! command -v usermod >/dev/null 2>&1; then + log "err" "usermod not found, but required." "1" + exit 1 +fi +if ! command -v groupmod >/dev/null 2>&1; then + log "err" "groupmod not found, but required." "1" + exit 1 +fi +if ! command -v getent >/dev/null 2>&1; then + log "err" "getent not found, but required." "1" + exit 1 +fi diff --git a/Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh b/Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh deleted file mode 100755 index 48bb013..0000000 --- a/Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL - -set -e -set -u - - -############################################################ -# Functions -############################################################ - -### -### Change UID -### -set_uid() { - uid_varname="${1}" - - if ! env_set "${uid_varname}"; then - log "info" "\$${uid_varname} not set. Keeping default uid for '${MY_USER}'." - else - uid_env_uid="$( env_get "${uid_varname}" )" - - if ! isint "${uid_env_uid}"; then - log "err" "\$${uid_varname} is not an integer: '${uid_env_uid}'" - exit 1 - else - if uid_getent_row="$( getent passwd "${uid_env_uid}" )"; then - uid_getent_name="$( echo "${uid_getent_row}" | awk -F ':' '{print $1}' )" - if [ "${uid_getent_name}" != "${MY_USER}" ]; then - log "warn" "User with ${uid_env_uid} already exists: ${uid_getent_name}" - log "info" "Changing UID of ${uid_getent_name} to 9999" - run "usermod -u 9999 ${uid_getent_name}" - fi - fi - log "info" "Changing user '${MY_USER}' uid to: ${uid_env_uid}" - run "usermod -u ${uid_env_uid} ${MY_USER}" - fi - fi - - # Fix homedir permissions - run "chown -R ${MY_USER} /home/${MY_USER}" - - unset -v uid_varname - unset -v uid_env_uid - unset -v uid_getent_row - unset -v uid_getent_name -} - - -### -### Change GID -### -set_gid() { - gid_varname="${1}" - - if ! env_set "${gid_varname}"; then - log "info" "\$${gid_varname} not set. Keeping default gid for '${MY_GROUP}'." - else - # Retrieve the value from env - gid_env_gid="$( env_get "${gid_varname}" )" - - if ! isint "${gid_env_gid}"; then - log "err" "\$${gid_varname} is not an integer: '${gid_env_gid}'" - exit 1 - else - if gid_getent_row="$( getent group "${gid_env_gid}" )"; then - gid_getent_name="$( echo "${gid_getent_row}" | awk -F ':' '{print $1}' )" - if [ "${gid_getent_name}" != "${MY_GROUP}" ]; then - log "warn" "Group with ${gid_env_gid} already exists: ${gid_getent_name}" - log "info" "Changing GID of ${gid_getent_name} to 9999" - run "groupmod -g 9999 ${gid_getent_name}" - fi - fi - log "info" "Changing group '${MY_GROUP}' gid to: ${gid_env_gid}" - run "groupmod -g ${gid_env_gid} ${MY_GROUP}" - fi - fi - - # Fix homedir permissions - run "chown -R :${MY_GROUP} /home/${MY_USER}" - - unset -v gid_varname - unset -v gid_env_gid - unset -v gid_getent_row - unset -v gid_getent_name -} - - -############################################################ -# Sanity Checks -############################################################ - -if ! command -v usermod >/dev/null 2>&1; then - log "err" "usermod not found, but required." - exit 1 -fi -if ! command -v groupmod >/dev/null 2>&1; then - log "err" "groupmod not found, but required." - exit 1 -fi diff --git a/Dockerfiles/base/data/docker-entrypoint.sh b/Dockerfiles/base/data/docker-entrypoint.sh index ae79564..85de2fd 100755 --- a/Dockerfiles/base/data/docker-entrypoint.sh +++ b/Dockerfiles/base/data/docker-entrypoint.sh @@ -1,17 +1,21 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL +#!/usr/bin/env bash - -### -### Settings -### set -e set -u +set -p pipefail + +### +### Globals +### + +# The following global variables are available by our Dockerfile itself: +# MY_USER +# MY_GROUP +# MY_UID +# MY_GID + +# Path to scripts to source CONFIG_DIR="/docker-entrypoint.d" @@ -25,27 +29,27 @@ for f in ${init}; do done -### -### Set Debug level -### -DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )" -log "info" "Debug level: ${DEBUG_LEVEL}" - - ############################################################# ## Entry Point ############################################################# +### +### Set Debug level +### +DEBUG_LEVEL="$( env_get "DEBUG_ENTRYPOINT" "0" )" +log "info" "Debug level: ${DEBUG_LEVEL}" "${DEBUG_LEVEL}" + + ### ### Change uid/gid ### -set_uid "NEW_UID" -set_gid "NEW_GID" +set_uid "NEW_UID" "${MY_USER}" "/home/${MY_USER}" "${DEBUG_LEVEL}" +set_gid "NEW_GID" "${MY_GROUP}" "/home/${MY_USER}" "${DEBUG_LEVEL}" ### ### Startup ### -log "info" "Starting $( php-fpm -v 2>&1 | head -1 )" +log "info" "Starting $( php-fpm -v 2>&1 | head -1 )" "${DEBUG_LEVEL}" exec /usr/local/sbin/php-fpm diff --git a/Dockerfiles/base/data/php-fpm.conf b/Dockerfiles/base/data/php-fpm.conf index 93be5cd..370fe70 100644 --- a/Dockerfiles/base/data/php-fpm.conf +++ b/Dockerfiles/base/data/php-fpm.conf @@ -1,5 +1,3 @@ [global] -error_log = /proc/self/fd/2 -log_level = notice daemonize = no include = /usr/local/etc/php-fpm.d/*.conf diff --git a/Dockerfiles/base/data/php-fpm.d/docker.conf b/Dockerfiles/base/data/php-fpm.d/docker.conf new file mode 100644 index 0000000..2dc750f --- /dev/null +++ b/Dockerfiles/base/data/php-fpm.d/docker.conf @@ -0,0 +1,10 @@ +[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 diff --git a/Dockerfiles/base/data/php-fpm.d/listen.conf b/Dockerfiles/base/data/php-fpm.d/listen.conf new file mode 100644 index 0000000..6972812 --- /dev/null +++ b/Dockerfiles/base/data/php-fpm.d/listen.conf @@ -0,0 +1,3 @@ +[www] +; Ensure to listen here +listen = 9000 diff --git a/Dockerfiles/base/data/php-fpm.d/logfiles.conf b/Dockerfiles/base/data/php-fpm.d/logfiles.conf new file mode 100644 index 0000000..554fd2e --- /dev/null +++ b/Dockerfiles/base/data/php-fpm.d/logfiles.conf @@ -0,0 +1,6 @@ +[global] +error_log = /proc/self/fd/2 + +[www] +; if we send this to /proc/self/fd/1, it never appears +access.log = /proc/self/fd/2 diff --git a/Dockerfiles/base/data/php-fpm.d/loglevel.conf b/Dockerfiles/base/data/php-fpm.d/loglevel.conf new file mode 100644 index 0000000..fa63f95 --- /dev/null +++ b/Dockerfiles/base/data/php-fpm.d/loglevel.conf @@ -0,0 +1,2 @@ +[global] +log_level = notice diff --git a/Dockerfiles/base/data/php-fpm.d/devilbox.conf b/Dockerfiles/base/data/php-fpm.d/pool.conf similarity index 80% rename from Dockerfiles/base/data/php-fpm.d/devilbox.conf rename to Dockerfiles/base/data/php-fpm.d/pool.conf index ace645a..1ed4f1a 100644 --- a/Dockerfiles/base/data/php-fpm.d/devilbox.conf +++ b/Dockerfiles/base/data/php-fpm.d/pool.conf @@ -4,9 +4,6 @@ user = devilbox group = devilbox -; if we send this to /proc/self/fd/1, it never appears -access.log = /proc/self/fd/2 - ; Ensure to listen here listen = 9000 diff --git a/Dockerfiles/base/data/php-fpm.d/user.conf b/Dockerfiles/base/data/php-fpm.d/user.conf new file mode 100644 index 0000000..bbc2b16 --- /dev/null +++ b/Dockerfiles/base/data/php-fpm.d/user.conf @@ -0,0 +1,5 @@ +[www] + +; User and Group +user = devilbox +group = devilbox diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh b/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh index de5d731..03a03bb 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh @@ -1,13 +1,8 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL - +#!/usr/bin/env bash set -e set -u +set -o pipefail ############################################################ @@ -18,43 +13,33 @@ set -u ### Change Timezone ### set_timezone() { - tz_env_varname="${1}" - tz_php_ini="${2}" + local env_varname="${1}" + local php_conf_dir="${2}" + local debug="${3}" + local timezone= - if ! env_set "${tz_env_varname}"; then - log "info" "\$${tz_env_varname} not set." - log "info" "Setting PHP: timezone=UTC" - run "sed -i'' 's|^[[:space:]]*;*[[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = UTF|g' ${tz_php_ini}" + if ! env_set "${env_varname}"; then + log "info" "\$${env_varname} not set." "${debug}" + # Unix Time + log "info" "Setting container timezone to: UTC" "${debug}" + run "ln -sf /usr/share/zoneinfo/UTC /etc/localtime" "${debug}" + # PHP Time + log "info" "Setting PHP: timezone=UTC" "${debug}" + run "echo 'date.timezone = UTC' > ${php_conf_dir}/devilbox-runtime.ini" "${debug}" else - tz_timezone="$( env_get "${tz_env_varname}" )" - if [ -f "/usr/share/zoneinfo/${tz_timezone}" ]; then + timezone="$( env_get "${env_varname}" )" + if [ -f "/usr/share/zoneinfo/${timezone}" ]; then # Unix Time - log "info" "Setting container timezone to: ${tz_timezone}" - run "rm /etc/localtime" - run "ln -s /usr/share/zoneinfo/${tz_timezone} /etc/localtime" - + log "info" "Setting container timezone to: ${timezone}" "${debug}" + run "ln -sf /usr/share/zoneinfo/${timezone} /etc/localtime" "${debug}" # PHP Time - log "info" "Setting PHP: timezone=${tz_timezone}" - run "sed -i'' 's|^[[:space:]]*;*[[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = ${tz_timezone}|g' ${tz_php_ini}" + log "info" "Setting PHP: timezone=${timezone}" "${debug}" + run "echo 'date.timezone = ${timezone}' > ${php_conf_dir}/devilbox-runtime.ini" "${debug}" else - log "err" "Invalid timezone for \$${tz_env_varname}." - log "err" "\$TIMEZONE: '${tz_timezone}' does not exist." + log "err" "Invalid timezone for \$${env_varname}." "${debug}" + log "err" "Timezone '${timezone}' does not exist." "${debug}" exit 1 fi fi - log "info" "Docker date set to: $(date)" - - unset -v tz_env_varname - unset -v tz_php_ini - unset -v tz_timezone + log "info" "Docker date set to: $(date)" "${debug}" } - - -############################################################ -# Sanity Checks -############################################################ - -if ! command -v sed >/dev/null 2>&1; then - echo "sed not found, but required." - exit 1 -fi diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh b/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh index fcaa8fe..f4d2b18 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh @@ -1,14 +1,8 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL - +#!/usr/bin/env bash set -e set -u - +set -o pipefail ############################################################ @@ -19,45 +13,50 @@ set -u ### Setup Postfix for catch-all ### set_postfix() { - postfix_env_varname="${1}" + local env_varname="${1}" + local username="${2}" + local groupname="${3}" + local debug="${4}" - if ! env_set "${postfix_env_varname}"; then - log "info" "\$${postfix_env_varname} not set." - log "info" "Disabling sending of emails" + local catch_all= + + if ! env_set "${env_varname}"; then + log "info" "\$${env_varname} not set." "${debug}" + log "info" "Postfix will not be started." "${debug}" else - postfix_env_value="$( env_get "${postfix_env_varname}" )" - if [ "${postfix_env_value}" = "1" ]; then - log "info" "Enabling sending of emails" + catch_all="$( env_get "${env_varname}" )" + if [ "${catch_all}" = "1" ]; then + log "info" "Enabling postfix catch-all" "${debug}" - # Add Mail file if it does not exist - if [ ! -f "/var/mail/${MY_USER}" ]; then - run "touch /var/mail/${MY_USER}" + # Add Mail dir/file if it does not exist + if [ ! -d "/var/mail" ]; then + run "mkdir /var/mail" "${debug}" + fi + if [ ! -f "/var/mail/${username}" ]; then + run "touch /var/mail/${username}" "${debug}" fi - # Fix mail user permissions after mount - run "chmod 0644 /var/mail/${MY_USER}" - run "chown ${MY_USER}:${MY_GROUP} /var/mail" - run "chown ${MY_USER}:${MY_GROUP} /var/mail/${MY_USER}" + # Fix mail dir/file permissions after mount + run "chmod 0644 /var/mail/${username}" "${debug}" + run "chown ${username}:${groupname} /var/mail" "${debug}" + run "chown ${username}:${groupname} /var/mail/${username}" "${debug}" # Postfix configuration - run "postconf -e 'inet_protocols=ipv4'" - run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'" - run "echo '/.*@.*/ ${MY_USER}' >> /etc/postfix/virtual" + run "postconf -e 'inet_protocols=ipv4'" "${debug}" + run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'" "${debug}" + run "echo '/.*@.*/ ${username}' >> /etc/postfix/virtual" "${debug}" - run "newaliases" + run "newaliases" "${debug}" - elif [ "${postfix_env_value}" = "0" ]; then - log "info" "Disabling sending of emails." + elif [ "${catch_all}" = "0" ]; then + log "info" "Disabling postfix catch-all" "${debug}" else - log "err" "Invalid value for \$${postfix_env_varname}" - log "err" "Only 1 (for on) or 0 (for off) are allowed" + log "err" "Invalid value for \$${env_varname}" "${debug}" + log "err" "Only 1 (for on) or 0 (for off) are allowed" "${debug}" exit 1 fi fi - - unset -v postfix_env_varname - unset -v postfix_env_value } @@ -66,6 +65,10 @@ set_postfix() { ############################################################ if ! command -v postconf >/dev/null 2>&1; then - echo "postconf not found, but required." + log "err" "postconf not found, but required." "1" + exit 1 +fi +if ! command -v newaliases >/dev/null 2>&1; then + log "err" "newaliases not found, but required." "1" exit 1 fi diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh b/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh index 327aca6..58a0737 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh @@ -1,47 +1,48 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL - +#!/usr/bin/env bash set -e set -u - +set -o pipefail ############################################################ # Helper Functions ############################################################ -# Check if PHP-FPM config files contain valid logging directives -_validate_docker_logs() { - vdl_fpm_error_log_conf="${1}" - vdl_fpm_access_log_conf="${2}" - - if [ ! -f "${vdl_fpm_error_log_conf}" ]; then - log "err" "PHP-FPM Error log config file does not exist in: ${vdl_fpm_error_log_conf}" - exit 1 - fi - if [ ! -f "${vdl_fpm_access_log_conf}" ]; then - log "err" "PHP-FPM Access log config file does not exist in: ${dl_fpm_access_log_conf}" - exit 1 - fi - - if ! grep -Eq '^error_log.*$' "${vdl_fpm_error_log_conf}"; then - log "err" "PHP-FPM Error log config file has no error logging directive" - exit 1 - fi - if ! grep -Eq '^access\.log.*$' "${vdl_fpm_access_log_conf}"; then - log "err" "PHP-FPM Access log config file has no access logging directive" - exit 1 - fi - - unset -v vdl_fpm_error_log_conf - unset -v vdl_fpm_access_log_conf +_log_to_dockerlogs() { + local conf_logfile="${1}" + { + echo "[global]" + echo "error_log = /proc/self/fd/2" + echo "[www]" + echo "access.log = /proc/self/fd/2" + } > "${conf_logfile}" } +_log_to_files() { + local conf_logfile="${1}" + local log_dir="${2}" + local user="${3}" + local group="${4}" + local debug="${5}" + # Create Log directory and files + if [ ! -d "${log_dir}" ]; then + run "mkdir -p ${log_dir}" "${debug}" + fi + if [ ! -f "${log_dir}/php-fpm.access" ]; then + run "touch ${log_dir}/php-fpm.access" "${debug}" + fi + if [ ! -f "${log_dir}/php-fpm.error" ]; then + run "touch ${log_dir}/php-fpm.error" "${debug}" + fi + run "chown -R ${user}:${group} ${log_dir}" "${debug}" + { + echo "[global]" + echo "error_log = ${log_dir}/php-fpm.error" + echo "[www]" + echo "access.log = ${log_dir}/php-fpm.access" + } > "${conf_logfile}" +} ############################################################ @@ -49,68 +50,38 @@ _validate_docker_logs() { ############################################################ ### -### Change UID +### Change PHP-FPM logging (file or docker logs) ### set_docker_logs() { - dl_env_varname="${1}" - dl_log_dir="${2}" - dl_fpm_error_log_conf="${3}" - dl_fpm_access_log_conf="${4}" + local env_varname="${1}" + local log_dir="${2}" + local conf_logfile="${3}" + local user="${4}" + local group="${5}" + local debug="${6}" - if ! env_set "${dl_env_varname}"; then - log "info" "\$${dl_env_varname} not set." - log "info" "Logging to docker logs stdout and stderr" + local docker_logs= + + if ! env_set "${env_varname}"; then + log "info" "\$${env_varname} not set." "${debug}" + log "info" "Logging to docker logs (stdout and stderr)." "${debug}" + _log_to_dockerlogs "${conf_logfile}" else - dl_docker_logs="$( env_get "${dl_env_varname}" )" + docker_logs="$( env_get "${env_varname}" )" # Disable docker logs and log to files - if [ "${dl_docker_logs}" = "0" ]; then - log "info" "\$${dl_env_varname} set to 0. Logging to files under: ${dl_log_dir}" - log "info" "Make sure to mount this directory in order to view logs" - - # Validation - _validate_docker_logs "${dl_fpm_error_log_conf}" "${dl_fpm_access_log_conf}" - - # Create Log directory - if [ ! -d "${dl_log_dir}" ]; then - run "mkdir -p ${dl_log_dir}" - fi - - # Fix permissions (in case uid/gid has changed) - if [ ! -f "${dl_log_dir}/php-fpm.access" ]; then - touch "${dl_log_dir}/php-fpm.access" - fi - if [ ! -f "${dl_log_dir}/php-fpm.error" ]; then - touch "${dl_log_dir}/php-fpm.error" - fi - run "chown -R ${MY_USER}:${MY_GROUP} ${dl_log_dir}" - - # Adjust PHP-FPM config to log to file - run "sed -i'' 's|^error_log.*$|error_log = ${dl_log_dir}/php-fpm.error|g' ${dl_fpm_error_log_conf}" - run "sed -i'' 's|^access\.log.*$|access.log = ${dl_log_dir}/php-fpm.access|g' ${dl_fpm_access_log_conf}" + if [ "${docker_logs}" = "0" ]; then + log "info" "\$${env_varname} set to 0. Logging to files under: ${log_dir}" "${debug}" + log "info" "Make sure to mount this directory in order to view logs" "${debug}" + _log_to_files "${conf_logfile}" "${log_dir}" "${user}" "${group}" "${debug}" # Keep docker logs - elif [ "${dl_docker_logs}" = "1" ]; then - log "info" "\$${dl_env_varname} set to 1. Logging to docker logs stdout and stderr." + elif [ "${docker_logs}" = "1" ]; then + log "info" "\$${env_varname} set to 1. Logging to docker logs (stdout and stderr)." + _log_to_dockerlogs "${conf_logfile}" else - log "err" "Invalid value for \$${dl_env_varname}. Can only be 0 or 1. Provided: ${dl_docker_logs}" + log "err" "Invalid value for \$${env_varname}. Can only be 0 or 1. Provided: ${docker_logs}" exit 1 fi fi - - unset -v dl_env_varname - unset -v dl_log_dir - unset -v dl_fpm_error_log_conf - unset -v dl_fpm_access_log_conf - unset -v dl_docker_logs } - - -############################################################ -# Sanity Checks -############################################################ - -if ! command -v sed >/dev/null 2>&1; then - echo "sed not found, but required." - exit 1 -fi diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh b/Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh index 47209a2..f637b3b 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh @@ -1,93 +1,76 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL - +#!/usr/bin/env bash set -e set -u - +set -o pipefail ############################################################ # Helper Functions ############################################################ -### -### Helper functions -### +# Check whether a string is a valid IP address _isip() { + local o1= + local o2= + local o3= + local o4= + # IP is not in correct format if ! echo "${1}" | grep -Eq '^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$'; then return 1 fi # Get each octet - isip_o1="$( echo "${1}" | awk -F'.' '{print $1}' )" - isip_o2="$( echo "${1}" | awk -F'.' '{print $2}' )" - isip_o3="$( echo "${1}" | awk -F'.' '{print $3}' )" - isip_o4="$( echo "${1}" | awk -F'.' '{print $4}' )" + o1="$( echo "${1}" | awk -F'.' '{print $1}' )" + o2="$( echo "${1}" | awk -F'.' '{print $2}' )" + o3="$( echo "${1}" | awk -F'.' '{print $3}' )" + o4="$( echo "${1}" | awk -F'.' '{print $4}' )" # Cannot start with 0 and all must be below 256 - if [ "${isip_o1}" -lt "1" ] || \ - [ "${isip_o1}" -gt "255" ] || \ - [ "${isip_o2}" -gt "255" ] || \ - [ "${isip_o3}" -gt "255" ] || \ - [ "${isip_o4}" -gt "255" ]; then - unset -v isip_o1 - unset -v isip_o2 - unset -v isip_o3 - unset -v isip_o4 + if [ "${o1}" -lt "1" ] || \ + [ "${o1}" -gt "255" ] || \ + [ "${o2}" -gt "255" ] || \ + [ "${o3}" -gt "255" ] || \ + [ "${o4}" -gt "255" ]; then # Error return 1 fi - - unset -v isip_o1 - unset -v isip_o2 - unset -v isip_o3 - unset -v isip_o4 - - # Success - return 0 } +# Check whether a string is a valid hostname _ishostname() { + local hostname="${1}" + local first_char= + local last_char= + # Does not have correct character class - if ! echo "${1}" | grep -Eq '^[-.0-9a-zA-Z]+$'; then + if ! echo "${hostname}" | grep -Eq '^[-.0-9a-zA-Z]+$'; then return 1 fi # first and last character - ishostname_f_char="$( echo "${1}" | cut -c1-1 )" - ishostname_l_char="$( echo "${1}" | sed -e 's/.*\(.\)$/\1/' )" + first_char="${hostname:0:1}" + last_char="${hostname: -1}" # Dot at beginning or end - if [ "${ishostname_f_char}" = "." ] || [ "${ishostname_l_char}" = "." ]; then - unset -v ishostname_f_char - unset -v ishostname_l_char + if [ "${first_char}" = "." ] || [ "${last_char}" = "." ]; then # Error return 1 fi # Dash at beginning or end - if [ "${ishostname_f_char}" = "-" ] || [ "${ishostname_l_char}" = "-" ]; then - unset -v ishostname_f_char - unset -v ishostname_l_char + if [ "${first_char}" = "-" ] || [ "${last_char}" = "-" ]; then # Error return 1 fi - unset -v ishostname_f_char - unset -v ishostname_l_char - # Multiple dots next to each other - if echo "${1}" | grep -Eq '[.]{2,}'; then + if echo "${hostname}" | grep -Eq '[.]{2,}'; then # Error return 1 fi # Dash next to dot - if echo "${1}" | grep -Eq '(\.-)|(-\.)'; then + if echo "${hostname}" | grep -Eq '(\.-)|(-\.)'; then # Error return 1 fi @@ -97,32 +80,30 @@ _ishostname() { } - ############################################################ # Functions ############################################################ ### -### +### Convert comma separated port-forwards into newline separated "lport:host:rport" ### port_forward_get_lines() { + local forwards= + local l= if env_set "${1}"; then # Transform into newline separated forwards: # local-port:host:remote-port\n # local-port:host:remote-port\n - pfl_forwards="$( env_get "${1}" | sed 's/[[:space:]]*//g' | sed 's/,/\n/g' )" + forwards="$( env_get "${1}" | sed 's/[[:space:]]*//g' | sed 's/,/\n/g' )" # loop over them line by line IFS=' ' - for pfl_line in ${pfl_forwards}; do - echo "${pfl_line}" + for l in ${forwards}; do + echo "${l}" done - - unset -v pfl_forwards - unset -v pfl_line fi } @@ -142,47 +123,53 @@ port_forward_get_rport() { port_forward_validate() { - pfv_env_varname="${1}" + local env_varname="${1}" + local debug="${2}" + local line= - if ! env_set "${pfv_env_varname}"; then - log "info" "\$${pfv_env_varname} not set." - log "info" "Not ports from other machines will be forwarded to 127.0.0.1 inside this docker" + local lport= + local rhost= + local rport= + + if ! env_set "${env_varname}"; then + log "info" "\$${env_varname} not set." "${debug}" + log "info" "Not ports from other machines will be forwarded to 127.0.0.1 inside this docker" "${debug}" else # Loop over forwards in order to validate them - for pfv_line in $( port_forward_get_lines "${pfv_env_varname}" ); do - pfv_lport="$( port_forward_get_lport "${pfv_line}" )" - pfv_rhost="$( port_forward_get_rhost "${pfv_line}" )" - pfv_rport="$( port_forward_get_rport "${pfv_line}" )" + for line in $( port_forward_get_lines "${env_varname}" ); do + lport="$( port_forward_get_lport "${line}" )" + rhost="$( port_forward_get_rhost "${line}" )" + rport="$( port_forward_get_rport "${line}" )" - if ! isint "${pfv_lport}"; then - log "err" "Port forwarding error: local port is not an integer: ${pfv_lport}" - log "err" "Line: ${pfv_line}" + # Wrong number of ':' separators + if [ "$( echo "${line}" | grep -o ':' | wc -l )" -ne "2" ]; then + log "err" "Port forwarding error: invalid number of ':' separators" "${debug}" + log "err" "Line: ${line}" "${debug}" + exit + fi + + if ! isint "${lport}"; then + log "err" "Port forwarding error: local port is not an integer: ${lport}" "${debug}" + log "err" "Line: ${line}" "${debug}" exit 1 fi - if ! _isip "${pfv_rhost}" && ! _ishostname "${pfv_rhost}"; then - log "err" "Port forwarding error: remote host is not a valid IP and not a valid hostname: ${pfv_rhost}" - log "err" "Line: ${pfv_line}" - log "err" "" + if ! _isip "${rhost}" && ! _ishostname "${rhost}"; then + log "err" "Port forwarding error: remote host is not a valid IP and not a valid hostname: ${rhost}" "${debug}" + log "err" "Line: ${line}" "${debug}" + log "err" "" "${debug}" exit 1 fi - if ! isint "${pfv_rport}"; then - log "err" "Port forwarding error: remote port is not an integer: ${pfv_rport}" - log "err" "Line: ${pfv_line}" - log "err" "" + if ! isint "${rport}"; then + log "err" "Port forwarding error: remote port is not an integer: ${rport}" "${debug}" + log "err" "Line: ${line}" "${debug}" + log "err" "" "${debug}" exit 1 fi - log "info" "Forwarding ${pfv_rhost}:${pfv_rport} to 127.0.0.1:${pfv_lport} inside this docker." + log "info" "Forwarding ${rhost}:${rport} to 127.0.0.1:${lport} inside this docker." "${debug}" done - - unset -v pfv_line - unset -v pfv_lport - unset -v pfv_rhost - unset -v pfv_rport fi - - unset -v pfv_env_varname } @@ -190,15 +177,15 @@ port_forward_validate() { # Sanity Checks ############################################################ -if ! command -v awk >/dev/null 2>&1; then - echo "awk not found, but required." +if ! command -v socat >/dev/null 2>&1; then + log "err" "socat not found, but required." "1" exit 1 fi -if ! command -v cut >/dev/null 2>&1; then - echo "cut not found, but required." +if ! command -v awk >/dev/null 2>&1; then + log "awk not found, but required." "1" exit 1 fi if ! command -v sed >/dev/null 2>&1; then - echo "sed not found, but required." + log "sed not found, but required." "1" exit 1 fi diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/34-supervisor.sh b/Dockerfiles/prod/data/docker-entrypoint.d/34-supervisor.sh new file mode 100755 index 0000000..8a66e32 --- /dev/null +++ b/Dockerfiles/prod/data/docker-entrypoint.d/34-supervisor.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + + +############################################################ +# Functions +############################################################ + +### +### Add service to supervisord +### +supervisor_add_service() { + local name="${1}" + local command="${2}" + local confd="${3}" + local debug="${4}" + local priority= + + if [ "${#}" -gt "4" ]; then + priority="${5}" + fi + + if [ ! -d "${confd}" ]; then + run "mkdir -p ${confd}" "${debug}" + fi + + log "info" "Enabling '${name}' to be started by supervisord" "${debug}" + # Add services + { + echo "[program:${name}]"; + echo "command = ${command}"; + + if [ -n "${priority}" ]; then + echo "priority = ${priority}"; + fi + + echo "autostart = true"; + echo "autorestart = true"; + + echo "stdout_logfile = /dev/stdout"; + echo "stdout_logfile_maxbytes = 0"; + echo "stdout_events_enabled = true"; + + echo "stderr_logfile = /dev/stderr"; + echo "stderr_logfile_maxbytes = 0"; + echo "stderr_events_enabled = true"; + } > "${confd}/${name}.conf" +} diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/34-custom-ini-files.sh b/Dockerfiles/prod/data/docker-entrypoint.d/35-custom-ini-files.sh similarity index 74% rename from Dockerfiles/prod/data/docker-entrypoint.d/34-custom-ini-files.sh rename to Dockerfiles/prod/data/docker-entrypoint.d/35-custom-ini-files.sh index 1470da9..54b4714 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.d/34-custom-ini-files.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.d/35-custom-ini-files.sh @@ -1,13 +1,8 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL - +#!/usr/bin/env bash set -e set -u +set -o pipefail ############################################################ @@ -18,11 +13,12 @@ set -u ### Copy *.ini files from source to destination with prefix ### copy_ini_files() { - ini_src="${1}" - ini_dst="${2}" + local ini_src="${1}" + local ini_dst="${2}" + local debug="${3}" if [ ! -d "${ini_src}" ]; then - run "mkdir -p ${ini_src}" + run "mkdir -p ${ini_src}" "${debug}" fi ini_files="$( find "${ini_src}" -type f -iname '*.ini' )" @@ -31,16 +27,10 @@ copy_ini_files() { ' for ini_f in ${ini_files}; do ini_name="$( basename "${ini_f}" )" - log "info" "PHP.ini: ${ini_name} -> ${ini_dst}/zzz-devilbox-${ini_name}" - run "cp ${ini_f} ${ini_dst}/devilbox-${ini_name}" + log "info" "PHP.ini: ${ini_name} -> ${ini_dst}/zzz-devilbox-${ini_name}" "${debug}" + run "cp ${ini_f} ${ini_dst}/zzz-devilbox-${ini_name}" "${debug}" done - run "find ${ini_dst} -type f -iname '*.ini' -exec chmod 0644 \"{}\" \;" - - unset -v ini_src - unset -v ini_dst - unset -v ini_files - unset -v ini_f - unset -v ini_name + run "find ${ini_dst} -type f -iname '*.ini' -exec chmod 0644 \"{}\" \;" "${debug}" } diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh b/Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh deleted file mode 100755 index 4ffa048..0000000 --- a/Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL - - -set -e -set -u - - - -############################################################ -# Functions -############################################################ - -### -### Add service to supervisord -### -supervisor_add_service() { - supervisor_name="${1}" - supervisor_command="${2}" - supervisor_confd="${3}" - supervisor_priority= - - if [ "${#}" -gt "3" ]; then - supervisor_priority="${4}" - fi - - if [ ! -d "${supervisor_confd}" ]; then - run "mkdir -p ${supervisor_confd}" - fi - - # Add services - { - echo "[program:${supervisor_name}]"; - echo "command = ${supervisor_command}"; - - if [ -n "${supervisor_priority}" ]; then - echo "priority = ${supervisor_priority}"; - fi - - echo "autostart = true"; - echo "autorestart = true"; - - echo "stdout_logfile = /dev/stdout"; - echo "stdout_logfile_maxbytes = 0"; - echo "stdout_events_enabled = true"; - - echo "stderr_logfile = /dev/stderr"; - echo "stderr_logfile_maxbytes = 0"; - echo "stderr_events_enabled = true"; - } > "${supervisor_confd}/${supervisor_name}.conf" - - unset -v supervisor_name - unset -v supervisor_command - unset -v supervisor_confd - unset -v supervisor_priority -} diff --git a/Dockerfiles/prod/data/docker-entrypoint.sh b/Dockerfiles/prod/data/docker-entrypoint.sh index c92028a..43a8e01 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.sh @@ -1,73 +1,78 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP +#!/usr/bin/env bash set -e set -u +set -p pipefail ### -### Variables +### Globals ### -PHP_INI_PATH="/usr/local/etc/php.ini" -FPM_ERROR_LOG_CFG="/usr/local/etc/php-fpm.conf" -FPM_ACCESS_LOG_CFG="/usr/local/etc/php-fpm.d/zzz-docker.conf" + +# The following global variables are available by our Dockerfile itself: +# MY_USER +# MY_GROUP +# MY_UID +# MY_GID + +# Path to scripts to source +CONFIG_DIR="/docker-entrypoint.d" + +# php.ini.d directory +PHP_INI_DIR="/usr/local/etc/php/conf.d" + +# This file holds error and access log definitions +FPM_CONF_LOGFILE="/usr/local/etc/php-fpm.d/logfiles.conf" + +# PHP-FPM log dir FPM_LOG_DIR="/var/log/php" -#PHP_CUST_MODULE_DIR="/etc/php-modules.d" - +# Custom ini dir (to be copied to actual ini dir) PHP_CUST_INI_DIR="/etc/php-custom.d" -PHP_REAL_INI_DIR="/usr/local/etc/php.d" +# Supervisord config directory SUPERVISOR_CONFD="/etc/supervisor/conf.d" ### ### Source libs ### -init="$( find /docker-entrypoint.d -name '*.sh' -type f | sort -u )" +init="$( find "${CONFIG_DIR}" -name '*.sh' -type f | sort -u )" for f in ${init}; do # shellcheck disable=SC1090 . "${f}" done -### -### Set Debug level -### -DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )" -log "info" "Debug level: ${DEBUG_LEVEL}" "${DEBUG_LEVEL}" - - - -############################################################# -## Sanity checks -############################################################# - -if ! command -v socat >/dev/null 2>&1; then - log "err" "socat not found, but required." "${DEBUG_LEVEL}" - exit 1 -fi - - ############################################################# ## Entry Point ############################################################# +### +### Set Debug level +### +DEBUG_LEVEL="$( env_get "DEBUG_ENTRYPOINT" "0" )" +log "info" "Debug level: ${DEBUG_LEVEL}" "${DEBUG_LEVEL}" + + ### ### Change uid/gid ### -set_uid "NEW_UID" -set_gid "NEW_GID" +set_uid "NEW_UID" "${MY_USER}" "/home/${MY_USER}" "${DEBUG_LEVEL}" +set_gid "NEW_GID" "${MY_GROUP}" "/home/${MY_USER}" "${DEBUG_LEVEL}" ### ### Set timezone ### -set_timezone "TIMEZONE" "${PHP_INI_PATH}" +set_timezone "TIMEZONE" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" + + +### +### Setup postfix +### +set_postfix "ENABLE_MAIL" "${MY_USER}" "${MY_GROUP}" "${DEBUG_LEVEL}" ### @@ -76,20 +81,16 @@ set_timezone "TIMEZONE" "${PHP_INI_PATH}" set_docker_logs \ "DOCKER_LOGS" \ "${FPM_LOG_DIR}" \ - "${FPM_ERROR_LOG_CFG}" \ - "${FPM_ACCESS_LOG_CFG}" - - -### -### Setup postfix -### -set_postfix "ENABLE_MAIL" + "${FPM_CONF_LOGFILE}" \ + "${MY_USER}" \ + "${MY_GROUP}" \ + "${DEBUG_LEVEL}" ### ### Validate socat port forwards ### -if ! port_forward_validate "FORWARD_PORTS_TO_LOCALHOST"; then +if ! port_forward_validate "FORWARD_PORTS_TO_LOCALHOST" "${DEBUG_LEVEL}"; then exit 1 fi @@ -101,7 +102,11 @@ for line in $( port_forward_get_lines "FORWARD_PORTS_TO_LOCALHOST" ); do lport="$( port_forward_get_lport "${line}" )" rhost="$( port_forward_get_rhost "${line}" )" rport="$( port_forward_get_rport "${line}" )" - supervisor_add_service "socat-${lport}-${rhost}-${rport}" "/usr/bin/socat tcp-listen:${lport},reuseaddr,fork tcp:${rhost}:${rport}" "${SUPERVISOR_CONFD}" + supervisor_add_service \ + "socat-${lport}-${rhost}-${rport}" \ + "/usr/bin/socat tcp-listen:${lport},reuseaddr,fork tcp:${rhost}:${rport}" \ + "${SUPERVISOR_CONFD}" \ + "${DEBUG_LEVEL}" done @@ -109,24 +114,25 @@ done ### Supervisor: rsyslogd & postfix ### if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then - supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${SUPERVISOR_CONFD}" "1" - supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${SUPERVISOR_CONFD}" + supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1" + supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" fi ### ### Supervisor: php-fpm ### -supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${SUPERVISOR_CONFD}" +supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" ### ### Copy custom *.ini files ### -copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_REAL_INI_DIR}" +copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" ### -### Start +### Startup ### +log "info" "Starting supervisord" "${DEBUG_LEVEL}" exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf diff --git a/build/ansible/DOCKERFILES/Dockerfile-base.j2 b/build/ansible/DOCKERFILES/Dockerfile-base.j2 index 969bd0a..7acd5c0 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-base.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-base.j2 @@ -46,7 +46,7 @@ RUN set -x \ COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh COPY ./data/docker-entrypoint.d /docker-entrypoint.d COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf -COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf +COPY ./data/php-fpm.d /usr/local/etc/php-fpm.d {% if debug %} From 6d35b06c45f373f390ddcec7eae2bd6fce45d0e1 Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 27 Feb 2018 23:38:09 +0100 Subject: [PATCH 15/35] Adjust prod Docker --- Dockerfiles/base/Dockerfile-5.4 | 2 +- Dockerfiles/base/Dockerfile-5.5 | 2 +- Dockerfiles/base/Dockerfile-5.6 | 2 +- Dockerfiles/base/Dockerfile-7.0 | 2 +- Dockerfiles/base/Dockerfile-7.1 | 2 +- Dockerfiles/base/Dockerfile-7.2 | 2 +- Dockerfiles/mods/Dockerfile-5.4 | 2 +- Dockerfiles/mods/Dockerfile-5.5 | 2 +- Dockerfiles/mods/Dockerfile-5.6 | 2 +- Dockerfiles/mods/Dockerfile-7.0 | 2 +- Dockerfiles/mods/Dockerfile-7.1 | 2 +- Dockerfiles/mods/Dockerfile-7.2 | 2 +- Dockerfiles/prod/Dockerfile-5.4 | 15 +- Dockerfiles/prod/Dockerfile-5.5 | 15 +- Dockerfiles/prod/Dockerfile-5.6 | 15 +- Dockerfiles/prod/Dockerfile-7.0 | 15 +- Dockerfiles/prod/Dockerfile-7.1 | 15 +- Dockerfiles/prod/Dockerfile-7.2 | 15 +- .../data/docker-entrypoint.d/30-timezone.sh | 7 +- .../data/docker-entrypoint.d/31-postfix.sh | 18 +- Dockerfiles/prod/data/docker-entrypoint.sh | 2 +- Dockerfiles/work/Dockerfile-5.4 | 120 ++++++++--- Dockerfiles/work/Dockerfile-5.5 | 126 ++++++++--- Dockerfiles/work/Dockerfile-5.6 | 126 ++++++++--- Dockerfiles/work/Dockerfile-7.0 | 126 ++++++++--- Dockerfiles/work/Dockerfile-7.1 | 126 ++++++++--- Dockerfiles/work/Dockerfile-7.2 | 126 ++++++++--- Dockerfiles/work/data/docker-entrypoint.sh | 104 +++++----- build/ansible/DOCKERFILES/Dockerfile-base.j2 | 2 +- build/ansible/DOCKERFILES/Dockerfile-mods.j2 | 2 +- build/ansible/DOCKERFILES/Dockerfile-prod.j2 | 15 +- build/ansible/DOCKERFILES/Dockerfile-work.j2 | 174 +++++++--------- build/ansible/group_vars/all.yml | 196 +++++++++++++++++- 33 files changed, 914 insertions(+), 470 deletions(-) diff --git a/Dockerfiles/base/Dockerfile-5.4 b/Dockerfiles/base/Dockerfile-5.4 index 78ba444..a8fd46e 100644 --- a/Dockerfiles/base/Dockerfile-5.4 +++ b/Dockerfiles/base/Dockerfile-5.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:5.4-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-5.5 b/Dockerfiles/base/Dockerfile-5.5 index c6907fb..7b44dbf 100644 --- a/Dockerfiles/base/Dockerfile-5.5 +++ b/Dockerfiles/base/Dockerfile-5.5 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:5.5-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-5.6 b/Dockerfiles/base/Dockerfile-5.6 index dfe0bcd..268618c 100644 --- a/Dockerfiles/base/Dockerfile-5.6 +++ b/Dockerfiles/base/Dockerfile-5.6 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:5.6-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-7.0 b/Dockerfiles/base/Dockerfile-7.0 index c0620fa..ca9c627 100644 --- a/Dockerfiles/base/Dockerfile-7.0 +++ b/Dockerfiles/base/Dockerfile-7.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:7.0-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-7.1 b/Dockerfiles/base/Dockerfile-7.1 index 6158367..564e633 100644 --- a/Dockerfiles/base/Dockerfile-7.1 +++ b/Dockerfiles/base/Dockerfile-7.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:7.1-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/base/Dockerfile-7.2 b/Dockerfiles/base/Dockerfile-7.2 index c4d39c5..3e71730 100644 --- a/Dockerfiles/base/Dockerfile-7.2 +++ b/Dockerfiles/base/Dockerfile-7.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:7.2-fpm MAINTAINER "cytopia" diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index d801d83..9686740 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.4-base MAINTAINER "cytopia" diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index 76d0a1c..51bdedf 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.5-base MAINTAINER "cytopia" diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 index 5509a6b..6396d22 100644 --- a/Dockerfiles/mods/Dockerfile-5.6 +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:5.6-base MAINTAINER "cytopia" diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 index 94b95ff..fa63b3a 100644 --- a/Dockerfiles/mods/Dockerfile-7.0 +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:7.0-base MAINTAINER "cytopia" diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 index fcde385..083f5d5 100644 --- a/Dockerfiles/mods/Dockerfile-7.1 +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:7.1-base MAINTAINER "cytopia" diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 index 09c9d3c..4be8132 100644 --- a/Dockerfiles/mods/Dockerfile-7.2 +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:7.2-base MAINTAINER "cytopia" diff --git a/Dockerfiles/prod/Dockerfile-5.4 b/Dockerfiles/prod/Dockerfile-5.4 index b9ea0ae..53bad65 100644 --- a/Dockerfiles/prod/Dockerfile-5.4 +++ b/Dockerfiles/prod/Dockerfile-5.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:5.4-mods MAINTAINER "cytopia" @@ -35,19 +35,6 @@ RUN set -x \ -### -### Configure -### -RUN set -x \ - && { \ - echo "[mail function]"; \ - echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ - echo ";mail.force_extra_parameters ="; \ - echo "mail.add_x_header = On"; \ - echo "mail.log = /var/log/php/mail.log"; \ - } > /usr/local/etc/php/conf.d/devilbox-mail.ini - - ### ### Verify ### diff --git a/Dockerfiles/prod/Dockerfile-5.5 b/Dockerfiles/prod/Dockerfile-5.5 index 6d046c9..530b615 100644 --- a/Dockerfiles/prod/Dockerfile-5.5 +++ b/Dockerfiles/prod/Dockerfile-5.5 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:5.5-mods MAINTAINER "cytopia" @@ -35,19 +35,6 @@ RUN set -x \ -### -### Configure -### -RUN set -x \ - && { \ - echo "[mail function]"; \ - echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ - echo ";mail.force_extra_parameters ="; \ - echo "mail.add_x_header = On"; \ - echo "mail.log = /var/log/php/mail.log"; \ - } > /usr/local/etc/php/conf.d/devilbox-mail.ini - - ### ### Verify ### diff --git a/Dockerfiles/prod/Dockerfile-5.6 b/Dockerfiles/prod/Dockerfile-5.6 index 0939ab3..e84ac60 100644 --- a/Dockerfiles/prod/Dockerfile-5.6 +++ b/Dockerfiles/prod/Dockerfile-5.6 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:5.6-mods MAINTAINER "cytopia" @@ -35,19 +35,6 @@ RUN set -x \ -### -### Configure -### -RUN set -x \ - && { \ - echo "[mail function]"; \ - echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ - echo ";mail.force_extra_parameters ="; \ - echo "mail.add_x_header = On"; \ - echo "mail.log = /var/log/php/mail.log"; \ - } > /usr/local/etc/php/conf.d/devilbox-mail.ini - - ### ### Verify ### diff --git a/Dockerfiles/prod/Dockerfile-7.0 b/Dockerfiles/prod/Dockerfile-7.0 index f588959..6992be6 100644 --- a/Dockerfiles/prod/Dockerfile-7.0 +++ b/Dockerfiles/prod/Dockerfile-7.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:7.0-mods MAINTAINER "cytopia" @@ -35,19 +35,6 @@ RUN set -x \ -### -### Configure -### -RUN set -x \ - && { \ - echo "[mail function]"; \ - echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ - echo ";mail.force_extra_parameters ="; \ - echo "mail.add_x_header = On"; \ - echo "mail.log = /var/log/php/mail.log"; \ - } > /usr/local/etc/php/conf.d/devilbox-mail.ini - - ### ### Verify ### diff --git a/Dockerfiles/prod/Dockerfile-7.1 b/Dockerfiles/prod/Dockerfile-7.1 index 552f057..e44ca40 100644 --- a/Dockerfiles/prod/Dockerfile-7.1 +++ b/Dockerfiles/prod/Dockerfile-7.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:7.1-mods MAINTAINER "cytopia" @@ -35,19 +35,6 @@ RUN set -x \ -### -### Configure -### -RUN set -x \ - && { \ - echo "[mail function]"; \ - echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ - echo ";mail.force_extra_parameters ="; \ - echo "mail.add_x_header = On"; \ - echo "mail.log = /var/log/php/mail.log"; \ - } > /usr/local/etc/php/conf.d/devilbox-mail.ini - - ### ### Verify ### diff --git a/Dockerfiles/prod/Dockerfile-7.2 b/Dockerfiles/prod/Dockerfile-7.2 index 0b14c07..40f6f2c 100644 --- a/Dockerfiles/prod/Dockerfile-7.2 +++ b/Dockerfiles/prod/Dockerfile-7.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:7.2-mods MAINTAINER "cytopia" @@ -35,19 +35,6 @@ RUN set -x \ -### -### Configure -### -RUN set -x \ - && { \ - echo "[mail function]"; \ - echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ - echo ";mail.force_extra_parameters ="; \ - echo "mail.add_x_header = On"; \ - echo "mail.log = /var/log/php/mail.log"; \ - } > /usr/local/etc/php/conf.d/devilbox-mail.ini - - ### ### Verify ### diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh b/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh index 03a03bb..ebc0632 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh @@ -14,9 +14,10 @@ set -o pipefail ### set_timezone() { local env_varname="${1}" - local php_conf_dir="${2}" + local php_ini_dir="${2}" local debug="${3}" local timezone= + local php_ini_file="${php_ini_dir}/devilbox-runtime-timezone.ini" if ! env_set "${env_varname}"; then log "info" "\$${env_varname} not set." "${debug}" @@ -25,7 +26,7 @@ set_timezone() { run "ln -sf /usr/share/zoneinfo/UTC /etc/localtime" "${debug}" # PHP Time log "info" "Setting PHP: timezone=UTC" "${debug}" - run "echo 'date.timezone = UTC' > ${php_conf_dir}/devilbox-runtime.ini" "${debug}" + run "echo 'date.timezone = UTC' > ${php_ini_file}" "${debug}" else timezone="$( env_get "${env_varname}" )" if [ -f "/usr/share/zoneinfo/${timezone}" ]; then @@ -34,7 +35,7 @@ set_timezone() { run "ln -sf /usr/share/zoneinfo/${timezone} /etc/localtime" "${debug}" # PHP Time log "info" "Setting PHP: timezone=${timezone}" "${debug}" - run "echo 'date.timezone = ${timezone}' > ${php_conf_dir}/devilbox-runtime.ini" "${debug}" + run "echo 'date.timezone = ${timezone}' > ${php_ini_file}" "${debug}" else log "err" "Invalid timezone for \$${env_varname}." "${debug}" log "err" "Timezone '${timezone}' does not exist." "${debug}" diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh b/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh index f4d2b18..10a21e0 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh @@ -16,18 +16,30 @@ set_postfix() { local env_varname="${1}" local username="${2}" local groupname="${3}" - local debug="${4}" + local php_ini_dir="${4}" + local debug="${5}" + local php_ini_file="${php_ini_dir}/devilbox-runtime-sendmail.ini" local catch_all= if ! env_set "${env_varname}"; then log "info" "\$${env_varname} not set." "${debug}" log "info" "Postfix will not be started." "${debug}" + echo "" > "${php_ini_file}" else catch_all="$( env_get "${env_varname}" )" if [ "${catch_all}" = "1" ]; then log "info" "Enabling postfix catch-all" "${debug}" + # Configure PHP + { + echo "[mail function]"; + echo "sendmail_path = $( which sendmail ) -t -i"; + echo ";mail.force_extra_parameters ="; + echo "mail.add_x_header = On"; + echo "mail.log = /var/log/php/mail.log"; + } > "${php_ini_file}" + # Add Mail dir/file if it does not exist if [ ! -d "/var/mail" ]; then run "mkdir /var/mail" "${debug}" @@ -64,6 +76,10 @@ set_postfix() { # Sanity Checks ############################################################ +if ! command -v sendmail >/dev/null 2>&1; then + log "err" "sendmail not found, but required." "1" + exit 1 +fi if ! command -v postconf >/dev/null 2>&1; then log "err" "postconf not found, but required." "1" exit 1 diff --git a/Dockerfiles/prod/data/docker-entrypoint.sh b/Dockerfiles/prod/data/docker-entrypoint.sh index 43a8e01..e4adcae 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.sh @@ -72,7 +72,7 @@ set_timezone "TIMEZONE" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" ### ### Setup postfix ### -set_postfix "ENABLE_MAIL" "${MY_USER}" "${MY_GROUP}" "${DEBUG_LEVEL}" +set_postfix "ENABLE_MAIL" "${MY_USER}" "${MY_GROUP}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" ### diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index b22dc6d..65be4d3 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:5.4-prod MAINTAINER "cytopia" @@ -15,7 +15,7 @@ LABEL \ ### -### Envs (Already set in parent container) +### Envs ### ENV BASH_PROFILE=".bashrc" @@ -23,9 +23,20 @@ ENV BASH_PROFILE=".bashrc" ### ### Install Tools ### - -# System dev tools RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + 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 wily 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 jessie 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/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -49,14 +60,15 @@ RUN set -x \ less \ libc-dev \ make \ -# mongo-tools \ - mongodb-clients \ + mongodb-org-shell \ + mongodb-org-tools \ moreutils \ mysql-client \ nano \ net-tools \ netcat \ -# postgresql-client \ + nodejs \ + postgresql-client \ python-pip \ rubygems \ ruby-dev \ @@ -73,33 +85,64 @@ RUN set -x \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* -## Node / NPM -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ -# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ -# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ -# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ -# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ -# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ -# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ -# && npm --version | grep -E '[.0-9]+' \ -# && node --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.config -# -## Composer -#RUN set -x \ -# && curl -sS https://getcomposer.org/installer | php \ -# && mv composer.phar /usr/local/bin/composer \ -# && composer self-update -## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /root/.composer -# + +# composer +RUN set -x true \ + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ + && true +# drush +RUN set -x true \ + && 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) \ + \ + && 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' \ +&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +&& rm -rf /usr/local/src/drush/.git \ +&& rm -rf /usr/local/src/drush/docs \ +&& rm -rf /usr/local/src/drush/examples \ +&& rm -rf /usr/local/src/drush/misc \ +&& rm -rf /usr/local/src/drush/tests \ +&& rm -rf /home/${MY_USER}/.composer \ + \ + && true +# wpcli +RUN set -x true \ + && 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 \ + && true +# symfony +RUN set -x true \ + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ + && true +# laravel +RUN set -x true \ + && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ +&& cd /usr/local/src/laravel-installer \ +&& git checkout v1.3.7 \ + \ + && 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' \ +&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ + \ + && true +# phalcon +RUN set -x true \ + && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +&& cd /usr/local/src/phalcon-devtools \ +&& git checkout v2.0.9 \ + \ + && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \ +&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +&& cd / \ +&& rm -rf /usr/local/src/phalcon-devtools/.git \ + \ + && true + ## Drush #RUN set -x \ # && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ @@ -278,6 +321,15 @@ RUN set -x \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi +RUN set -x \ + && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ + && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && wp --allow-root --version | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && phalcon commands | grep -E '[.0-9]+' \ + && true + ### ### Copy files diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index f9dc427..d3f8514 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:5.5-prod MAINTAINER "cytopia" @@ -15,7 +15,7 @@ LABEL \ ### -### Envs (Already set in parent container) +### Envs ### ENV BASH_PROFILE=".bashrc" @@ -23,9 +23,20 @@ ENV BASH_PROFILE=".bashrc" ### ### Install Tools ### - -# System dev tools RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + 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 wily 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 jessie 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/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -49,14 +60,15 @@ RUN set -x \ less \ libc-dev \ make \ -# mongo-tools \ - mongodb-clients \ + mongodb-org-shell \ + mongodb-org-tools \ moreutils \ mysql-client \ nano \ net-tools \ netcat \ -# postgresql-client \ + nodejs \ + postgresql-client \ python-pip \ rubygems \ ruby-dev \ @@ -73,33 +85,69 @@ RUN set -x \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* -## Node / NPM -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ -# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ -# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ -# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ -# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ -# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ -# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ -# && npm --version | grep -E '[.0-9]+' \ -# && node --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.config -# -## Composer -#RUN set -x \ -# && curl -sS https://getcomposer.org/installer | php \ -# && mv composer.phar /usr/local/bin/composer \ -# && composer self-update -## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /root/.composer -# + +# composer +RUN set -x true \ + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ + && true +# drush +RUN set -x true \ + && 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) \ + \ + && 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' \ +&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +&& rm -rf /usr/local/src/drush/.git \ +&& rm -rf /usr/local/src/drush/docs \ +&& rm -rf /usr/local/src/drush/examples \ +&& rm -rf /usr/local/src/drush/misc \ +&& rm -rf /usr/local/src/drush/tests \ +&& rm -rf /home/${MY_USER}/.composer \ + \ + && true +# drupalconsole +RUN set -x true \ + && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ + && chmod +x /usr/local/bin/drupal \ + && true +# wpcli +RUN set -x true \ + && 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 \ + && true +# symfony +RUN set -x true \ + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ + && true +# laravel +RUN set -x true \ + && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ +&& cd /usr/local/src/laravel-installer \ +&& git checkout v2.0.0 \ + \ + && 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' \ +&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ + \ + && true +# phalcon +RUN set -x true \ + && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +&& cd /usr/local/src/phalcon-devtools \ +&& git checkout $(git describe --abbrev=0 --tags) \ + \ + && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \ +&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +&& cd / \ +&& rm -rf /usr/local/src/phalcon-devtools/.git \ + \ + && true + ## Drush #RUN set -x \ # && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ @@ -278,6 +326,16 @@ RUN set -x \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi +RUN set -x \ + && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ + && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && phalcon commands | grep -E '[.0-9]+' \ + && true + ### ### Copy files diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index ccebe55..63561a6 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:5.6-prod MAINTAINER "cytopia" @@ -15,7 +15,7 @@ LABEL \ ### -### Envs (Already set in parent container) +### Envs ### ENV BASH_PROFILE=".bashrc" @@ -23,9 +23,20 @@ ENV BASH_PROFILE=".bashrc" ### ### Install Tools ### - -# System dev tools RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + 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 wily 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 jessie 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/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -49,14 +60,15 @@ RUN set -x \ less \ libc-dev \ make \ -# mongo-tools \ - mongodb-clients \ + mongodb-org-shell \ + mongodb-org-tools \ moreutils \ mysql-client \ nano \ net-tools \ netcat \ -# postgresql-client \ + nodejs \ + postgresql-client \ python-pip \ rubygems \ ruby-dev \ @@ -73,33 +85,69 @@ RUN set -x \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* -## Node / NPM -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ -# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ -# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ -# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ -# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ -# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ -# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ -# && npm --version | grep -E '[.0-9]+' \ -# && node --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.config -# -## Composer -#RUN set -x \ -# && curl -sS https://getcomposer.org/installer | php \ -# && mv composer.phar /usr/local/bin/composer \ -# && composer self-update -## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /root/.composer -# + +# composer +RUN set -x true \ + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ + && true +# drush +RUN set -x true \ + && 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 | tail -1 | sed 's/^.*tags\///g') \ + \ + && 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' \ +&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +&& rm -rf /usr/local/src/drush/.git \ +&& rm -rf /usr/local/src/drush/docs \ +&& rm -rf /usr/local/src/drush/examples \ +&& rm -rf /usr/local/src/drush/misc \ +&& rm -rf /usr/local/src/drush/tests \ +&& rm -rf /home/${MY_USER}/.composer \ + \ + && true +# drupalconsole +RUN set -x true \ + && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ + && chmod +x /usr/local/bin/drupal \ + && true +# wpcli +RUN set -x true \ + && 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 \ + && true +# symfony +RUN set -x true \ + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ + && true +# laravel +RUN set -x true \ + && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ +&& cd /usr/local/src/laravel-installer \ +&& git checkout v2.0.0 \ + \ + && 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' \ +&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ + \ + && true +# phalcon +RUN set -x true \ + && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +&& cd /usr/local/src/phalcon-devtools \ +&& git checkout $(git describe --abbrev=0 --tags) \ + \ + && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \ +&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +&& cd / \ +&& rm -rf /usr/local/src/phalcon-devtools/.git \ + \ + && true + ## Drush #RUN set -x \ # && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ @@ -278,6 +326,16 @@ RUN set -x \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi +RUN set -x \ + && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ + && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && phalcon commands | grep -E '[.0-9]+' \ + && true + ### ### Copy files diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index 168d42d..c3919ab 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:7.0-prod MAINTAINER "cytopia" @@ -15,7 +15,7 @@ LABEL \ ### -### Envs (Already set in parent container) +### Envs ### ENV BASH_PROFILE=".bashrc" @@ -23,9 +23,20 @@ ENV BASH_PROFILE=".bashrc" ### ### Install Tools ### - -# System dev tools RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + 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 wily 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 jessie 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/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -49,14 +60,15 @@ RUN set -x \ less \ libc-dev \ make \ -# mongo-tools \ - mongodb-clients \ + mongodb-org-shell \ + mongodb-org-tools \ moreutils \ mysql-client \ nano \ net-tools \ netcat \ -# postgresql-client \ + nodejs \ + postgresql-client \ python-pip \ rubygems \ ruby-dev \ @@ -73,33 +85,69 @@ RUN set -x \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* -## Node / NPM -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ -# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ -# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ -# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ -# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ -# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ -# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ -# && npm --version | grep -E '[.0-9]+' \ -# && node --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.config -# -## Composer -#RUN set -x \ -# && curl -sS https://getcomposer.org/installer | php \ -# && mv composer.phar /usr/local/bin/composer \ -# && composer self-update -## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /root/.composer -# + +# composer +RUN set -x true \ + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ + && true +# drush +RUN set -x true \ + && 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 | tail -1 | sed 's/^.*tags\///g') \ + \ + && 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' \ +&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +&& rm -rf /usr/local/src/drush/.git \ +&& rm -rf /usr/local/src/drush/docs \ +&& rm -rf /usr/local/src/drush/examples \ +&& rm -rf /usr/local/src/drush/misc \ +&& rm -rf /usr/local/src/drush/tests \ +&& rm -rf /home/${MY_USER}/.composer \ + \ + && true +# drupalconsole +RUN set -x true \ + && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ + && chmod +x /usr/local/bin/drupal \ + && true +# wpcli +RUN set -x true \ + && 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 \ + && true +# symfony +RUN set -x true \ + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ + && true +# laravel +RUN set -x true \ + && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ +&& cd /usr/local/src/laravel-installer \ +&& git checkout v2.0.0 \ + \ + && 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' \ +&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ + \ + && true +# phalcon +RUN set -x true \ + && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +&& cd /usr/local/src/phalcon-devtools \ +&& git checkout $(git describe --abbrev=0 --tags) \ + \ + && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \ +&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +&& cd / \ +&& rm -rf /usr/local/src/phalcon-devtools/.git \ + \ + && true + ## Drush #RUN set -x \ # && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ @@ -278,6 +326,16 @@ RUN set -x \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi +RUN set -x \ + && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ + && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && phalcon commands | grep -E '[.0-9]+' \ + && true + ### ### Copy files diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index c361f15..86a59ca 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:7.1-prod MAINTAINER "cytopia" @@ -15,7 +15,7 @@ LABEL \ ### -### Envs (Already set in parent container) +### Envs ### ENV BASH_PROFILE=".bashrc" @@ -23,9 +23,20 @@ ENV BASH_PROFILE=".bashrc" ### ### Install Tools ### - -# System dev tools RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + 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 wily 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 jessie 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/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -49,14 +60,15 @@ RUN set -x \ less \ libc-dev \ make \ -# mongo-tools \ - mongodb-clients \ + mongodb-org-shell \ + mongodb-org-tools \ moreutils \ mysql-client \ nano \ net-tools \ netcat \ -# postgresql-client \ + nodejs \ + postgresql-client \ python-pip \ rubygems \ ruby-dev \ @@ -73,33 +85,69 @@ RUN set -x \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* -## Node / NPM -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ -# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ -# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ -# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ -# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ -# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ -# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ -# && npm --version | grep -E '[.0-9]+' \ -# && node --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.config -# -## Composer -#RUN set -x \ -# && curl -sS https://getcomposer.org/installer | php \ -# && mv composer.phar /usr/local/bin/composer \ -# && composer self-update -## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /root/.composer -# + +# composer +RUN set -x true \ + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ + && true +# drush +RUN set -x true \ + && 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 | tail -1 | sed 's/^.*tags\///g') \ + \ + && 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' \ +&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +&& rm -rf /usr/local/src/drush/.git \ +&& rm -rf /usr/local/src/drush/docs \ +&& rm -rf /usr/local/src/drush/examples \ +&& rm -rf /usr/local/src/drush/misc \ +&& rm -rf /usr/local/src/drush/tests \ +&& rm -rf /home/${MY_USER}/.composer \ + \ + && true +# drupalconsole +RUN set -x true \ + && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ + && chmod +x /usr/local/bin/drupal \ + && true +# wpcli +RUN set -x true \ + && 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 \ + && true +# symfony +RUN set -x true \ + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ + && true +# laravel +RUN set -x true \ + && 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' \ +&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ + \ + && true +# phalcon +RUN set -x true \ + && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +&& cd /usr/local/src/phalcon-devtools \ +&& git checkout $(git describe --abbrev=0 --tags) \ + \ + && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \ +&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +&& cd / \ +&& rm -rf /usr/local/src/phalcon-devtools/.git \ + \ + && true + ## Drush #RUN set -x \ # && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ @@ -278,6 +326,16 @@ RUN set -x \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi +RUN set -x \ + && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ + && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && phalcon commands | grep -E '[.0-9]+' \ + && true + ### ### Copy files diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index e66edae..7255450 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:7.2-prod MAINTAINER "cytopia" @@ -15,7 +15,7 @@ LABEL \ ### -### Envs (Already set in parent container) +### Envs ### ENV BASH_PROFILE=".bashrc" @@ -23,9 +23,20 @@ ENV BASH_PROFILE=".bashrc" ### ### Install Tools ### - -# System dev tools RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + 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 \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -49,14 +60,15 @@ RUN set -x \ less \ libc-dev \ make \ -# mongo-tools \ - mongodb-clients \ + mongodb-org-shell \ + mongodb-org-tools \ moreutils \ mysql-client \ nano \ net-tools \ netcat \ -# postgresql-client \ + nodejs \ + postgresql-client \ python-pip \ rubygems \ ruby-dev \ @@ -73,33 +85,69 @@ RUN set -x \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* -## Node / NPM -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ -# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ -# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ -# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ -# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ -# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ -# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ -# && npm --version | grep -E '[.0-9]+' \ -# && node --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.config -# -## Composer -#RUN set -x \ -# && curl -sS https://getcomposer.org/installer | php \ -# && mv composer.phar /usr/local/bin/composer \ -# && composer self-update -## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /root/.composer -# + +# composer +RUN set -x true \ + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ + && true +# drush +RUN set -x true \ + && 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 | tail -1 | sed 's/^.*tags\///g') \ + \ + && 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' \ +&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +&& rm -rf /usr/local/src/drush/.git \ +&& rm -rf /usr/local/src/drush/docs \ +&& rm -rf /usr/local/src/drush/examples \ +&& rm -rf /usr/local/src/drush/misc \ +&& rm -rf /usr/local/src/drush/tests \ +&& rm -rf /home/${MY_USER}/.composer \ + \ + && true +# drupalconsole +RUN set -x true \ + && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ + && chmod +x /usr/local/bin/drupal \ + && true +# wpcli +RUN set -x true \ + && 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 \ + && true +# symfony +RUN set -x true \ + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ + && true +# laravel +RUN set -x true \ + && 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' \ +&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ +&& rm -rf /usr/local/src/laravel-installer/laravel/.git \ + \ + && true +# phalcon +RUN set -x true \ + && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +&& cd /usr/local/src/phalcon-devtools \ +&& git checkout $(git describe --abbrev=0 --tags) \ + \ + && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \ +&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +&& cd / \ +&& rm -rf /usr/local/src/phalcon-devtools/.git \ + \ + && true + ## Drush #RUN set -x \ # && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ @@ -278,6 +326,16 @@ RUN set -x \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi +RUN set -x \ + && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ + && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && phalcon commands | grep -E '[.0-9]+' \ + && true + ### ### Copy files diff --git a/Dockerfiles/work/data/docker-entrypoint.sh b/Dockerfiles/work/data/docker-entrypoint.sh index c096807..d286146 100755 --- a/Dockerfiles/work/data/docker-entrypoint.sh +++ b/Dockerfiles/work/data/docker-entrypoint.sh @@ -1,73 +1,78 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP +#!/usr/bin/env bash set -e set -u +set -p pipefail ### -### Variables +### Globals ### -PHP_INI_PATH="/usr/local/etc/php.ini" -FPM_ERROR_LOG_CFG="/usr/local/etc/php-fpm.conf" -FPM_ACCESS_LOG_CFG="/usr/local/etc/php-fpm.d/zzz-docker.conf" + +# The following global variables are available by our Dockerfile itself: +# MY_USER +# MY_GROUP +# MY_UID +# MY_GID + +# Path to scripts to source +CONFIG_DIR="/docker-entrypoint.d" + +# php.ini.d directory +PHP_INI_DIR="/usr/local/etc/php/conf.d" + +# This file holds error and access log definitions +FPM_CONF_LOGFILE="/usr/local/etc/php-fpm.d/logfiles.conf" + +# PHP-FPM log dir FPM_LOG_DIR="/var/log/php" -#PHP_CUST_MODULE_DIR="/etc/php-modules.d" - +# Custom ini dir (to be copied to actual ini dir) PHP_CUST_INI_DIR="/etc/php-custom.d" -PHP_REAL_INI_DIR="/usr/local/etc/php.d" +# Supervisord config directory SUPERVISOR_CONFD="/etc/supervisor/conf.d" ### ### Source libs ### -init="$( find /docker-entrypoint.d -name '*.sh' -type f | sort -u )" +init="$( find "${CONFIG_DIR}" -name '*.sh' -type f | sort -u )" for f in ${init}; do # shellcheck disable=SC1090 . "${f}" done -### -### Set Debug level -### -DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )" -log "info" "Debug level: ${DEBUG_LEVEL}" "${DEBUG_LEVEL}" - - - -############################################################# -## Sanity checks -############################################################# - -if ! command -v socat >/dev/null 2>&1; then - log "err" "socat not found, but required." "${DEBUG_LEVEL}" - exit 1 -fi - - ############################################################# ## Entry Point ############################################################# +### +### Set Debug level +### +DEBUG_LEVEL="$( env_get "DEBUG_ENTRYPOINT" "0" )" +log "info" "Debug level: ${DEBUG_LEVEL}" "${DEBUG_LEVEL}" + + ### ### Change uid/gid ### -set_uid "NEW_UID" -set_gid "NEW_GID" +set_uid "NEW_UID" "${MY_USER}" "/home/${MY_USER}" "${DEBUG_LEVEL}" +set_gid "NEW_GID" "${MY_GROUP}" "/home/${MY_USER}" "${DEBUG_LEVEL}" ### ### Set timezone ### -set_timezone "TIMEZONE" "${PHP_INI_PATH}" +set_timezone "TIMEZONE" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" + + +### +### Setup postfix +### +set_postfix "ENABLE_MAIL" "${MY_USER}" "${MY_GROUP}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" ### @@ -76,20 +81,16 @@ set_timezone "TIMEZONE" "${PHP_INI_PATH}" set_docker_logs \ "DOCKER_LOGS" \ "${FPM_LOG_DIR}" \ - "${FPM_ERROR_LOG_CFG}" \ - "${FPM_ACCESS_LOG_CFG}" - - -### -### Setup postfix -### -set_postfix "ENABLE_MAIL" + "${FPM_CONF_LOGFILE}" \ + "${MY_USER}" \ + "${MY_GROUP}" \ + "${DEBUG_LEVEL}" ### ### Validate socat port forwards ### -if ! port_forward_validate "FORWARD_PORTS_TO_LOCALHOST"; then +if ! port_forward_validate "FORWARD_PORTS_TO_LOCALHOST" "${DEBUG_LEVEL}"; then exit 1 fi @@ -101,7 +102,11 @@ for line in $( port_forward_get_lines "FORWARD_PORTS_TO_LOCALHOST" ); do lport="$( port_forward_get_lport "${line}" )" rhost="$( port_forward_get_rhost "${line}" )" rport="$( port_forward_get_rport "${line}" )" - supervisor_add_service "socat-${lport}-${rhost}-${rport}" "/usr/bin/socat tcp-listen:${lport},reuseaddr,fork tcp:${rhost}:${rport}" "${SUPERVISOR_CONFD}" + supervisor_add_service \ + "socat-${lport}-${rhost}-${rport}" \ + "/usr/bin/socat tcp-listen:${lport},reuseaddr,fork tcp:${rhost}:${rport}" \ + "${SUPERVISOR_CONFD}" \ + "${DEBUG_LEVEL}" done @@ -109,21 +114,21 @@ done ### Supervisor: rsyslogd & postfix ### if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then - supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${SUPERVISOR_CONFD}" "1" - supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${SUPERVISOR_CONFD}" + supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1" + supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" fi ### ### Supervisor: php-fpm ### -supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${SUPERVISOR_CONFD}" +supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" ### ### Copy custom *.ini files ### -copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_REAL_INI_DIR}" +copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" ### @@ -134,6 +139,7 @@ set_mds_settings "MYSQL_BACKUP_USER" "MYSQL_BACKUP_PASS" "MYSQL_BACKUP_HOST" ### -### Start +### Startup ### +log "info" "Starting supervisord" "${DEBUG_LEVEL}" exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf diff --git a/build/ansible/DOCKERFILES/Dockerfile-base.j2 b/build/ansible/DOCKERFILES/Dockerfile-base.j2 index 7acd5c0..b672abc 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-base.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-base.j2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. FROM php:{{ php_version }}-fpm MAINTAINER "cytopia" diff --git a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 index 7fdccb8..46383db 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. FROM devilbox/php-fpm:{{ php_version }}-base MAINTAINER "cytopia" diff --git a/build/ansible/DOCKERFILES/Dockerfile-prod.j2 b/build/ansible/DOCKERFILES/Dockerfile-prod.j2 index df75196..1015382 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-prod.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-prod.j2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. FROM devilbox/php-fpm:{{ php_version }}-mods MAINTAINER "cytopia" @@ -35,19 +35,6 @@ RUN set -x \ -### -### Configure -### -RUN set -x \ - && { \ - echo "[mail function]"; \ - echo "sendmail_path = /usr/sbin/sendmail -t -i"; \ - echo ";mail.force_extra_parameters ="; \ - echo "mail.add_x_header = On"; \ - echo "mail.log = /var/log/php/mail.log"; \ - } > /usr/local/etc/php/conf.d/devilbox-mail.ini - - {% if debug %} ### ### Verify diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 index 67e8589..b9787be 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-work.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. FROM devilbox/php-fpm:{{ php_version }}-prod MAINTAINER "cytopia" @@ -15,7 +15,7 @@ LABEL \ ### -### Envs (Already set in parent container) +### Envs ### ENV BASH_PROFILE=".bashrc" @@ -23,9 +23,37 @@ ENV BASH_PROFILE=".bashrc" ### ### Install Tools ### - -# System dev tools RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + dirmngr \ + gnupg \ +{% for repo in apt_repositories_enabled %} +{# Not disabled #} +{% if ('disabled' not in apt_repositories_available[repo]) or (php_version not in apt_repositories_available[repo]['disabled']) %} +{# Version specific pre-command available? #} +{% if php_version in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo][php_version] %} + && {{ 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'] %} + && {{ apt_repositories_available[repo]['all']['pre'] }} \ +{% endif %} +{# 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'] }} \ +{# 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'] }} \ +{% endif %} +{# 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 \ +{# Generic repository available? #} +{% else %} + && echo "{{ apt_repositories_available[repo]['all']['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \ +{% endif %} +{% endif %} +{% endfor %} && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -49,14 +77,15 @@ RUN set -x \ less \ libc-dev \ make \ -# mongo-tools \ - mongodb-clients \ + mongodb-org-shell \ + mongodb-org-tools \ moreutils \ mysql-client \ nano \ net-tools \ netcat \ -# postgresql-client \ + nodejs \ + postgresql-client \ python-pip \ rubygems \ ruby-dev \ @@ -73,97 +102,37 @@ RUN set -x \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* -## Node / NPM -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ -# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ -# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ -# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ -# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ -# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ -# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ -# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ -# && npm --version | grep -E '[.0-9]+' \ -# && node --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.config -# -## Composer -#RUN set -x \ -# && curl -sS https://getcomposer.org/installer | php \ -# && mv composer.phar /usr/local/bin/composer \ -# && composer self-update -## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /root/.composer -# -## Drush -#RUN set -x \ -# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ -# && mkdir -p /usr/local/src \ -# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ -# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ -# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ -# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ -# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ -# && drush --version | grep -E '[.0-9]+' \ -# && rm -rf /usr/local/src/drush/.git \ -# && rm -rf /usr/local/src/drush/docs \ -# && rm -rf /usr/local/src/drush/examples \ -# && rm -rf /usr/local/src/drush/misc \ -# && rm -rf /usr/local/src/drush/tests \ -# && rm -rf /root/.drush \ -# && rm -rf /home/${MY_USER}/.composer -# -## Drupal Console -#RUN set -x \ -# && curl https://drupalconsole.com/installer -L -o drupal.phar \ -# && mv drupal.phar /usr/local/bin/drupal \ -# && chmod +x /usr/local/bin/drupal -## && drupal --version | grep -E 'version\s*[.0-9]' -# -## WP-CLI -#RUN set -x \ -# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ -# && mv wp-cli.phar /usr/local/bin/wp \ -# && chmod +x /usr/local/bin/wp \ -# && wp cli update \ -# && wp --allow-root --version | grep -E '[.0-9]+' -# -## Symfony CLI -#RUN set -x \ -# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ -# && chmod +x /usr/local/bin/symfony \ -# && symfony --version | grep -E 'version\s*[.0-9]+' -# -## Laravel CLI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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' \ -# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ -# && rm -rf /usr/local/src/laravel-installer/laravel/.git -## && laravel --version | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /home/${MY_USER}/.composer -# -## Phalcon DevTools -##RUN set -x \ -## && mkdir -p /usr/local/src \ -## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ -## && cd /usr/local/src/phalcon-devtools \ -## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ -## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ -## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ -## && cd / \ -## && rm -rf /usr/local/src/phalcon-devtools/.git \ -## && phalcon commands | grep -E '[.0-9]+' -# + +{% for tool in software_enabled %} +{# Not disabled #} +{% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %} +# {{ tool }} +RUN set -x true \ +{# Version specific pre-command available? #} +{% if php_version in software_available[tool] and 'pre' in software_available[tool][php_version] %} + && {{ software_available[tool][php_version]['pre'] }} \ +{# Generic pre-command available? #} +{% elif 'all' in software_available[tool] and 'pre' in software_available[tool]['all'] %} + && {{ software_available[tool]['all']['pre'] }} \ +{% endif %} +{# Version specific command available? #} +{% if php_version in software_available[tool] and 'command' in software_available[tool][php_version] %} + && {{ software_available[tool][php_version]['command'] }} \ +{# Generic command available? #} +{% else %} + && {{ software_available[tool]['all']['command'] }} \ +{% endif %} +{# Version specific post-command available? #} +{% if php_version in software_available[tool] and 'post' in software_available[tool][php_version] %} + && {{ software_available[tool][php_version]['post'] }} \ +{# Generic post-command available? #} +{% elif 'all' in software_available[tool] and 'post' in software_available[tool]['all'] %} + && {{ software_available[tool]['all']['post'] }} \ +{% endif %} + && true +{% endif %} +{% endfor %} + ## Mysqldump-secure #RUN set -x \ # && mkdir -p /usr/local/src \ @@ -279,6 +248,15 @@ RUN set -x \ && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi +RUN set -x \ +{% for tool in software_enabled %} +{# Not disabled #} +{% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %} + && {{ software_available[tool]['check'] }} \ +{% endif %} +{% endfor %} + && true + {% endif %} ### diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index 9a1c9b5..dec8e83 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -27,8 +27,201 @@ php_all_versions: - 7.2 -php_conf_dir: /usr/local/etc/php.d +################################################################################ +# Defines for Dockerfile "work" +################################################################################ + + +### +### Apt repositories to actually enable +### +apt_repositories_enabled: + - backports + - git + - mongo + - node + - pgsql + + +### +### Software to actually install +### +software_enabled: + - composer + - drush + - drupalconsole + - wpcli + - symfony + - laravel + - phalcon + + + + +### +### All available extra repositories +### +# all: is generic version of defines +# 7.2: is specific version of defines +# disabled: [optional] Array of PHP versions for which to disable this module +# +# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4: +# deb: Deb line to add to sources list +# key: [optional] Key id to add for repository +# pre: [optional] Run custom command to add gpg key for repository +# +apt_repositories_available: + backports: + all: + deb: deb http://ftp.debian.org/debian jessie-backports main + git: + disabled: [] + 7.2: + deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main + all: + deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main + key: A1715D88E1DF1F24 + mongo: + #disabled: [7.2] + all: + deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main + key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 + node: + disabled: [] + 7.2: + deb: deb http://deb.nodesource.com/node_8.x stretch main + all: + 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 - + pgsql: + #disabled: [7.2] + 7.2: + deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main + all: + 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 - + + +### +### All available software +### +# all: is generic version of defines +# 7.2: is specific version of defines +# disabled: [optional] Array of PHP versions for which to disable this module +# +# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4: +# pre: [optional] Run command before 'command:' statement +# command: Command to execute +# pre: [optional] Run command after 'command:' statement +# +software_available: + composer: + check: composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer + all: + command: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + drush: + check: drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush + 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) \ + 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) \ + all: + 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 | tail -1 | sed 's/^.*tags\///g') \ + command: | + 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' \ + && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ + && rm -rf /usr/local/src/drush/.git \ + && rm -rf /usr/local/src/drush/docs \ + && rm -rf /usr/local/src/drush/examples \ + && rm -rf /usr/local/src/drush/misc \ + && rm -rf /usr/local/src/drush/tests \ + && rm -rf /home/${MY_USER}/.composer \ + drupalconsole: + disabled: [5.4] + check: drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' + all: + command: curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal + post: chmod +x /usr/local/bin/drupal + laravel: + check: laravel --version | grep -E '(Installer|version)\s*[.0-9]+' + 7.0: + pre: | + git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ + && cd /usr/local/src/laravel-installer \ + && git checkout v2.0.0 \ + 5.6: + pre: | + git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ + && cd /usr/local/src/laravel-installer \ + && git checkout v2.0.0 \ + 5.5: + pre: | + git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ + && cd /usr/local/src/laravel-installer \ + && git checkout v2.0.0 \ + 5.4: + pre: | + git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ + && cd /usr/local/src/laravel-installer \ + && git checkout v1.3.7 \ + all: + pre: | + 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) \ + command: | + 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' \ + && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ + && rm -rf /usr/local/src/laravel-installer/laravel/.git \ + phalcon: + check: phalcon commands | grep -E '[.0-9]+' + 5.4: + pre: | + git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ + && cd /usr/local/src/phalcon-devtools \ + && git checkout v2.0.9 \ + all: + pre: | + git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ + && cd /usr/local/src/phalcon-devtools \ + && git checkout $(git describe --abbrev=0 --tags) \ + command: | + chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \ + && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ + && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ + && cd / \ + && rm -rf /usr/local/src/phalcon-devtools/.git \ + symfony: + check: symfony --version | grep -E 'version\s*[.0-9]+' + all: + command: curl https://symfony.com/installer -L -o /usr/local/bin/symfony + post: chmod +x /usr/local/bin/symfony + wpcli: + check: wp --allow-root --version | grep -E '[.0-9]+' + all: + command: curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp + post: chmod +x /usr/local/bin/wp + + + + + + +################################################################################ +# Defines for Dockerfile "mods" +################################################################################ ### ### Extensions to actually enable @@ -120,7 +313,6 @@ extensions_enabled: ### ### All available php modules ### - # all: is generic version of defines # 7.2: is specific version of defines # disabled: [optional] Array of PHP versions for which to disable this module From 74cd5778bb3ba3edf0f017f41c0b80798171b9ed Mon Sep 17 00:00:00 2001 From: cytopia Date: Tue, 27 Feb 2018 23:47:13 +0100 Subject: [PATCH 16/35] Sync Dockerfiles with Builder --- Dockerfiles/work/Dockerfile-5.4 | 64 --------------------------------- Dockerfiles/work/Dockerfile-5.5 | 64 --------------------------------- Dockerfiles/work/Dockerfile-5.6 | 64 --------------------------------- Dockerfiles/work/Dockerfile-7.0 | 64 --------------------------------- Dockerfiles/work/Dockerfile-7.1 | 64 --------------------------------- Dockerfiles/work/Dockerfile-7.2 | 64 --------------------------------- 6 files changed, 384 deletions(-) diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index 65be4d3..5007fb6 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -143,70 +143,6 @@ RUN set -x true \ \ && true -## Drush -#RUN set -x \ -# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ -# && mkdir -p /usr/local/src \ -# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ -# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ -# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ -# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ -# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ -# && drush --version | grep -E '[.0-9]+' \ -# && rm -rf /usr/local/src/drush/.git \ -# && rm -rf /usr/local/src/drush/docs \ -# && rm -rf /usr/local/src/drush/examples \ -# && rm -rf /usr/local/src/drush/misc \ -# && rm -rf /usr/local/src/drush/tests \ -# && rm -rf /root/.drush \ -# && rm -rf /home/${MY_USER}/.composer -# -## Drupal Console -#RUN set -x \ -# && curl https://drupalconsole.com/installer -L -o drupal.phar \ -# && mv drupal.phar /usr/local/bin/drupal \ -# && chmod +x /usr/local/bin/drupal -## && drupal --version | grep -E 'version\s*[.0-9]' -# -## WP-CLI -#RUN set -x \ -# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ -# && mv wp-cli.phar /usr/local/bin/wp \ -# && chmod +x /usr/local/bin/wp \ -# && wp cli update \ -# && wp --allow-root --version | grep -E '[.0-9]+' -# -## Symfony CLI -#RUN set -x \ -# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ -# && chmod +x /usr/local/bin/symfony \ -# && symfony --version | grep -E 'version\s*[.0-9]+' -# -## Laravel CLI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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' \ -# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ -# && rm -rf /usr/local/src/laravel-installer/laravel/.git -## && laravel --version | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /home/${MY_USER}/.composer -# -## Phalcon DevTools -##RUN set -x \ -## && mkdir -p /usr/local/src \ -## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ -## && cd /usr/local/src/phalcon-devtools \ -## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ -## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ -## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ -## && cd / \ -## && rm -rf /usr/local/src/phalcon-devtools/.git \ -## && phalcon commands | grep -E '[.0-9]+' -# ## Mysqldump-secure #RUN set -x \ # && mkdir -p /usr/local/src \ diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index d3f8514..be4439a 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -148,70 +148,6 @@ RUN set -x true \ \ && true -## Drush -#RUN set -x \ -# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ -# && mkdir -p /usr/local/src \ -# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ -# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ -# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ -# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ -# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ -# && drush --version | grep -E '[.0-9]+' \ -# && rm -rf /usr/local/src/drush/.git \ -# && rm -rf /usr/local/src/drush/docs \ -# && rm -rf /usr/local/src/drush/examples \ -# && rm -rf /usr/local/src/drush/misc \ -# && rm -rf /usr/local/src/drush/tests \ -# && rm -rf /root/.drush \ -# && rm -rf /home/${MY_USER}/.composer -# -## Drupal Console -#RUN set -x \ -# && curl https://drupalconsole.com/installer -L -o drupal.phar \ -# && mv drupal.phar /usr/local/bin/drupal \ -# && chmod +x /usr/local/bin/drupal -## && drupal --version | grep -E 'version\s*[.0-9]' -# -## WP-CLI -#RUN set -x \ -# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ -# && mv wp-cli.phar /usr/local/bin/wp \ -# && chmod +x /usr/local/bin/wp \ -# && wp cli update \ -# && wp --allow-root --version | grep -E '[.0-9]+' -# -## Symfony CLI -#RUN set -x \ -# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ -# && chmod +x /usr/local/bin/symfony \ -# && symfony --version | grep -E 'version\s*[.0-9]+' -# -## Laravel CLI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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' \ -# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ -# && rm -rf /usr/local/src/laravel-installer/laravel/.git -## && laravel --version | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /home/${MY_USER}/.composer -# -## Phalcon DevTools -##RUN set -x \ -## && mkdir -p /usr/local/src \ -## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ -## && cd /usr/local/src/phalcon-devtools \ -## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ -## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ -## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ -## && cd / \ -## && rm -rf /usr/local/src/phalcon-devtools/.git \ -## && phalcon commands | grep -E '[.0-9]+' -# ## Mysqldump-secure #RUN set -x \ # && mkdir -p /usr/local/src \ diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 63561a6..7208e23 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -148,70 +148,6 @@ RUN set -x true \ \ && true -## Drush -#RUN set -x \ -# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ -# && mkdir -p /usr/local/src \ -# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ -# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ -# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ -# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ -# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ -# && drush --version | grep -E '[.0-9]+' \ -# && rm -rf /usr/local/src/drush/.git \ -# && rm -rf /usr/local/src/drush/docs \ -# && rm -rf /usr/local/src/drush/examples \ -# && rm -rf /usr/local/src/drush/misc \ -# && rm -rf /usr/local/src/drush/tests \ -# && rm -rf /root/.drush \ -# && rm -rf /home/${MY_USER}/.composer -# -## Drupal Console -#RUN set -x \ -# && curl https://drupalconsole.com/installer -L -o drupal.phar \ -# && mv drupal.phar /usr/local/bin/drupal \ -# && chmod +x /usr/local/bin/drupal -## && drupal --version | grep -E 'version\s*[.0-9]' -# -## WP-CLI -#RUN set -x \ -# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ -# && mv wp-cli.phar /usr/local/bin/wp \ -# && chmod +x /usr/local/bin/wp \ -# && wp cli update \ -# && wp --allow-root --version | grep -E '[.0-9]+' -# -## Symfony CLI -#RUN set -x \ -# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ -# && chmod +x /usr/local/bin/symfony \ -# && symfony --version | grep -E 'version\s*[.0-9]+' -# -## Laravel CLI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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' \ -# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ -# && rm -rf /usr/local/src/laravel-installer/laravel/.git -## && laravel --version | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /home/${MY_USER}/.composer -# -## Phalcon DevTools -##RUN set -x \ -## && mkdir -p /usr/local/src \ -## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ -## && cd /usr/local/src/phalcon-devtools \ -## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ -## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ -## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ -## && cd / \ -## && rm -rf /usr/local/src/phalcon-devtools/.git \ -## && phalcon commands | grep -E '[.0-9]+' -# ## Mysqldump-secure #RUN set -x \ # && mkdir -p /usr/local/src \ diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index c3919ab..2c35eb8 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -148,70 +148,6 @@ RUN set -x true \ \ && true -## Drush -#RUN set -x \ -# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ -# && mkdir -p /usr/local/src \ -# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ -# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ -# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ -# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ -# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ -# && drush --version | grep -E '[.0-9]+' \ -# && rm -rf /usr/local/src/drush/.git \ -# && rm -rf /usr/local/src/drush/docs \ -# && rm -rf /usr/local/src/drush/examples \ -# && rm -rf /usr/local/src/drush/misc \ -# && rm -rf /usr/local/src/drush/tests \ -# && rm -rf /root/.drush \ -# && rm -rf /home/${MY_USER}/.composer -# -## Drupal Console -#RUN set -x \ -# && curl https://drupalconsole.com/installer -L -o drupal.phar \ -# && mv drupal.phar /usr/local/bin/drupal \ -# && chmod +x /usr/local/bin/drupal -## && drupal --version | grep -E 'version\s*[.0-9]' -# -## WP-CLI -#RUN set -x \ -# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ -# && mv wp-cli.phar /usr/local/bin/wp \ -# && chmod +x /usr/local/bin/wp \ -# && wp cli update \ -# && wp --allow-root --version | grep -E '[.0-9]+' -# -## Symfony CLI -#RUN set -x \ -# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ -# && chmod +x /usr/local/bin/symfony \ -# && symfony --version | grep -E 'version\s*[.0-9]+' -# -## Laravel CLI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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' \ -# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ -# && rm -rf /usr/local/src/laravel-installer/laravel/.git -## && laravel --version | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /home/${MY_USER}/.composer -# -## Phalcon DevTools -##RUN set -x \ -## && mkdir -p /usr/local/src \ -## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ -## && cd /usr/local/src/phalcon-devtools \ -## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ -## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ -## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ -## && cd / \ -## && rm -rf /usr/local/src/phalcon-devtools/.git \ -## && phalcon commands | grep -E '[.0-9]+' -# ## Mysqldump-secure #RUN set -x \ # && mkdir -p /usr/local/src \ diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index 86a59ca..a81d1d0 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -148,70 +148,6 @@ RUN set -x true \ \ && true -## Drush -#RUN set -x \ -# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ -# && mkdir -p /usr/local/src \ -# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ -# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ -# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ -# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ -# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ -# && drush --version | grep -E '[.0-9]+' \ -# && rm -rf /usr/local/src/drush/.git \ -# && rm -rf /usr/local/src/drush/docs \ -# && rm -rf /usr/local/src/drush/examples \ -# && rm -rf /usr/local/src/drush/misc \ -# && rm -rf /usr/local/src/drush/tests \ -# && rm -rf /root/.drush \ -# && rm -rf /home/${MY_USER}/.composer -# -## Drupal Console -#RUN set -x \ -# && curl https://drupalconsole.com/installer -L -o drupal.phar \ -# && mv drupal.phar /usr/local/bin/drupal \ -# && chmod +x /usr/local/bin/drupal -## && drupal --version | grep -E 'version\s*[.0-9]' -# -## WP-CLI -#RUN set -x \ -# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ -# && mv wp-cli.phar /usr/local/bin/wp \ -# && chmod +x /usr/local/bin/wp \ -# && wp cli update \ -# && wp --allow-root --version | grep -E '[.0-9]+' -# -## Symfony CLI -#RUN set -x \ -# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ -# && chmod +x /usr/local/bin/symfony \ -# && symfony --version | grep -E 'version\s*[.0-9]+' -# -## Laravel CLI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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' \ -# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ -# && rm -rf /usr/local/src/laravel-installer/laravel/.git -## && laravel --version | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /home/${MY_USER}/.composer -# -## Phalcon DevTools -##RUN set -x \ -## && mkdir -p /usr/local/src \ -## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ -## && cd /usr/local/src/phalcon-devtools \ -## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ -## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ -## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ -## && cd / \ -## && rm -rf /usr/local/src/phalcon-devtools/.git \ -## && phalcon commands | grep -E '[.0-9]+' -# ## Mysqldump-secure #RUN set -x \ # && mkdir -p /usr/local/src \ diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index 7255450..d00a820 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -148,70 +148,6 @@ RUN set -x true \ \ && true -## Drush -#RUN set -x \ -# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ -# && mkdir -p /usr/local/src \ -# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ -# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ -# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ -# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ -# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ -# && drush --version | grep -E '[.0-9]+' \ -# && rm -rf /usr/local/src/drush/.git \ -# && rm -rf /usr/local/src/drush/docs \ -# && rm -rf /usr/local/src/drush/examples \ -# && rm -rf /usr/local/src/drush/misc \ -# && rm -rf /usr/local/src/drush/tests \ -# && rm -rf /root/.drush \ -# && rm -rf /home/${MY_USER}/.composer -# -## Drupal Console -#RUN set -x \ -# && curl https://drupalconsole.com/installer -L -o drupal.phar \ -# && mv drupal.phar /usr/local/bin/drupal \ -# && chmod +x /usr/local/bin/drupal -## && drupal --version | grep -E 'version\s*[.0-9]' -# -## WP-CLI -#RUN set -x \ -# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ -# && mv wp-cli.phar /usr/local/bin/wp \ -# && chmod +x /usr/local/bin/wp \ -# && wp cli update \ -# && wp --allow-root --version | grep -E '[.0-9]+' -# -## Symfony CLI -#RUN set -x \ -# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ -# && chmod +x /usr/local/bin/symfony \ -# && symfony --version | grep -E 'version\s*[.0-9]+' -# -## Laravel CLI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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' \ -# && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ -# && rm -rf /usr/local/src/laravel-installer/laravel/.git -## && laravel --version | grep -E 'version\s*[.0-9]+' \ -## && rm -rf /home/${MY_USER}/.composer -# -## Phalcon DevTools -##RUN set -x \ -## && mkdir -p /usr/local/src \ -## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ -## && cd /usr/local/src/phalcon-devtools \ -## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ -## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ -## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ -## && cd / \ -## && rm -rf /usr/local/src/phalcon-devtools/.git \ -## && phalcon commands | grep -E '[.0-9]+' -# ## Mysqldump-secure #RUN set -x \ # && mkdir -p /usr/local/src \ From ea9610bcd0a4a8e949b36949b65ee09b9bac2413 Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 28 Feb 2018 09:28:41 +0100 Subject: [PATCH 17/35] Finish tools for work container --- Dockerfiles/work/Dockerfile-5.4 | 244 +++++++++--------- Dockerfiles/work/Dockerfile-5.5 | 246 +++++++++---------- Dockerfiles/work/Dockerfile-5.6 | 246 +++++++++---------- Dockerfiles/work/Dockerfile-7.0 | 246 +++++++++---------- Dockerfiles/work/Dockerfile-7.1 | 246 +++++++++---------- Dockerfiles/work/Dockerfile-7.2 | 246 +++++++++---------- build/ansible/DOCKERFILES/Dockerfile-work.j2 | 130 ++-------- build/ansible/group_vars/all.yml | 118 ++++++++- 8 files changed, 833 insertions(+), 889 deletions(-) diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index 5007fb6..d3d1623 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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 \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && 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) \ @@ -104,21 +119,10 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v1.3.7 \ @@ -128,9 +132,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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 \ + \ # phalcon -RUN set -x true \ && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout v2.0.9 \ @@ -140,112 +176,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 \ +# 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 /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 /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### 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/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.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} -# + +### +### 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/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.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} ### @@ -258,12 +239,23 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && composer --version 2>/dev/null | grep -E 'version\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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.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]+' \ && phalcon commands | 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]+' \ && true @@ -276,7 +268,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -288,7 +279,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index be4439a..802b790 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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 \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && 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) \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v2.0.0 \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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 \ + \ # phalcon -RUN set -x true \ && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 \ +# 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 /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 /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### 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/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.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} -# + +### +### 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/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.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} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.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]+' \ && phalcon commands | 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]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 7208e23..b7fedf9 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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 \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && 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 | tail -1 | sed 's/^.*tags\///g') \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v2.0.0 \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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 \ + \ # phalcon -RUN set -x true \ && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 \ +# 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 /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 /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### 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/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.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} -# + +### +### 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/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.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} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.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]+' \ && phalcon commands | 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]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index 2c35eb8..6876ea7 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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 \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && 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 | tail -1 | sed 's/^.*tags\///g') \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v2.0.0 \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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 \ + \ # phalcon -RUN set -x true \ && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 \ +# 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 /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 /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### 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/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.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} -# + +### +### 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/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.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} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.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]+' \ && phalcon commands | 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]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index a81d1d0..c8dcc7a 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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 \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && 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 | tail -1 | sed 's/^.*tags\///g') \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && 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) \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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 \ + \ # phalcon -RUN set -x true \ && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 \ +# 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 /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 /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### 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/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.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} -# + +### +### 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/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.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} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.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]+' \ && phalcon commands | 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]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index d00a820..06656fb 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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 \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && 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 | tail -1 | sed 's/^.*tags\///g') \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && 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) \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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 \ + \ # phalcon -RUN set -x true \ && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 \ +# 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 /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 /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### 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/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.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} -# + +### +### 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/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.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} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.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]+' \ && phalcon commands | 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]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 index b9787be..e787c13 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-work.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -103,11 +103,11 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ {% for tool in software_enabled %} {# Not disabled #} {% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %} # {{ tool }} -RUN set -x true \ {# Version specific pre-command available? #} {% if php_version in software_available[tool] and 'pre' in software_available[tool][php_version] %} && {{ software_available[tool][php_version]['pre'] }} \ @@ -129,113 +129,29 @@ RUN set -x true \ {% elif 'all' in software_available[tool] and 'post' in software_available[tool]['all'] %} && {{ software_available[tool]['all']['post'] }} \ {% endif %} - && true {% endif %} {% endfor %} + && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### 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/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.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} -# + +### +### 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/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.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} {% if debug %} @@ -252,8 +168,10 @@ RUN set -x \ {% for tool in software_enabled %} {# Not disabled #} {% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %} +{% if 'check' in software_available[tool] %} && {{ software_available[tool]['check'] }} \ {% endif %} +{% endif %} {% endfor %} && true @@ -268,7 +186,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -280,7 +197,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index dec8e83..1d45259 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -48,14 +48,22 @@ apt_repositories_enabled: ### Software to actually install ### software_enabled: + # Composer needs to be first, others rely on it - composer + # Normal packages start here + - awesomeci - drush - drupalconsole - - wpcli - - symfony + - grunt - laravel + - linuxbrew + - mysqldumpsecure - phalcon - + - symfony + - webpack + - wpcli + # Cleanup needs to be last + - cleanup @@ -109,6 +117,7 @@ apt_repositories_available: # all: is generic version of defines # 7.2: is specific version of defines # disabled: [optional] Array of PHP versions for which to disable this module +# check: [optional] Include a check command to test if it was installed successfully # # all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4: # pre: [optional] Run command before 'command:' statement @@ -116,12 +125,38 @@ apt_repositories_available: # pre: [optional] Run command after 'command:' statement # software_available: + awesomeci: + check: | + 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]+' \ + all: + command: | + 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 \ + # awesome-ci requirements + post: | + gem install mixlib-config -v 2.2.4 \ + && gem install mdl \ + && gem install scss_lint \ + && npm install -g eslint \ + && npm install -g jsonlint \ + && npm install -g mdlint \ + && npm install -g gulp \ composer: - check: composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer + check: composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' all: command: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer drush: - check: drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush + check: drush --version | grep -E '[.0-9]+' 5.5: pre: | git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ @@ -146,13 +181,16 @@ software_available: && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ - && rm -rf /home/${MY_USER}/.composer \ drupalconsole: disabled: [5.4] check: drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' all: command: curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal post: chmod +x /usr/local/bin/drupal + grunt: + check: grunt --version | grep -E '[.0-9]+' + all: + command: npm install -g grunt grunt-cli laravel: check: laravel --version | grep -E '(Installer|version)\s*[.0-9]+' 7.0: @@ -185,6 +223,44 @@ software_available: && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ + linuxbrew: + check: su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' + all: + command: | + 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 update' \ + && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + mysqldumpsecure: + check: mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' + all: + command: | + 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 \ phalcon: check: phalcon commands | grep -E '[.0-9]+' 5.4: @@ -213,10 +289,32 @@ software_available: all: command: curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp post: chmod +x /usr/local/bin/wp - - - - + webpack: + check: webpack --version | grep -E '[.0-9]+' + all: + command: npm install -g webpack webpack-cli + cleanup: + all: + command: | + 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 /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 /tmp/* \ ################################################################################ From dd164869c17433805f0f56e9b48408bb539eb89f Mon Sep 17 00:00:00 2001 From: cytopia Date: Wed, 28 Feb 2018 17:30:02 +0100 Subject: [PATCH 18/35] Finish work image --- Dockerfiles/work/Dockerfile-5.4 | 11 +++ Dockerfiles/work/Dockerfile-5.5 | 11 +++ Dockerfiles/work/Dockerfile-5.6 | 11 +++ Dockerfiles/work/Dockerfile-7.0 | 11 +++ Dockerfiles/work/Dockerfile-7.1 | 11 +++ Dockerfiles/work/Dockerfile-7.2 | 11 +++ .../40-mysqldump-secure.sh | 69 +++++++------------ Dockerfiles/work/data/docker-entrypoint.sh | 4 +- build/ansible/DOCKERFILES/Dockerfile-work.j2 | 2 + build/ansible/group_vars/all.yml | 18 +++-- 10 files changed, 110 insertions(+), 49 deletions(-) diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index d3d1623..8f4778c 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -37,6 +37,8 @@ RUN set -x \ && echo "deb http://deb.nodesource.com/node_8.x jessie 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/ jessie-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 \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -52,6 +54,7 @@ RUN set -x \ file \ gcc \ git \ + git-flow \ git-svn \ hostname \ htop \ @@ -82,6 +85,7 @@ RUN set -x \ wget \ whois \ xz-utils \ + yarn \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* @@ -120,6 +124,12 @@ RUN set -x \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ \ +# gitflow + && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ +&& cd /tmp/gitflow \ +&& make install \ +&& cd / && rm -rf /tmp/gitflow \ + \ # grunt && npm install -g grunt grunt-cli \ # laravel @@ -248,6 +258,7 @@ RUN set -x \ && gulp --version | grep -E '[.0-9]+' \ \ && drush --version | grep -E '[.0-9]+' \ + && git-flow version | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index 802b790..5d16270 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -37,6 +37,8 @@ RUN set -x \ && echo "deb http://deb.nodesource.com/node_8.x jessie 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/ jessie-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 \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -52,6 +54,7 @@ RUN set -x \ file \ gcc \ git \ + git-flow \ git-svn \ hostname \ htop \ @@ -82,6 +85,7 @@ RUN set -x \ wget \ whois \ xz-utils \ + yarn \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* @@ -123,6 +127,12 @@ RUN set -x \ # 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 && npm install -g grunt grunt-cli \ # laravel @@ -252,6 +262,7 @@ RUN set -x \ \ && drush --version | grep -E '[.0-9]+' \ && 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]+' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index b7fedf9..6e3b420 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -37,6 +37,8 @@ RUN set -x \ && echo "deb http://deb.nodesource.com/node_8.x jessie 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/ jessie-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 \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -52,6 +54,7 @@ RUN set -x \ file \ gcc \ git \ + git-flow \ git-svn \ hostname \ htop \ @@ -82,6 +85,7 @@ RUN set -x \ wget \ whois \ xz-utils \ + yarn \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* @@ -123,6 +127,12 @@ RUN set -x \ # 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 && npm install -g grunt grunt-cli \ # laravel @@ -252,6 +262,7 @@ RUN set -x \ \ && drush --version | grep -E '[.0-9]+' \ && 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]+' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index 6876ea7..f23dc6b 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -37,6 +37,8 @@ RUN set -x \ && echo "deb http://deb.nodesource.com/node_8.x jessie 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/ jessie-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 \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -52,6 +54,7 @@ RUN set -x \ file \ gcc \ git \ + git-flow \ git-svn \ hostname \ htop \ @@ -82,6 +85,7 @@ RUN set -x \ wget \ whois \ xz-utils \ + yarn \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* @@ -123,6 +127,12 @@ RUN set -x \ # 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 && npm install -g grunt grunt-cli \ # laravel @@ -252,6 +262,7 @@ RUN set -x \ \ && drush --version | grep -E '[.0-9]+' \ && 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]+' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index c8dcc7a..a6675a7 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -37,6 +37,8 @@ RUN set -x \ && echo "deb http://deb.nodesource.com/node_8.x jessie 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/ jessie-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 \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -52,6 +54,7 @@ RUN set -x \ file \ gcc \ git \ + git-flow \ git-svn \ hostname \ htop \ @@ -82,6 +85,7 @@ RUN set -x \ wget \ whois \ xz-utils \ + yarn \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* @@ -123,6 +127,12 @@ RUN set -x \ # 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 && npm install -g grunt grunt-cli \ # laravel @@ -252,6 +262,7 @@ RUN set -x \ \ && drush --version | grep -E '[.0-9]+' \ && 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]+' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index 06656fb..f699f32 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -37,6 +37,8 @@ RUN set -x \ && 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 \ && apt-get update \ && apt-get install --no-install-recommends --no-install-suggests -y \ ack-grep \ @@ -52,6 +54,7 @@ RUN set -x \ file \ gcc \ git \ + git-flow \ git-svn \ hostname \ htop \ @@ -82,6 +85,7 @@ RUN set -x \ wget \ whois \ xz-utils \ + yarn \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* @@ -123,6 +127,12 @@ RUN set -x \ # 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 && npm install -g grunt grunt-cli \ # laravel @@ -252,6 +262,7 @@ RUN set -x \ \ && drush --version | grep -E '[.0-9]+' \ && 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]+' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ diff --git a/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh b/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh index 05c96f2..71cb805 100755 --- a/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh +++ b/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh @@ -1,14 +1,8 @@ -#!/bin/sh -# -# Available global variables: -# + MY_USER -# + MY_GROUP -# + DEBUG_LEVEL - +#!/usr/bin/env bash set -e set -u - +set -o pipefail ############################################################ @@ -19,65 +13,54 @@ set -u ### Setup Postfix for catch-all ### fix_mds_permissions() { - mds_cfg=/etc/mysqldump-secure.conf - mds_cnf=/etc/mysqldump-secure.cnf - mds_log=/var/log/mysqldump-secure.log - mds_dir=/shared/backups/mysql + local debug="${1}" + local mds_cfg=/etc/mysqldump-secure.conf + local mds_cnf=/etc/mysqldump-secure.cnf + local mds_log=/var/log/mysqldump-secure.log + local mds_dir=/shared/backups/mysql if [ ! -d "${mds_dir}" ]; then - run "mkdir -p ${mds_dir}" + run "mkdir -p ${mds_dir}" "${debug}" fi - run "chown ${MY_USER}:${MY_GROUP} ${mds_cfg}" - run "chown ${MY_USER}:${MY_GROUP} ${mds_cnf}" - run "chown ${MY_USER}:${MY_GROUP} ${mds_log}" - run "chown ${MY_USER}:${MY_GROUP} ${mds_dir}" - - unset -v mds_cfg - unset -v mds_cnf - unset -v mds_log - unset -v mds_dir + run "chown ${MY_USER}:${MY_GROUP} ${mds_cfg}" "${debug}" + run "chown ${MY_USER}:${MY_GROUP} ${mds_cnf}" "${debug}" + run "chown ${MY_USER}:${MY_GROUP} ${mds_log}" "${debug}" + run "chown ${MY_USER}:${MY_GROUP} ${mds_dir}" "${debug}" } set_mds_settings() { - mds_user_var="${1}" - mds_pass_var="${2}" - mds_host_var="${3}" + local mds_user_var="${1}" + local mds_pass_var="${2}" + local mds_host_var="${3}" + local debug="${4}" - mds_cnf=/etc/mysqldump-secure.cnf + local mds_cnf=/etc/mysqldump-secure.cnf # MySQL user if ! env_set "${mds_user_var}"; then - log "info" "\$${mds_user_var} not set for mysqldump-secure. Keeping default user." + log "info" "\$${mds_user_var} not set for mysqldump-secure. Keeping default user." "${debug}" else mds_user_val="$( env_get "${mds_user_var}" )" - log "info" "\$${mds_user_var} set for mysqldump-secure. Changing to '${mds_user_val}'" - run "sed -i'' 's/^user.*/user = ${mds_user_val}/g' ${mds_cnf}" + log "info" "\$${mds_user_var} set for mysqldump-secure. Changing to '${mds_user_val}'" "${debug}" + run "sed -i'' 's/^user.*/user = ${mds_user_val}/g' ${mds_cnf}" "${debug}" fi # MySQL pass if ! env_set "${mds_pass_var}"; then - log "info" "\$${mds_pass_var} not set for mysqldump-secure. Keeping default password." + log "info" "\$${mds_pass_var} not set for mysqldump-secure. Keeping default password." "${debug}" else mds_pass_val="$( env_get "${mds_pass_var}" )" - log "info" "\$${mds_pass_var} set for mysqldump-secure. Changing to '******'" - run "sed -i'' 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" + log "info" "\$${mds_pass_var} set for mysqldump-secure. Changing to '******'" "${debug}" + run "sed -i'' 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" "${debug}" fi # MySQL host if ! env_set "${mds_host_var}"; then - log "info" "\$${mds_host_var} not set for mysqldump-secure. Keeping default host." + log "info" "\$${mds_host_var} not set for mysqldump-secure. Keeping default host." "${debug}" else mds_host_val="$( env_get "${mds_host_var}" )" - log "info" "\$${mds_host_var} set for mysqldump-secure. Changing to '${mds_host_val}'" - run "sed -i'' 's/^host.*/host = ${mds_host_val}/g' ${mds_cnf}" + log "info" "\$${mds_host_var} set for mysqldump-secure. Changing to '${mds_host_val}'" "${debug}" + run "sed -i'' 's/^host.*/host = ${mds_host_val}/g' ${mds_cnf}" "${debug}" fi - - unset -v mds_user_var - unset -v mds_pass_var - unset -v mds_host_var - unset -v mds_user_val - unset -v mds_pass_val - unset -v mds_host_val - unset -v mds_cnf } diff --git a/Dockerfiles/work/data/docker-entrypoint.sh b/Dockerfiles/work/data/docker-entrypoint.sh index d286146..01bba0f 100755 --- a/Dockerfiles/work/data/docker-entrypoint.sh +++ b/Dockerfiles/work/data/docker-entrypoint.sh @@ -134,8 +134,8 @@ copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" ### ### mysqldump-secure ### -fix_mds_permissions -set_mds_settings "MYSQL_BACKUP_USER" "MYSQL_BACKUP_PASS" "MYSQL_BACKUP_HOST" +fix_mds_permissions "${DEBUG_LEVEL}" +set_mds_settings "MYSQL_BACKUP_USER" "MYSQL_BACKUP_PASS" "MYSQL_BACKUP_HOST" "${DEBUG_LEVEL}" ### diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 index e787c13..a600362 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-work.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -69,6 +69,7 @@ RUN set -x \ file \ gcc \ git \ + git-flow \ git-svn \ hostname \ htop \ @@ -99,6 +100,7 @@ RUN set -x \ wget \ whois \ xz-utils \ + yarn \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ && rm -rf /var/lib/apt/lists/* diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index 1d45259..cd9a6bf 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -42,6 +42,7 @@ apt_repositories_enabled: - mongo - node - pgsql + - yarn ### @@ -54,6 +55,7 @@ software_enabled: - awesomeci - drush - drupalconsole + - gitflow - grunt - laravel - linuxbrew @@ -84,31 +86,31 @@ apt_repositories_available: all: deb: deb http://ftp.debian.org/debian jessie-backports main git: - disabled: [] 7.2: deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main all: deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main key: A1715D88E1DF1F24 mongo: - #disabled: [7.2] all: deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 node: - disabled: [] 7.2: deb: deb http://deb.nodesource.com/node_8.x stretch main all: 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 - pgsql: - #disabled: [7.2] 7.2: deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main all: 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 - + yarn: + all: + deb: deb http://dl.yarnpkg.com/debian/ stable main + pre: curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - ### @@ -187,6 +189,14 @@ software_available: all: command: curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal post: chmod +x /usr/local/bin/drupal + gitflow: + check: git-flow version | grep -E '[.0-9]+' + all: + command: | + git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ grunt: check: grunt --version | grep -E '[.0-9]+' all: From 42fdf7f9297a9d4f37087144479a0268328c290b Mon Sep 17 00:00:00 2001 From: cytopia Date: Thu, 1 Mar 2018 21:23:55 +0100 Subject: [PATCH 19/35] Adding tests --- .travis.yml | 7 + .../40-mysqldump-secure.sh | 13 +- Dockerfiles/work/data/docker-entrypoint.sh | 2 +- Makefile | 57 ++++++ README.md | 89 +++++++++- tests/.lib.sh | 168 ++++++++++++++++++ tests/base/01-test-env-entrypoint.sh | 97 ++++++++++ tests/base/02-test-env-uid.sh | 77 ++++++++ tests/base/03-test-env-gid.sh | 77 ++++++++ tests/prod/01-test-env-timezone.sh | 45 +++++ tests/test.sh | 107 +++++++++++ 11 files changed, 732 insertions(+), 7 deletions(-) create mode 100755 tests/.lib.sh create mode 100755 tests/base/01-test-env-entrypoint.sh create mode 100755 tests/base/02-test-env-uid.sh create mode 100755 tests/base/03-test-env-gid.sh create mode 100755 tests/prod/01-test-env-timezone.sh create mode 100755 tests/test.sh diff --git a/.travis.yml b/.travis.yml index 2aed90d..dad2347 100644 --- a/.travis.yml +++ b/.travis.yml @@ -52,9 +52,16 @@ before_script: # Build (multiple tries due to network outages) - max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + - make test-base-${PHP//.} + - max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + - make test-mods-${PHP//.} + - max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + - make test-prod-${PHP//.} + - max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi + - make test-work-${PHP//.} # Test if PHP modules have changed - ./build/gen-readme.sh "${PHP}" diff --git a/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh b/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh index 71cb805..64e5f8b 100755 --- a/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh +++ b/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh @@ -13,7 +13,10 @@ set -o pipefail ### Setup Postfix for catch-all ### fix_mds_permissions() { - local debug="${1}" + local user="${1}" + local group="${2}" + local debug="${3}" + local mds_cfg=/etc/mysqldump-secure.conf local mds_cnf=/etc/mysqldump-secure.cnf local mds_log=/var/log/mysqldump-secure.log @@ -23,10 +26,10 @@ fix_mds_permissions() { run "mkdir -p ${mds_dir}" "${debug}" fi - run "chown ${MY_USER}:${MY_GROUP} ${mds_cfg}" "${debug}" - run "chown ${MY_USER}:${MY_GROUP} ${mds_cnf}" "${debug}" - run "chown ${MY_USER}:${MY_GROUP} ${mds_log}" "${debug}" - run "chown ${MY_USER}:${MY_GROUP} ${mds_dir}" "${debug}" + run "chown ${user}:${group} ${mds_cfg}" "${debug}" + run "chown ${user}:${group} ${mds_cnf}" "${debug}" + run "chown ${user}:${group} ${mds_log}" "${debug}" + run "chown ${user}:${group} ${mds_dir}" "${debug}" } set_mds_settings() { diff --git a/Dockerfiles/work/data/docker-entrypoint.sh b/Dockerfiles/work/data/docker-entrypoint.sh index 01bba0f..1a36ea1 100755 --- a/Dockerfiles/work/data/docker-entrypoint.sh +++ b/Dockerfiles/work/data/docker-entrypoint.sh @@ -134,7 +134,7 @@ copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}" ### ### mysqldump-secure ### -fix_mds_permissions "${DEBUG_LEVEL}" +fix_mds_permissions "${MY_USER}" "${MY_GROUP}" "${DEBUG_LEVEL}" set_mds_settings "MYSQL_BACKUP_USER" "MYSQL_BACKUP_PASS" "MYSQL_BACKUP_HOST" "${DEBUG_LEVEL}" diff --git a/Makefile b/Makefile index e6947ca..45343ef 100644 --- a/Makefile +++ b/Makefile @@ -258,3 +258,60 @@ pull-from-71: docker pull $(shell grep FROM $(location)/base/Dockerfile-7.1 | sed 's/^FROM//g'; done) pull-from-72: docker pull $(shell grep FROM $(location)/base/Dockerfile-7.2 | sed 's/^FROM//g'; done) + + + +### +### Tests +### +test-base-54: + ./tests/test.sh 5.4 base +test-base-55: + ./tests/test.sh 5.5 base +test-base-56: + ./tests/test.sh 5.6 base +test-base-70: + ./tests/test.sh 7.0 base +test-base-71: + ./tests/test.sh 7.1 base +test-base-72: + ./tests/test.sh 7.2 base + +test-mods-54: + ./tests/test.sh 5.4 mods +test-mods-55: + ./tests/test.sh 5.5 mods +test-mods-56: + ./tests/test.sh 5.6 mods +test-mods-70: + ./tests/test.sh 7.0 mods +test-mods-71: + ./tests/test.sh 7.1 mods +test-mods-72: + ./tests/test.sh 7.2 mods + +test-prod-54: + ./tests/test.sh 5.4 prod +test-prod-55: + ./tests/test.sh 5.5 prod +test-prod-56: + ./tests/test.sh 5.6 prod +test-prod-70: + ./tests/test.sh 7.0 prod +test-prod-71: + ./tests/test.sh 7.1 prod +test-prod-72: + ./tests/test.sh 7.2 prod + +test-work-54: + ./tests/test.sh 5.4 work +test-work-55: + ./tests/test.sh 5.5 work +test-work-56: + ./tests/test.sh 5.6 work +test-work-70: + ./tests/test.sh 7.0 work +test-work-71: + ./tests/test.sh 7.1 work +test-work-72: + ./tests/test.sh 7.2 work diff --git a/README.md b/README.md index a353018..a6a813e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,95 @@ # Docker PHP-FPM images +

Options

+### Environment variables -## Available PHP Modules +Have a look at the following table to see all supported environment variables for each Docker image flavour. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ImageEnv VariableTypeDefaultDescription
base

mods

prod

work
DEBUG_ENTRYPOINTint0Set debug level for startup.
0 Only warnings and errors are shown.
1 All log messages are shown
2 All log messages and executed commands are shown.
NEW_UIDint1000Assign the PHP-FPM user a new uid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local user.
(Type id for your uid).
NEW_GIDint1000Assign the PHP-FPM group a new gid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local group.
(Type id for your gid).
prod

work
TIMEZONEstringUTCSet docker OS timezone as well as PHP timezone.
(Example: Europe/Berlin)
DOCKER_LOGSbool1By default all Docker images are configured to output their PHP-FPM access and error logs to stdout and stderr. Those which support it can change the behaviour to log into files inside the container. Their respective directories are available as volumes that can be mounted to the host computer. This feature might help developer who are more comfortable with tailing or searching through actual files instead of using docker logs.

Set this variable to 0 in order to enable logging to files. Log files are avilable under /var/log/php/ which is also a docker volume that can be mounted locally.
ENABLE_MAILbool0Enable local email catch-all.
Postfix will be configured for local delivery and all mails sent (even to real domains) will be catched locally. No email will ever go out. They will all be stored in a local devilbox account.
Value: 0 or 1
FORWARD_PORTS_TO_LOCALHOSTstringList of remote ports to forward to 127.0.0.1.
Format:
<local-port>:<remote-host>:<remote-port>
You can separate multiple entries by comma.
Example:
3306:mysqlhost:3306, 6379:192.0.1.1:6379
workMYSQL_BACKUP_USERstring''Username for mysql backups used for bundled mysqldump-secure
MYSQL_BACKUP_PASSstring''Password for mysql backups used for bundled mysqldump-secure
MYSQL_BACKUP_HOSTstring''Hostname for mysql backups used for bundled mysqldump-secure
+ +

Modules

diff --git a/tests/.lib.sh b/tests/.lib.sh new file mode 100755 index 0000000..321c4f2 --- /dev/null +++ b/tests/.lib.sh @@ -0,0 +1,168 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + + +### +### Run +### +function run() { + local cmd="${1}" + local to_stderr=0 + + # Output to stderr instead? + if [ "${#}" -eq "2" ]; then + to_stderr="${2}" + fi + + local red="\033[0;31m" + local green="\033[0;32m" + local yellow="\033[0;33m" + local reset="\033[0m" + + if [ "${to_stderr}" -eq "0" ]; then + printf "${yellow}[%s] ${red}%s \$ ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" + else + printf "${yellow}[%s] ${red}%s \$ ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" >&2 + fi + + if sh -c "LANG=C LC_ALL=C ${cmd}"; then + if [ "${to_stderr}" -eq "0" ]; then + printf "${green}[%s]${reset}\n" "OK" + else + printf "${green}[%s]${reset}\n" "OK" >&2 + fi + return 0 + else + if [ "${to_stderr}" -eq "0" ]; then + printf "${red}[%s]${reset}\n" "NO" + else + printf "${red}[%s]${reset}\n" "NO" >&2 + fi + return 1 + fi +} +### +### Run (must fail in order to succeed) +### +function run_fail() { + local cmd="${1}" + local to_stderr=0 + + # Output to stderr instead? + if [ "${#}" -eq "2" ]; then + to_stderr="${2}" + fi + + local red="\033[0;31m" + local green="\033[0;32m" + local yellow="\033[0;33m" + local reset="\033[0m" + + if [ "${to_stderr}" -eq "0" ]; then + printf "${yellow}[%s] ${red}%s \$ ${yellow}[NOT] ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" + else + printf "${yellow}[%s] ${red}%s \$ ${yellow}[NOT] ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" >&2 + fi + + if ! sh -c "LANG=C LC_ALL=C ${cmd}"; then + if [ "${to_stderr}" -eq "0" ]; then + printf "${green}[%s]${reset}\n" "OK" + else + printf "${green}[%s]${reset}\n" "OK" >&2 + fi + return 0 + else + if [ "${to_stderr}" -eq "0" ]; then + printf "${red}[%s]${reset}\n" "NO" + else + printf "${red}[%s]${reset}\n" "NO" >&2 + fi + return 1 + fi +} + +### +### Get 15 character random word +### +function get_random_name() { + local chr=(a b c d e f g h i j k l m o p q r s t u v w x y z) + local len="${#chr[@]}" + local name= + + for i in {1..15}; do + rand="$( shuf -i 0-${len} -n 1 )" + rand=$(( rand - 1 )) + name="${name}${chr[$rand]}" + i="${i}" # simply to get rid of shellcheck complaints + done + echo "${name}" +} + + +### +### Docker run +### +function docker_run() { + local image_name="${1}" + + shift + local args="${*}" + + # Returns docker-id + did="$( run "docker run -d --name $( get_random_name ) ${args} ${image_name}" "1" )" + sleep 4 + + # If it fails, start again in foreground to fail again, but show errors + if ! docker exec -it ${did} ls >/dev/null 2>&1; then + docker run "${args}" "${image_name}" "1" + return 1 + fi + + # Only get 8 digits of docker id + echo "${did}" | grep -Eo '^[0-9a-zA-Z]{8}' +} + + +### +### Show Docker logs +### +function docker_logs() { + local docker_id="${1}" + + run "docker logs ${docker_id}" +} + + +### +### Docker exec +### +function docker_exec() { + local did="${1}" + local cmd="${2}" + shift + shift + local args="${*}" + + run "docker exec ${args} -it ${did} ${cmd}" +} + + +### +### Stop container +### +function docker_stop() { + local did="${1}" + local name= + name="$( docker ps --no-trunc --format='{{.ID}} {{.Names}}' | grep "${did}" | head -1 | awk '{print $2}' )" + # Stop + run "docker stop ${did} >/dev/null" + if docker ps | grep -q "${did}"; then + run "docker kill ${did} >/dev/null" || true + fi + + # Remove if still exist + run "docker rm ${name} >/dev/null 2>&1 || true" +} diff --git a/tests/base/01-test-env-entrypoint.sh b/tests/base/01-test-env-entrypoint.sh new file mode 100755 index 0000000..fff1d9b --- /dev/null +++ b/tests/base/01-test-env-entrypoint.sh @@ -0,0 +1,97 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + + +### +### Debug == 0 +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=0" )" +if ! run_fail "docker logs ${did} 2>&1 | grep 'Debug level'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! run_fail "docker logs ${did} 2>&1 | grep '\[INFO\]'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! run_fail "docker logs ${did} 2>&1 | grep -E '\[(ERR|\?\?\?)\]'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" + + +### +### Debug == 1 +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=1" )" + +if ! run "docker logs ${did} 2>&1 | grep 'Debug level: 1'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! run "docker logs ${did} 2>&1 | grep '\[INFO\]'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! run_fail "docker logs ${did} 2>&1 | grep -E '\[(ERR|\?\?\?)\]'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" + + +### +### Debug == 2 +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2" )" + +if ! run "docker logs ${did} 2>&1 | grep 'Debug level: 2'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! run "docker logs ${did} 2>&1 | grep '\[INFO\]'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! run_fail "docker logs ${did} 2>&1 | grep -E '\[(ERR|\?\?\?)\]'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" diff --git a/tests/base/02-test-env-uid.sh b/tests/base/02-test-env-uid.sh new file mode 100755 index 0000000..dd28fb3 --- /dev/null +++ b/tests/base/02-test-env-uid.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + +### +### uid: 1005 (new uid) +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1005" )" + +if ! run "docker logs ${did} 2>&1 | grep -q '1005'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! docker_exec "${did}" "id | grep 'uid=1005'" "--user=devilbox"; then + docker_logs "${did}" + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" + +### +### uid: 1000 (same uid) +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1000" )" + +if ! run "docker logs ${did} 2>&1 | grep -q '1000'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! docker_exec "${did}" "id | grep 'uid=1000'" "--user=devilbox"; then + docker_logs "${did}" + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" + +### +### uid: 33 (existing uid) +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=33" )" + +if ! run "docker logs ${did} 2>&1 | grep -q '33'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! docker_exec "${did}" "id | grep 'uid=33'" "--user=devilbox"; then + docker_logs "${did}" + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" diff --git a/tests/base/03-test-env-gid.sh b/tests/base/03-test-env-gid.sh new file mode 100755 index 0000000..e9ea0d8 --- /dev/null +++ b/tests/base/03-test-env-gid.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + +### +### gid: 1005 (new gid) +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1005" )" + +if ! run "docker logs ${did} 2>&1 | grep -q '1005'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! docker_exec "${did}" "id | grep 'gid=1005'" "--user=devilbox"; then + docker_logs "${did}" + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" + +### +### gid: 1000 (same gid) +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1000" )" + +if ! run "docker logs ${did} 2>&1 | grep -q '1000'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! docker_exec "${did}" "id | grep 'gid=1000'" "--user=devilbox"; then + docker_logs "${did}" + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" + +### +### gid: 33 (existing gid) +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=33" )" + +if ! run "docker logs ${did} 2>&1 | grep -q '33'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! docker_exec "${did}" "id | grep 'gid=33'" "--user=devilbox"; then + docker_logs "${did}" + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" diff --git a/tests/prod/01-test-env-timezone.sh b/tests/prod/01-test-env-timezone.sh new file mode 100755 index 0000000..6dcab4f --- /dev/null +++ b/tests/prod/01-test-env-timezone.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + +### +### Europe/Berlin +### +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e TIMEZONE=Europe/Berlin" )" +if ! run "docker logs ${did} 2>&1 | grep -q 'Europe/Berlin'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! docker_exec "${did}" "date | grep -E 'CE(S)*T'"; then + docker_exec "${did}" "date" + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if ! docker_exec "${did}" "php -i | grep -E 'date\.timezone' | grep 'Europe/Berlin'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +docker_stop "${did}" diff --git a/tests/test.sh b/tests/test.sh new file mode 100755 index 0000000..c874caf --- /dev/null +++ b/tests/test.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env bash + +### +### Settings +### + +# Be strict +set -e +set -u +set -o pipefail + +# Loop over newlines instead of spaces +IFS=$'\n' + + +### +### Variables +### + +# Current directory +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +# Array of tests to run +declare -a BASE_TESTS=() +declare -a MODS_TESTS=() +declare -a PROD_TESTS=() +declare -a WORK_TESTS=() + + +### +### Source libs +### +# shellcheck disable=SC1090 +. "${CWD}/.lib.sh" + + +### +### Sanity check +### +if [ "${#}" -ne "2" ]; then + echo "Usage: start.ci " + exit 1 +fi + + +### +### Find test files +### +FILES="$( find ${CWD} -regex "${CWD}/base/[0-9].+.*\.sh" | sort -u )" +for f in ${FILES}; do + BASE_TESTS+=("${f}") +done + +FILES="$( find ${CWD} -regex "${CWD}/mods/[0-9].+.*\.sh" | sort -u )" +for f in ${FILES}; do + MODS_TESTS+=("${f}") +done + +FILES="$( find ${CWD} -regex "${CWD}/prod/[0-9].+.*\.sh" | sort -u )" +for f in ${FILES}; do + PROD_TESTS+=("${f}") +done + +FILES="$( find ${CWD} -regex "${CWD}/work/[0-9].+.*\.sh" | sort -u )" +for f in ${FILES}; do + WORK_TESTS+=("${f}") +done + + +### +### Run tests +### +if [ "${2}" = "base" ] || [ "${2}" = "mods" ] || [ "${2}" = "prod" ] || [ "${2}" = "work" ]; then + for t in "${BASE_TESTS[@]}"; do + printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" + printf "\033[0;33m%s %s\033[0m\n" "#" "[${1}-${2}]: ${t}" + printf "\033[0;33m%s\033[0m\n\n" "################################################################################" + time ${t} devilbox/php-fpm ${1} ${2} + done +fi + +if [ "${2}" = "mods" ] || [ "${2}" = "prod" ] || [ "${2}" = "work" ]; then + for t in "${MODS_TESTS[@]}"; do + printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" + printf "\033[0;33m%s %s\033[0m\n" "#" "[${1}-${2}]: ${t}" + printf "\033[0;33m%s\033[0m\n\n" "################################################################################" + time ${t} devilbox/php-fpm ${1} ${2} + done +fi + +if [ "${2}" = "prod" ] || [ "${2}" = "work" ]; then + for t in "${PROD_TESTS[@]}"; do + printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" + printf "\033[0;33m%s %s\033[0m\n" "#" "[${1}-${2}]: ${t}" + printf "\033[0;33m%s\033[0m\n\n" "################################################################################" + time ${t} devilbox/php-fpm ${1} ${2} + done +fi + +if [ "${2}" = "work" ]; then + for t in "${WORK_TESTS[@]}"; do + printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" + printf "\033[0;33m%s %s\033[0m\n" "#" "[${1}-${2}]: ${t}" + printf "\033[0;33m%s\033[0m\n\n" "################################################################################" + time ${t} devilbox/php-fpm ${1} ${2} + done +fi From d26643a28dbeb13e602c3b24046a962822fd3e66 Mon Sep 17 00:00:00 2001 From: cytopia Date: Thu, 1 Mar 2018 22:13:31 +0100 Subject: [PATCH 20/35] Fix shortcomings of travis-ci bash version --- tests/test.sh | 42 ++++++++---------------------------------- 1 file changed, 8 insertions(+), 34 deletions(-) diff --git a/tests/test.sh b/tests/test.sh index c874caf..53227b1 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -20,12 +20,6 @@ IFS=$'\n' # Current directory CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" -# Array of tests to run -declare -a BASE_TESTS=() -declare -a MODS_TESTS=() -declare -a PROD_TESTS=() -declare -a WORK_TESTS=() - ### ### Source libs @@ -43,35 +37,12 @@ if [ "${#}" -ne "2" ]; then fi -### -### Find test files -### -FILES="$( find ${CWD} -regex "${CWD}/base/[0-9].+.*\.sh" | sort -u )" -for f in ${FILES}; do - BASE_TESTS+=("${f}") -done - -FILES="$( find ${CWD} -regex "${CWD}/mods/[0-9].+.*\.sh" | sort -u )" -for f in ${FILES}; do - MODS_TESTS+=("${f}") -done - -FILES="$( find ${CWD} -regex "${CWD}/prod/[0-9].+.*\.sh" | sort -u )" -for f in ${FILES}; do - PROD_TESTS+=("${f}") -done - -FILES="$( find ${CWD} -regex "${CWD}/work/[0-9].+.*\.sh" | sort -u )" -for f in ${FILES}; do - WORK_TESTS+=("${f}") -done - - ### ### Run tests ### if [ "${2}" = "base" ] || [ "${2}" = "mods" ] || [ "${2}" = "prod" ] || [ "${2}" = "work" ]; then - for t in "${BASE_TESTS[@]}"; do + TESTS="$( find ${CWD} -regex "${CWD}/base/[0-9].+.*\.sh" | sort -u )" + for t in ${TESTS}; do printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" printf "\033[0;33m%s %s\033[0m\n" "#" "[${1}-${2}]: ${t}" printf "\033[0;33m%s\033[0m\n\n" "################################################################################" @@ -80,7 +51,8 @@ if [ "${2}" = "base" ] || [ "${2}" = "mods" ] || [ "${2}" = "prod" ] || [ "${2}" fi if [ "${2}" = "mods" ] || [ "${2}" = "prod" ] || [ "${2}" = "work" ]; then - for t in "${MODS_TESTS[@]}"; do + TESTS="$( find ${CWD} -regex "${CWD}/mods/[0-9].+.*\.sh" | sort -u )" + for t in ${TESTS}; do printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" printf "\033[0;33m%s %s\033[0m\n" "#" "[${1}-${2}]: ${t}" printf "\033[0;33m%s\033[0m\n\n" "################################################################################" @@ -89,7 +61,8 @@ if [ "${2}" = "mods" ] || [ "${2}" = "prod" ] || [ "${2}" = "work" ]; then fi if [ "${2}" = "prod" ] || [ "${2}" = "work" ]; then - for t in "${PROD_TESTS[@]}"; do + TESTS="$( find ${CWD} -regex "${CWD}/prod/[0-9].+.*\.sh" | sort -u )" + for t in ${TESTS}; do printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" printf "\033[0;33m%s %s\033[0m\n" "#" "[${1}-${2}]: ${t}" printf "\033[0;33m%s\033[0m\n\n" "################################################################################" @@ -98,7 +71,8 @@ if [ "${2}" = "prod" ] || [ "${2}" = "work" ]; then fi if [ "${2}" = "work" ]; then - for t in "${WORK_TESTS[@]}"; do + TESTS="$( find ${CWD} -regex "${CWD}/work/[0-9].+.*\.sh" | sort -u )" + for t in ${TESTS}; do printf "\n\n\033[0;33m%s\033[0m\n" "################################################################################" printf "\033[0;33m%s %s\033[0m\n" "#" "[${1}-${2}]: ${t}" printf "\033[0;33m%s\033[0m\n\n" "################################################################################" From fcbc2e5f847b12a46c44c54872e6e13db87e3801 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sat, 3 Mar 2018 13:01:46 +0100 Subject: [PATCH 21/35] Fix docker-logging --- .../docker-entrypoint.d/32-docker-logs.sh | 6 +- tests/.lib.sh | 2 +- tests/prod/02-test-env-docker_logs.sh | 113 ++++++++++++++++++ 3 files changed, 118 insertions(+), 3 deletions(-) create mode 100755 tests/prod/02-test-env-docker_logs.sh diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh b/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh index 58a0737..3434b02 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh @@ -18,6 +18,7 @@ _log_to_dockerlogs() { echo "access.log = /proc/self/fd/2" } > "${conf_logfile}" } + _log_to_files() { local conf_logfile="${1}" local log_dir="${2}" @@ -36,6 +37,7 @@ _log_to_files() { run "touch ${log_dir}/php-fpm.error" "${debug}" fi run "chown -R ${user}:${group} ${log_dir}" "${debug}" + run "chmod 0755 ${log_dir}" "${debug}" { echo "[global]" echo "error_log = ${log_dir}/php-fpm.error" @@ -77,10 +79,10 @@ set_docker_logs() { # Keep docker logs elif [ "${docker_logs}" = "1" ]; then - log "info" "\$${env_varname} set to 1. Logging to docker logs (stdout and stderr)." + log "info" "\$${env_varname} set to 1. Logging to docker logs (stdout and stderr)." "${debug}" _log_to_dockerlogs "${conf_logfile}" else - log "err" "Invalid value for \$${env_varname}. Can only be 0 or 1. Provided: ${docker_logs}" + log "err" "Invalid value for \$${env_varname}. Can only be 0 or 1. Provided: ${docker_logs}" "${debug}" exit 1 fi fi diff --git a/tests/.lib.sh b/tests/.lib.sh index 321c4f2..43f0c6b 100755 --- a/tests/.lib.sh +++ b/tests/.lib.sh @@ -117,7 +117,7 @@ function docker_run() { # If it fails, start again in foreground to fail again, but show errors if ! docker exec -it ${did} ls >/dev/null 2>&1; then - docker run "${args}" "${image_name}" "1" + run "docker run --name $( get_random_name ) ${args} ${image_name}" "1" return 1 fi diff --git a/tests/prod/02-test-env-docker_logs.sh b/tests/prod/02-test-env-docker_logs.sh new file mode 100755 index 0000000..9fca98f --- /dev/null +++ b/tests/prod/02-test-env-docker_logs.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + + +### +### Docker logs +### +MOUNTPOINT="$( mktemp --directory )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=1 -v ${MOUNTPOINT}:/var/log/php" )" +run "sleep 10" + +if ! run "docker logs ${did} 2>&1 | grep -q 'DOCKER_LOGS'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +if [ -f "${MOUNTPOINT}/php-fpm.access" ]; then + echo "Access log should not exist: ${MOUNTPOINT}/php-fpm.access" + ls -lap ${MOUNTPOINT}/ + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if [ -f "${MOUNTPOINT}/php-fpm.error" ]; then + echo "Error log should not exist: ${MOUNTPOINT}/php-fpm.error" + ls -lap ${MOUNTPOINT}/ + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +run "ls -lap ${MOUNTPOINT}/" + +docker_stop "${did}" +run "rm -rf ${MOUNTPOINT}" || true + + + +### +### Log to file +### +MOUNTPOINT="$( mktemp --directory )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=0 -v ${MOUNTPOINT}:/var/log/php" )" +run "sleep 10" + +if ! run "docker logs ${did} 2>&1 | grep -q 'DOCKER_LOGS'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +if [ ! -f "${MOUNTPOINT}/php-fpm.access" ]; then + echo "Access log does not exist: ${MOUNTPOINT}/php-fpm.access" + ls -lap ${MOUNTPOINT}/ + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if [ ! -r "${MOUNTPOINT}/php-fpm.access" ]; then + echo "Access log is not readable" + ls -lap ${MOUNTPOINT}/ + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +if [ ! -f "${MOUNTPOINT}/php-fpm.error" ]; then + echo "Error log does not exist: ${MOUNTPOINT}/php-fpm.error" + ls -lap ${MOUNTPOINT}/ + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if [ ! -r "${MOUNTPOINT}/php-fpm.error" ]; then + echo "Error log is not readable" + ls -lap ${MOUNTPOINT}/ + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +run "ls -lap ${MOUNTPOINT}/" +run "cat ${MOUNTPOINT}/*" + +docker_stop "${did}" +run "rm -rf ${MOUNTPOINT}" || true From 173009404211ca0f2d22a363dda5c5a22abdda25 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sat, 3 Mar 2018 22:02:24 +0100 Subject: [PATCH 22/35] Add more integration tests --- .../data/docker-entrypoint.d/31-postfix.sh | 7 +- README.md | 70 ++++++++++ tests/.lib.sh | 15 +++ tests/prod/02-test-env-docker_logs.sh | 1 - tests/prod/03-test-env-enable_mail.sh | 66 ++++++++++ .../04-test-env-forward_ports_to_localhost.sh | 50 +++++++ tests/prod/05-test-mount-custom_ini.sh | 124 ++++++++++++++++++ tests/work/01-test-env-mysqldump-secure.sh | 54 ++++++++ 8 files changed, 382 insertions(+), 5 deletions(-) create mode 100755 tests/prod/03-test-env-enable_mail.sh create mode 100755 tests/prod/04-test-env-forward_ports_to_localhost.sh create mode 100755 tests/prod/05-test-mount-custom_ini.sh create mode 100755 tests/work/01-test-env-mysqldump-secure.sh diff --git a/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh b/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh index 10a21e0..33c9222 100755 --- a/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh +++ b/Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh @@ -29,7 +29,7 @@ set_postfix() { else catch_all="$( env_get "${env_varname}" )" if [ "${catch_all}" = "1" ]; then - log "info" "Enabling postfix catch-all" "${debug}" + log "info" "\$${env_varname} set to 1. Enabling postfix catch-all" "${debug}" # Configure PHP { @@ -61,11 +61,10 @@ set_postfix() { run "newaliases" "${debug}" elif [ "${catch_all}" = "0" ]; then - log "info" "Disabling postfix catch-all" "${debug}" + log "info" "\$${env_varname} set to 0. Disabling postfix catch-all" "${debug}" else - log "err" "Invalid value for \$${env_varname}" "${debug}" - log "err" "Only 1 (for on) or 0 (for off) are allowed" "${debug}" + log "err" "Invalid value for \$${env_varname}. Can only be 0 or 1. Prodived: ${catch_all}" "${debug}" exit 1 fi fi diff --git a/README.md b/README.md index a6a813e..ba1ae07 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,76 @@ Have a look at the following table to see all supported environment variables fo
+### Volumes + +Have a look at the following table to see all offered volumes for each Docker image flavour. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ImageVolumesDescription
prod

work
/etc/php-custom.dMount this directory into your host computer and add custom \*.ini files in order to alter php behaviour.
/etc/php-modules.dMount this directory into your host computer and add custo \*.so files in order to add your php modules.

Note:Your should then also provide a custom \*.ini file in order to actually load your custom provided module.
/var/log/phpWhen setting environment variable DOCKER_LOGS to 0, log files will be available under this directory.
/var/mailEmails caught be the postfix catch-all (ENABLE_MAIL=1) will be available in this directory.
work/etc/bash-custom.dMount this directory into your host computer and add custom configuration files for bash and other tools.
/shared/backupsMount this directory into your host computer to access MySQL backups created by mysqldump-secure.
+ + +### Ports + +Have a look at the following table to see all offered exposed ports for each Docker image flavour. + + + + + + + + + + + + + + + + +
ImagePortDescription
base
mods
prod
work
9000PHP-FPM listening port
+ + + +

Modules

diff --git a/tests/.lib.sh b/tests/.lib.sh index 43f0c6b..119ad42 100755 --- a/tests/.lib.sh +++ b/tests/.lib.sh @@ -150,6 +150,21 @@ function docker_exec() { } +### +### Get docker name +### +function docker_name() { + local did="${1}" + local name= + name="$( docker ps | grep "${did}" | awk '{print $(NF)}' )" + + if [ -z "${name}" ]; then + return 1 + fi + echo "${name}" +} + + ### ### Stop container ### diff --git a/tests/prod/02-test-env-docker_logs.sh b/tests/prod/02-test-env-docker_logs.sh index 9fca98f..da4fd86 100755 --- a/tests/prod/02-test-env-docker_logs.sh +++ b/tests/prod/02-test-env-docker_logs.sh @@ -19,7 +19,6 @@ FLAVOUR="${3}" # Tests ############################################################ - ### ### Docker logs ### diff --git a/tests/prod/03-test-env-enable_mail.sh b/tests/prod/03-test-env-enable_mail.sh new file mode 100755 index 0000000..efafb0d --- /dev/null +++ b/tests/prod/03-test-env-enable_mail.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + +### +### Postfix +### +MOUNTPOINT="$( mktemp --directory )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e ENABLE_MAIL=1 -v ${MOUNTPOINT}:/var/mail" )" +run "sleep 10" + +if ! run "docker logs ${did} 2>&1 | grep -q 'ENABLE_MAIL'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +if [ ! -f "${MOUNTPOINT}/devilbox" ]; then + echo "Mail file does not exist: ${MOUNTPOINT}/devilbox" + ls -lap ${MOUNTPOINT}/ + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi +if [ ! -r "${MOUNTPOINT}/devilbox" ]; then + echo "Mail file is not readable" + ls -lap ${MOUNTPOINT}/ + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +# Send test email +docker_exec "${did}" "php -r \"mail('mailtest@devilbox.org', 'the subject', 'the message');\"" +run "sleep 5" + +if ! run "grep 'the subject' ${MOUNTPOINT}/devilbox"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + "run cat ${MOUNTPOINT}/devilbox" + exit 1 +fi + +docker_stop "${did}" +run "rm -rf ${MOUNTPOINT}" || true diff --git a/tests/prod/04-test-env-forward_ports_to_localhost.sh b/tests/prod/04-test-env-forward_ports_to_localhost.sh new file mode 100755 index 0000000..d6cc7e4 --- /dev/null +++ b/tests/prod/04-test-env-forward_ports_to_localhost.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + +### +### Socat forwarding +### + +# Start mysql container +mdid="$( docker_run "mysql:5.6" "-e MYSQL_ALLOW_EMPTY_PASSWORD=yes" )" +mname="$( docker_name "${mdid}" )" +run "sleep 5" + +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e FORWARD_PORTS_TO_LOCALHOST=3306:${mname}:3306 --link ${mname}" )" +if ! run "docker logs ${did} 2>&1 | grep 'Forwarding ${mname}:3306'"; then + docker_logs "${did}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +# Test connectivity +docker_exec "${did}" "ping -c 1 ${mname}" +docker_exec "${did}" "echo | nc -w 1 ${mname} 3306" +docker_exec "${did}" "echo | nc -w 1 127.0.0.1 3306" + +# Only work container has mysql binary installed +if [ "${FLAVOUR}" = "work" ]; then + docker_exec "${did}" "mysql --user=root --password= --host=${mname} -e 'SHOW DATABASES;'" + docker_exec "${did}" "mysql --user=root --password= --host=127.0.0.1 -e 'SHOW DATABASES;'" +fi +docker_stop "${mdid}" +docker_stop "${did}" diff --git a/tests/prod/05-test-mount-custom_ini.sh b/tests/prod/05-test-mount-custom_ini.sh new file mode 100755 index 0000000..f802f1c --- /dev/null +++ b/tests/prod/05-test-mount-custom_ini.sh @@ -0,0 +1,124 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + +### +### Test Nginx with PHP-FPM +### +WWW_PORT="12345" +DOC_ROOT_HOST="$( mktemp -d )" +DOC_ROOT_CONT="/var/www/default" + +CONFIG_HOST="$( mktemp -d )" +CONFIG_CONT="/etc/nginx/conf.d" + +PHP_INI_HOST="$( mktemp -d )" +PHP_INI_CONT="/etc/php-custom.d" + +echo "post_max_size = 17M" > "${PHP_INI_HOST}/post.ini" +echo " "${DOC_ROOT_HOST}/index.php" + + +# Start PHP-FPM +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_INI_HOST}:${PHP_INI_CONT}" )" +name="$( docker_name "${did}" )" + +# Nginx.conf +{ + echo "server {" + echo " server_name _;" + echo " listen 80;" + echo " root ${DOC_ROOT_CONT};" + echo " index index.php;" + echo " location ~* \.php\$ {" + echo " fastcgi_index index.php;" + echo " fastcgi_pass ${name}:9000;" + echo " include fastcgi_params;" + echo " fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;" + echo " fastcgi_param SCRIPT_NAME \$fastcgi_script_name;" + echo " }" + echo "}" +} > "${CONFIG_HOST}/php.conf" + + +# Start Nginx +ndid="$( docker_run "nginx:stable" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" + +# Check entrypoint +if ! run "docker logs ${did} | grep 'post.ini'"; then + run "rm -rf ${DOC_ROOT_HOST}" + run "rm -rf ${CONFIG_HOST}" + run "rm -rf ${PHP_INI_HOST}" + docker_logs "${ndid}" || true + docker_logs "${did}" || true + docker_stop "${ndid}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +# Check PHP connectivity +if ! run "curl -q 127.0.0.1:${WWW_PORT}/index.php >/dev/null 2>&1"; then + run "rm -rf ${DOC_ROOT_HOST}" + run "rm -rf ${CONFIG_HOST}" + run "rm -rf ${PHP_INI_HOST}" + docker_logs "${ndid}" || true + docker_logs "${did}" || true + docker_stop "${ndid}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +# Check modified php.ini +if ! docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\" | grep '17M'"; then + docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\"" + run "rm -rf ${DOC_ROOT_HOST}" + run "rm -rf ${CONFIG_HOST}" + run "rm -rf ${PHP_INI_HOST}" + docker_logs "${ndid}" || true + docker_logs "${did}" || true + docker_stop "${ndid}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + +# Check modified php.ini +if ! run "curl -q 127.0.0.1:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then + docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\"" + run "rm -rf ${DOC_ROOT_HOST}" + run "rm -rf ${CONFIG_HOST}" + run "rm -rf ${PHP_INI_HOST}" + docker_logs "${ndid}" || true + docker_logs "${did}" || true + docker_stop "${ndid}" || true + docker_stop "${did}" || true + echo "Failed" + exit 1 +fi + + +# Cleanup +docker_stop "${did}" +docker_stop "${ndid}" +run "rm -rf ${DOC_ROOT_HOST}" +run "rm -rf ${CONFIG_HOST}" +run "rm -rf ${PHP_INI_HOST}" diff --git a/tests/work/01-test-env-mysqldump-secure.sh b/tests/work/01-test-env-mysqldump-secure.sh new file mode 100755 index 0000000..89fc333 --- /dev/null +++ b/tests/work/01-test-env-mysqldump-secure.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + +### +### Mysqldump-secure +### +MYSQL_ROOT_PASSWORD="toor" +MOUNTPOINT="$( mktemp --directory )" + +# Start mysql container +mdid="$( docker_run "mysql:5.6" "-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" )" +mname="$( docker_name "${mdid}" )" +run "sleep 5" + +# Start PHP-FPM container +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e FORWARD_PORTS_TO_LOCALHOST=3306:${mname}:3306 -e MYSQL_BACKUP_USER=root -e MYSQL_BACKUP_PASS=${MYSQL_ROOT_PASSWORD} -e MYSQL_BACKUP_HOST=127.0.0.1 -v ${MOUNTPOINT}:/shared/backups --link ${mname}" )" + +docker_exec "${did}" mysqldump-secure + +if [ ! -d "${MOUNTPOINT}/mysql" ]; then + echo "MySQL backup dir does not exist: ${MOUNTPOINT}/mysql" + ls -lap ${MOUNTPOINT}/ + docker_logs "${did}" + docker_logs "${mdid}" + docker_stop "${did}" + docker_stop "${mdid}" + run "rm -rf ${MOUNTPOINT}" || true + exit 1 +fi + +run "ls -lap ${MOUNTPOINT}/mysql/ | grep -E 'mysql\.sql\.gz'" +run "ls -lap ${MOUNTPOINT}/mysql/ | grep -E 'mysql\.sql\.gz\.info'" + +docker_stop "${did}" +docker_stop "${mdid}" +run "rm -rf ${MOUNTPOINT}" || true From ba5ec48c726f775e2a6b6c8d738dd67c06c324f7 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 11:16:06 +0100 Subject: [PATCH 23/35] Fix tests --- tests/base/01-test-env-entrypoint.sh | 2 +- tests/base/02-test-env-uid.sh | 8 +- tests/base/03-test-env-gid.sh | 8 +- tests/base/04-test-run_nginx.sh | 75 +++++++++++++++++++ tests/prod/01-test-env-timezone.sh | 1 + tests/prod/02-test-env-docker_logs.sh | 15 ++-- tests/prod/03-test-env-enable_mail.sh | 8 +- .../04-test-env-forward_ports_to_localhost.sh | 28 +++++-- tests/prod/05-test-mount-custom_ini.sh | 46 ++++++------ tests/work/01-test-env-mysqldump-secure.sh | 12 +-- 10 files changed, 154 insertions(+), 49 deletions(-) create mode 100755 tests/base/04-test-run_nginx.sh diff --git a/tests/base/01-test-env-entrypoint.sh b/tests/base/01-test-env-entrypoint.sh index fff1d9b..0b5cb8c 100755 --- a/tests/base/01-test-env-entrypoint.sh +++ b/tests/base/01-test-env-entrypoint.sh @@ -19,11 +19,11 @@ FLAVOUR="${3}" # Tests ############################################################ - ### ### Debug == 0 ### did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=0" )" + if ! run_fail "docker logs ${did} 2>&1 | grep 'Debug level'"; then docker_logs "${did}" || true docker_stop "${did}" || true diff --git a/tests/base/02-test-env-uid.sh b/tests/base/02-test-env-uid.sh index dd28fb3..063c45a 100755 --- a/tests/base/02-test-env-uid.sh +++ b/tests/base/02-test-env-uid.sh @@ -31,13 +31,14 @@ if ! run "docker logs ${did} 2>&1 | grep -q '1005'"; then exit 1 fi if ! docker_exec "${did}" "id | grep 'uid=1005'" "--user=devilbox"; then - docker_logs "${did}" + docker_logs "${did}" || true docker_stop "${did}" || true echo "Failed" exit 1 fi docker_stop "${did}" + ### ### uid: 1000 (same uid) ### @@ -50,13 +51,14 @@ if ! run "docker logs ${did} 2>&1 | grep -q '1000'"; then exit 1 fi if ! docker_exec "${did}" "id | grep 'uid=1000'" "--user=devilbox"; then - docker_logs "${did}" + docker_logs "${did}" || true docker_stop "${did}" || true echo "Failed" exit 1 fi docker_stop "${did}" + ### ### uid: 33 (existing uid) ### @@ -69,7 +71,7 @@ if ! run "docker logs ${did} 2>&1 | grep -q '33'"; then exit 1 fi if ! docker_exec "${did}" "id | grep 'uid=33'" "--user=devilbox"; then - docker_logs "${did}" + docker_logs "${did}" || true docker_stop "${did}" || true echo "Failed" exit 1 diff --git a/tests/base/03-test-env-gid.sh b/tests/base/03-test-env-gid.sh index e9ea0d8..43196aa 100755 --- a/tests/base/03-test-env-gid.sh +++ b/tests/base/03-test-env-gid.sh @@ -31,13 +31,14 @@ if ! run "docker logs ${did} 2>&1 | grep -q '1005'"; then exit 1 fi if ! docker_exec "${did}" "id | grep 'gid=1005'" "--user=devilbox"; then - docker_logs "${did}" + docker_logs "${did}" || true docker_stop "${did}" || true echo "Failed" exit 1 fi docker_stop "${did}" + ### ### gid: 1000 (same gid) ### @@ -50,13 +51,14 @@ if ! run "docker logs ${did} 2>&1 | grep -q '1000'"; then exit 1 fi if ! docker_exec "${did}" "id | grep 'gid=1000'" "--user=devilbox"; then - docker_logs "${did}" + docker_logs "${did}" || true docker_stop "${did}" || true echo "Failed" exit 1 fi docker_stop "${did}" + ### ### gid: 33 (existing gid) ### @@ -69,7 +71,7 @@ if ! run "docker logs ${did} 2>&1 | grep -q '33'"; then exit 1 fi if ! docker_exec "${did}" "id | grep 'gid=33'" "--user=devilbox"; then - docker_logs "${did}" + docker_logs "${did}" || true docker_stop "${did}" || true echo "Failed" exit 1 diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh new file mode 100755 index 0000000..9ee69dd --- /dev/null +++ b/tests/base/04-test-run_nginx.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + +CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" + +IMAGE="${1}" +VERSION="${2}" +FLAVOUR="${3}" + +# shellcheck disable=SC1090 +. "${CWD}/../.lib.sh" + + + +############################################################ +# Tests +############################################################ + +### +### Test Nginx with PHP-FPM +### +WWW_PORT="12345" +DOC_ROOT_HOST="$( mktemp -d )" +DOC_ROOT_CONT="/var/www/default" + +CONFIG_HOST="$( mktemp -d )" +CONFIG_CONT="/etc/nginx/conf.d" + +FINDME="am_i_really_working" +echo "${FINDME}" > "${DOC_ROOT_HOST}/index.php" + +# Start PHP-FPM +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT}" )" +name="$( docker_name "${did}" )" + +# Nginx.conf +{ + echo "server {" + echo " server_name _;" + echo " listen 80;" + echo " root ${DOC_ROOT_CONT};" + echo " index index.php;" + echo " location ~* \.php\$ {" + echo " fastcgi_index index.php;" + echo " fastcgi_pass ${name}:9000;" + echo " include fastcgi_params;" + echo " fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;" + echo " fastcgi_param SCRIPT_NAME \$fastcgi_script_name;" + echo " }" + echo "}" +} > "${CONFIG_HOST}/php.conf" + +# Start Nginx +ndid="$( docker_run "nginx:stable" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" + +# Check PHP connectivity +if ! run "curl -q 127.0.0.1:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then + docker_logs "${ndid}" || true + docker_logs "${did}" || true + docker_stop "${ndid}" || true + docker_stop "${did}" || true + rm -rf "${DOC_ROOT_HOST}" + rm -rf "${CONFIG_HOST}" + echo "Failed" + exit 1 +fi + +# Cleanup +docker_stop "${did}" +docker_stop "${ndid}" +rm -rf "${DOC_ROOT_HOST}" +rm -rf "${CONFIG_HOST}" diff --git a/tests/prod/01-test-env-timezone.sh b/tests/prod/01-test-env-timezone.sh index 6dcab4f..d1b08c0 100755 --- a/tests/prod/01-test-env-timezone.sh +++ b/tests/prod/01-test-env-timezone.sh @@ -23,6 +23,7 @@ FLAVOUR="${3}" ### Europe/Berlin ### did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e TIMEZONE=Europe/Berlin" )" + if ! run "docker logs ${did} 2>&1 | grep -q 'Europe/Berlin'"; then docker_logs "${did}" || true docker_stop "${did}" || true diff --git a/tests/prod/02-test-env-docker_logs.sh b/tests/prod/02-test-env-docker_logs.sh index da4fd86..2dfbf7b 100755 --- a/tests/prod/02-test-env-docker_logs.sh +++ b/tests/prod/02-test-env-docker_logs.sh @@ -29,6 +29,7 @@ run "sleep 10" if ! run "docker logs ${did} 2>&1 | grep -q 'DOCKER_LOGS'"; then docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi @@ -38,6 +39,7 @@ if [ -f "${MOUNTPOINT}/php-fpm.access" ]; then ls -lap ${MOUNTPOINT}/ docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi @@ -46,15 +48,14 @@ if [ -f "${MOUNTPOINT}/php-fpm.error" ]; then ls -lap ${MOUNTPOINT}/ docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi run "ls -lap ${MOUNTPOINT}/" - docker_stop "${did}" -run "rm -rf ${MOUNTPOINT}" || true - +rm -rf "${MOUNTPOINT}" ### @@ -67,6 +68,7 @@ run "sleep 10" if ! run "docker logs ${did} 2>&1 | grep -q 'DOCKER_LOGS'"; then docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi @@ -76,6 +78,7 @@ if [ ! -f "${MOUNTPOINT}/php-fpm.access" ]; then ls -lap ${MOUNTPOINT}/ docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi @@ -84,6 +87,7 @@ if [ ! -r "${MOUNTPOINT}/php-fpm.access" ]; then ls -lap ${MOUNTPOINT}/ docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi @@ -93,6 +97,7 @@ if [ ! -f "${MOUNTPOINT}/php-fpm.error" ]; then ls -lap ${MOUNTPOINT}/ docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi @@ -101,12 +106,12 @@ if [ ! -r "${MOUNTPOINT}/php-fpm.error" ]; then ls -lap ${MOUNTPOINT}/ docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi run "ls -lap ${MOUNTPOINT}/" run "cat ${MOUNTPOINT}/*" - docker_stop "${did}" -run "rm -rf ${MOUNTPOINT}" || true +rm -rf "${MOUNTPOINT}" diff --git a/tests/prod/03-test-env-enable_mail.sh b/tests/prod/03-test-env-enable_mail.sh index efafb0d..30669e3 100755 --- a/tests/prod/03-test-env-enable_mail.sh +++ b/tests/prod/03-test-env-enable_mail.sh @@ -29,6 +29,7 @@ run "sleep 10" if ! run "docker logs ${did} 2>&1 | grep -q 'ENABLE_MAIL'"; then docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi @@ -38,6 +39,7 @@ if [ ! -f "${MOUNTPOINT}/devilbox" ]; then ls -lap ${MOUNTPOINT}/ docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi @@ -46,6 +48,7 @@ if [ ! -r "${MOUNTPOINT}/devilbox" ]; then ls -lap ${MOUNTPOINT}/ docker_logs "${did}" || true docker_stop "${did}" || true + rm -rf "${MOUNTPOINT}" echo "Failed" exit 1 fi @@ -57,10 +60,11 @@ run "sleep 5" if ! run "grep 'the subject' ${MOUNTPOINT}/devilbox"; then docker_logs "${did}" || true docker_stop "${did}" || true + run "cat ${MOUNTPOINT}/devilbox" + rm -rf "${MOUNTPOINT}" echo "Failed" - "run cat ${MOUNTPOINT}/devilbox" exit 1 fi docker_stop "${did}" -run "rm -rf ${MOUNTPOINT}" || true +rm -rf "${MOUNTPOINT}" diff --git a/tests/prod/04-test-env-forward_ports_to_localhost.sh b/tests/prod/04-test-env-forward_ports_to_localhost.sh index d6cc7e4..6662a3f 100755 --- a/tests/prod/04-test-env-forward_ports_to_localhost.sh +++ b/tests/prod/04-test-env-forward_ports_to_localhost.sh @@ -30,21 +30,37 @@ run "sleep 5" did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e FORWARD_PORTS_TO_LOCALHOST=3306:${mname}:3306 --link ${mname}" )" if ! run "docker logs ${did} 2>&1 | grep 'Forwarding ${mname}:3306'"; then - docker_logs "${did}" || true - docker_stop "${did}" || true + docker_logs "${did}" || true + docker_logs "${mdid}" || true + docker_stop "${did}" || true + docker_stop "${mdid}" || true echo "Failed" exit 1 fi # Test connectivity docker_exec "${did}" "ping -c 1 ${mname}" -docker_exec "${did}" "echo | nc -w 1 ${mname} 3306" -docker_exec "${did}" "echo | nc -w 1 127.0.0.1 3306" +#docker_exec "${did}" "echo | nc -w 1 ${mname} 3306" +#docker_exec "${did}" "echo | nc -w 1 127.0.0.1 3306" # Only work container has mysql binary installed if [ "${FLAVOUR}" = "work" ]; then - docker_exec "${did}" "mysql --user=root --password= --host=${mname} -e 'SHOW DATABASES;'" - docker_exec "${did}" "mysql --user=root --password= --host=127.0.0.1 -e 'SHOW DATABASES;'" + if ! docker_exec "${did}" "mysql --user=root --password= --host=${mname} -e 'SHOW DATABASES;'"; then + docker_logs "${did}" || true + docker_logs "${mdid}" || true + docker_stop "${did}" || true + docker_stop "${mdid}" || true + echo "Failed" + exit 1 + fi + if ! docker_exec "${did}" "mysql --user=root --password= --host=127.0.0.1 -e 'SHOW DATABASES;'"; then + docker_logs "${did}" || true + docker_logs "${mdid}" || true + docker_stop "${did}" || true + docker_stop "${mdid}" || true + echo "Failed" + exit 1 + fi fi docker_stop "${mdid}" docker_stop "${did}" diff --git a/tests/prod/05-test-mount-custom_ini.sh b/tests/prod/05-test-mount-custom_ini.sh index f802f1c..98cad5a 100755 --- a/tests/prod/05-test-mount-custom_ini.sh +++ b/tests/prod/05-test-mount-custom_ini.sh @@ -63,26 +63,26 @@ ndid="$( docker_run "nginx:stable" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CO # Check entrypoint if ! run "docker logs ${did} | grep 'post.ini'"; then - run "rm -rf ${DOC_ROOT_HOST}" - run "rm -rf ${CONFIG_HOST}" - run "rm -rf ${PHP_INI_HOST}" docker_logs "${ndid}" || true - docker_logs "${did}" || true + docker_logs "${did}" || true docker_stop "${ndid}" || true - docker_stop "${did}" || true + docker_stop "${did}" || true + rm -rf "${DOC_ROOT_HOST}" + rm -rf "${CONFIG_HOST}" + rm -rf "${PHP_INI_HOST}" echo "Failed" exit 1 fi # Check PHP connectivity if ! run "curl -q 127.0.0.1:${WWW_PORT}/index.php >/dev/null 2>&1"; then - run "rm -rf ${DOC_ROOT_HOST}" - run "rm -rf ${CONFIG_HOST}" - run "rm -rf ${PHP_INI_HOST}" docker_logs "${ndid}" || true - docker_logs "${did}" || true + docker_logs "${did}" || true docker_stop "${ndid}" || true - docker_stop "${did}" || true + docker_stop "${did}" || true + rm -rf "${DOC_ROOT_HOST}" + rm -rf "${CONFIG_HOST}" + rm -rf "${PHP_INI_HOST}" echo "Failed" exit 1 fi @@ -90,13 +90,13 @@ fi # Check modified php.ini if ! docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\" | grep '17M'"; then docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\"" - run "rm -rf ${DOC_ROOT_HOST}" - run "rm -rf ${CONFIG_HOST}" - run "rm -rf ${PHP_INI_HOST}" docker_logs "${ndid}" || true - docker_logs "${did}" || true + docker_logs "${did}" || true docker_stop "${ndid}" || true - docker_stop "${did}" || true + docker_stop "${did}" || true + rm -rf "${DOC_ROOT_HOST}" + rm -rf "${CONFIG_HOST}" + rm -rf "${PHP_INI_HOST}" echo "Failed" exit 1 fi @@ -104,13 +104,13 @@ fi # Check modified php.ini if ! run "curl -q 127.0.0.1:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\"" - run "rm -rf ${DOC_ROOT_HOST}" - run "rm -rf ${CONFIG_HOST}" - run "rm -rf ${PHP_INI_HOST}" docker_logs "${ndid}" || true - docker_logs "${did}" || true + docker_logs "${did}" || true docker_stop "${ndid}" || true - docker_stop "${did}" || true + docker_stop "${did}" || true + rm -rf "${DOC_ROOT_HOST}" + rm -rf "${CONFIG_HOST}" + rm -rf "${PHP_INI_HOST}" echo "Failed" exit 1 fi @@ -119,6 +119,6 @@ fi # Cleanup docker_stop "${did}" docker_stop "${ndid}" -run "rm -rf ${DOC_ROOT_HOST}" -run "rm -rf ${CONFIG_HOST}" -run "rm -rf ${PHP_INI_HOST}" +rm -rf "${DOC_ROOT_HOST}" +rm -rf "${CONFIG_HOST}" +rm -rf "${PHP_INI_HOST}" diff --git a/tests/work/01-test-env-mysqldump-secure.sh b/tests/work/01-test-env-mysqldump-secure.sh index 89fc333..a801a5d 100755 --- a/tests/work/01-test-env-mysqldump-secure.sh +++ b/tests/work/01-test-env-mysqldump-secure.sh @@ -38,11 +38,11 @@ docker_exec "${did}" mysqldump-secure if [ ! -d "${MOUNTPOINT}/mysql" ]; then echo "MySQL backup dir does not exist: ${MOUNTPOINT}/mysql" ls -lap ${MOUNTPOINT}/ - docker_logs "${did}" - docker_logs "${mdid}" - docker_stop "${did}" - docker_stop "${mdid}" - run "rm -rf ${MOUNTPOINT}" || true + docker_logs "${did}" || true + docker_logs "${mdid}" || true + docker_stop "${did}" || true + docker_stop "${mdid}" || true + rm -rf "${MOUNTPOINT}" exit 1 fi @@ -51,4 +51,4 @@ run "ls -lap ${MOUNTPOINT}/mysql/ | grep -E 'mysql\.sql\.gz\.info'" docker_stop "${did}" docker_stop "${mdid}" -run "rm -rf ${MOUNTPOINT}" || true +rm -rf "${MOUNTPOINT}" From f3a1c69dd9a4eb725031bb274a93778b917ed7eb Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 11:27:11 +0100 Subject: [PATCH 24/35] Pull dependent containers before testing --- tests/base/04-test-run_nginx.sh | 7 ++++++- tests/prod/04-test-env-forward_ports_to_localhost.sh | 10 +++++++--- tests/prod/05-test-mount-custom_ini.sh | 6 +++++- tests/work/01-test-env-mysqldump-secure.sh | 6 +++++- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh index 9ee69dd..a2a0ab8 100755 --- a/tests/base/04-test-run_nginx.sh +++ b/tests/base/04-test-run_nginx.sh @@ -29,9 +29,14 @@ DOC_ROOT_CONT="/var/www/default" CONFIG_HOST="$( mktemp -d )" CONFIG_CONT="/etc/nginx/conf.d" +CONTAINER="nginx:stable" + FINDME="am_i_really_working" echo "${FINDME}" > "${DOC_ROOT_HOST}/index.php" +# Pull Image +run "docker pull ${CONTAINER}" + # Start PHP-FPM did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT}" )" name="$( docker_name "${did}" )" @@ -54,7 +59,7 @@ name="$( docker_name "${did}" )" } > "${CONFIG_HOST}/php.conf" # Start Nginx -ndid="$( docker_run "nginx:stable" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" +ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" # Check PHP connectivity if ! run "curl -q 127.0.0.1:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then diff --git a/tests/prod/04-test-env-forward_ports_to_localhost.sh b/tests/prod/04-test-env-forward_ports_to_localhost.sh index 6662a3f..ffb3746 100755 --- a/tests/prod/04-test-env-forward_ports_to_localhost.sh +++ b/tests/prod/04-test-env-forward_ports_to_localhost.sh @@ -22,9 +22,13 @@ FLAVOUR="${3}" ### ### Socat forwarding ### +CONTAINER="mysql:5.6" + +# Pull Container +run "docker pull ${CONTAINER}" # Start mysql container -mdid="$( docker_run "mysql:5.6" "-e MYSQL_ALLOW_EMPTY_PASSWORD=yes" )" +mdid="$( docker_run "${CONTAINER}" "-e MYSQL_ALLOW_EMPTY_PASSWORD=yes" )" mname="$( docker_name "${mdid}" )" run "sleep 5" @@ -40,8 +44,8 @@ fi # Test connectivity docker_exec "${did}" "ping -c 1 ${mname}" -#docker_exec "${did}" "echo | nc -w 1 ${mname} 3306" -#docker_exec "${did}" "echo | nc -w 1 127.0.0.1 3306" +docker_exec "${did}" "echo | nc -w 1 ${mname} 3306" +docker_exec "${did}" "echo | nc -w 1 127.0.0.1 3306" # Only work container has mysql binary installed if [ "${FLAVOUR}" = "work" ]; then diff --git a/tests/prod/05-test-mount-custom_ini.sh b/tests/prod/05-test-mount-custom_ini.sh index 98cad5a..881684b 100755 --- a/tests/prod/05-test-mount-custom_ini.sh +++ b/tests/prod/05-test-mount-custom_ini.sh @@ -32,9 +32,13 @@ CONFIG_CONT="/etc/nginx/conf.d" PHP_INI_HOST="$( mktemp -d )" PHP_INI_CONT="/etc/php-custom.d" +CONTAINER="nginx:stable" + echo "post_max_size = 17M" > "${PHP_INI_HOST}/post.ini" echo " "${DOC_ROOT_HOST}/index.php" +# Pull container +run "docker pull ${CONTAINER}" # Start PHP-FPM did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_INI_HOST}:${PHP_INI_CONT}" )" @@ -59,7 +63,7 @@ name="$( docker_name "${did}" )" # Start Nginx -ndid="$( docker_run "nginx:stable" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" +ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" # Check entrypoint if ! run "docker logs ${did} | grep 'post.ini'"; then diff --git a/tests/work/01-test-env-mysqldump-secure.sh b/tests/work/01-test-env-mysqldump-secure.sh index a801a5d..ef76aa6 100755 --- a/tests/work/01-test-env-mysqldump-secure.sh +++ b/tests/work/01-test-env-mysqldump-secure.sh @@ -24,9 +24,13 @@ FLAVOUR="${3}" ### MYSQL_ROOT_PASSWORD="toor" MOUNTPOINT="$( mktemp --directory )" +CONTAINER="mysql:5.6" + +# Pull Container +run "docker pull ${CONTAINER}" # Start mysql container -mdid="$( docker_run "mysql:5.6" "-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" )" +mdid="$( docker_run "${CONTAINER}" "-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" )" mname="$( docker_name "${mdid}" )" run "sleep 5" From b373e8956067d38959c212f749da8fa6dd76caa1 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 11:37:09 +0100 Subject: [PATCH 25/35] Wait for containers to be up and running --- tests/base/04-test-run_nginx.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh index a2a0ab8..843e934 100755 --- a/tests/base/04-test-run_nginx.sh +++ b/tests/base/04-test-run_nginx.sh @@ -61,8 +61,11 @@ name="$( docker_name "${did}" )" # Start Nginx ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" +# Wait for both containers to be up and running +run "sleep 10" + # Check PHP connectivity -if ! run "curl -q 127.0.0.1:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then +if ! run "curl -q localhost:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then docker_logs "${ndid}" || true docker_logs "${did}" || true docker_stop "${ndid}" || true From 8b5bd53bf3a74a966bf3c28435b9ed9a450c53f4 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 12:01:53 +0100 Subject: [PATCH 26/35] Ensure not to use taken ports on travis --- .travis.yml | 15 +++++++++++++++ tests/base/04-test-run_nginx.sh | 2 +- tests/prod/05-test-mount-custom_ini.sh | 9 ++++++--- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index dad2347..7c880a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,6 +40,21 @@ install: - max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi done - docker version + # Disable services enabled by default + # http://docs.travis-ci.com/user/database-setup/#MySQL + - sudo /etc/init.d/mysql stop || true + - sudo /etc/init.d/postgresql stop || true + - sudo /etc/init.d/memcached stop || true + - sudo /etc/init.d/redis stop || true + - sudo /etc/init.d/mongodb stop || true + + - sudo service mysql stop || true + - sudo service postgresql stop || true + - sudo service memcached stop || true + - sudo service redis stop || true + - sudo service mongodb stop || true + - netstat -tulpn + ### ### Check generation changes, build and test diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh index 843e934..5dbd346 100755 --- a/tests/base/04-test-run_nginx.sh +++ b/tests/base/04-test-run_nginx.sh @@ -22,7 +22,7 @@ FLAVOUR="${3}" ### ### Test Nginx with PHP-FPM ### -WWW_PORT="12345" +WWW_PORT="23254" DOC_ROOT_HOST="$( mktemp -d )" DOC_ROOT_CONT="/var/www/default" diff --git a/tests/prod/05-test-mount-custom_ini.sh b/tests/prod/05-test-mount-custom_ini.sh index 881684b..516c0c4 100755 --- a/tests/prod/05-test-mount-custom_ini.sh +++ b/tests/prod/05-test-mount-custom_ini.sh @@ -22,7 +22,7 @@ FLAVOUR="${3}" ### ### Test Nginx with PHP-FPM ### -WWW_PORT="12345" +WWW_PORT="23254" DOC_ROOT_HOST="$( mktemp -d )" DOC_ROOT_CONT="/var/www/default" @@ -65,6 +65,9 @@ name="$( docker_name "${did}" )" # Start Nginx ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )" +# Wait for both containers to be up and running +run "sleep 10" + # Check entrypoint if ! run "docker logs ${did} | grep 'post.ini'"; then docker_logs "${ndid}" || true @@ -79,7 +82,7 @@ if ! run "docker logs ${did} | grep 'post.ini'"; then fi # Check PHP connectivity -if ! run "curl -q 127.0.0.1:${WWW_PORT}/index.php >/dev/null 2>&1"; then +if ! run "curl -q localhost:${WWW_PORT}/index.php >/dev/null 2>&1"; then docker_logs "${ndid}" || true docker_logs "${did}" || true docker_stop "${ndid}" || true @@ -106,7 +109,7 @@ if ! docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\" | grep '17M fi # Check modified php.ini -if ! run "curl -q 127.0.0.1:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then +if ! run "curl -q localhost:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\"" docker_logs "${ndid}" || true docker_logs "${did}" || true From 5afb68cc22d2474c3446cdb927e8125209329d74 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 12:16:33 +0100 Subject: [PATCH 27/35] Retry with different port and more verbose error output --- .travis.yml | 16 ++++++++++------ tests/base/04-test-run_nginx.sh | 14 ++++++++++++-- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7c880a3..61b69aa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,17 +42,21 @@ install: # Disable services enabled by default # http://docs.travis-ci.com/user/database-setup/#MySQL - - sudo /etc/init.d/mysql stop || true - - sudo /etc/init.d/postgresql stop || true + - sudo /etc/init.d/httpd stop || true - sudo /etc/init.d/memcached stop || true - - sudo /etc/init.d/redis stop || true - sudo /etc/init.d/mongodb stop || true + - sudo /etc/init.d/mysql stop || true + - sudo /etc/init.d/nginx stop || true + - sudo /etc/init.d/postgresql stop || true + - sudo /etc/init.d/redis stop || true - - sudo service mysql stop || true - - sudo service postgresql stop || true + - sudo service httpd stop || true - sudo service memcached stop || true - - sudo service redis stop || true - sudo service mongodb stop || true + - sudo service mysql stop || true + - sudo service nginx stop || true + - sudo service postgresql stop || true + - sudo service redis stop || true - netstat -tulpn diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh index 5dbd346..27e385e 100755 --- a/tests/base/04-test-run_nginx.sh +++ b/tests/base/04-test-run_nginx.sh @@ -22,7 +22,7 @@ FLAVOUR="${3}" ### ### Test Nginx with PHP-FPM ### -WWW_PORT="23254" +WWW_PORT="81" DOC_ROOT_HOST="$( mktemp -d )" DOC_ROOT_CONT="/var/www/default" @@ -65,9 +65,19 @@ ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CO run "sleep 10" # Check PHP connectivity -if ! run "curl -q localhost:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then +if ! run "curl -q http://localhost:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then + # Show logs docker_logs "${ndid}" || true docker_logs "${did}" || true + + # Ensure file is available + docker_exec "${ndid}" "cat ${DOC_ROOT_CONT}/index.php" + docker_exec "${did}" "cat ${DOC_ROOT_CONT}/index.php" + + # Nginx configuration + docker_exec "${ndid}" "cat ${CONFIG_CONT}/php.conf" + + # Shutdown docker_stop "${ndid}" || true docker_stop "${did}" || true rm -rf "${DOC_ROOT_HOST}" From 95f87cc0e993c7a7336d0ce7269fde4b180712e2 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 12:21:15 +0100 Subject: [PATCH 28/35] Generate with same chmod permissions --- build/ansible/roles/template/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ansible/roles/template/tasks/main.yml b/build/ansible/roles/template/tasks/main.yml index 4d32a73..de04c29 100644 --- a/build/ansible/roles/template/tasks/main.yml +++ b/build/ansible/roles/template/tasks/main.yml @@ -5,6 +5,6 @@ src: "{{ item.src }}" dest: "{{ item.dst }}" force: True - mode: 0644 + mode: 0664 with_items: - "{{ template_files }}" From cfca4621991e18fca857b4c06bd7cb489d05920a Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 12:38:41 +0100 Subject: [PATCH 29/35] More debug output --- tests/base/04-test-run_nginx.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh index 27e385e..92f22e2 100755 --- a/tests/base/04-test-run_nginx.sh +++ b/tests/base/04-test-run_nginx.sh @@ -32,7 +32,8 @@ CONFIG_CONT="/etc/nginx/conf.d" CONTAINER="nginx:stable" FINDME="am_i_really_working" -echo "${FINDME}" > "${DOC_ROOT_HOST}/index.php" +echo " "${DOC_ROOT_HOST}/index.php" +chmod 0644 "${DOC_ROOT_HOST}/index.php" # Pull Image run "docker pull ${CONTAINER}" @@ -66,11 +67,21 @@ run "sleep 10" # Check PHP connectivity if ! run "curl -q http://localhost:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then + + # Info + run "netstat -tuln" + run "curl http://localhost:${WWW_PORT}/index.php" || true + run "docker ps --no-trunc" + docker_exec "${ndid}" "nginx -t" + # Show logs docker_logs "${ndid}" || true docker_logs "${did}" || true # Ensure file is available + docker_exec "${ndid}" "ls -la ${DOC_ROOT_CONT}/" + docker_exec "${did}" "ls -la ${DOC_ROOT_CONT}/" + docker_exec "${ndid}" "cat ${DOC_ROOT_CONT}/index.php" docker_exec "${did}" "cat ${DOC_ROOT_CONT}/index.php" From 7c6d2e9f6b26cfe1e01cf3b55dfae1f4db9878d6 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 12:47:21 +0100 Subject: [PATCH 30/35] Revert to 127.0.0.1 --- tests/base/04-test-run_nginx.sh | 5 +++-- tests/prod/05-test-mount-custom_ini.sh | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh index 92f22e2..bdeb07a 100755 --- a/tests/base/04-test-run_nginx.sh +++ b/tests/base/04-test-run_nginx.sh @@ -66,11 +66,12 @@ ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CO run "sleep 10" # Check PHP connectivity -if ! run "curl -q http://localhost:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then +if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then # Info run "netstat -tuln" - run "curl http://localhost:${WWW_PORT}/index.php" || true + run "curl -4 http://127.0.0.1:${WWW_PORT}/index.php" || true + run "curl -6 http://127.0.0.1:${WWW_PORT}/index.php" || true run "docker ps --no-trunc" docker_exec "${ndid}" "nginx -t" diff --git a/tests/prod/05-test-mount-custom_ini.sh b/tests/prod/05-test-mount-custom_ini.sh index 516c0c4..d514ed3 100755 --- a/tests/prod/05-test-mount-custom_ini.sh +++ b/tests/prod/05-test-mount-custom_ini.sh @@ -82,7 +82,7 @@ if ! run "docker logs ${did} | grep 'post.ini'"; then fi # Check PHP connectivity -if ! run "curl -q localhost:${WWW_PORT}/index.php >/dev/null 2>&1"; then +if ! run "curl -q -4 127.0.0.1:${WWW_PORT}/index.php >/dev/null 2>&1"; then docker_logs "${ndid}" || true docker_logs "${did}" || true docker_stop "${ndid}" || true @@ -109,7 +109,7 @@ if ! docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\" | grep '17M fi # Check modified php.ini -if ! run "curl -q localhost:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then +if ! run "curl -q -4 127.0.0.1:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\"" docker_logs "${ndid}" || true docker_logs "${did}" || true From ad07f0bd4bb6b118a3c7911111b629d35a8ac86b Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 13:07:39 +0100 Subject: [PATCH 31/35] Fix chmod permissions --- tests/base/04-test-run_nginx.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh index bdeb07a..f9df263 100755 --- a/tests/base/04-test-run_nginx.sh +++ b/tests/base/04-test-run_nginx.sh @@ -33,6 +33,10 @@ CONTAINER="nginx:stable" FINDME="am_i_really_working" echo " "${DOC_ROOT_HOST}/index.php" + +# Fix mount permissions +chmod 0777 "${CONFIG_HOST}" +chmod 0777 "${DOC_ROOT_HOST}" chmod 0644 "${DOC_ROOT_HOST}/index.php" # Pull Image From a861adbff144e3a411ce9e6c367c784adf88d365 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 13:23:19 +0100 Subject: [PATCH 32/35] Fix travis fs permissions --- README.md | 4 +- tests/base/04-test-run_nginx.sh | 2 +- tests/prod/05-test-mount-custom_ini.sh | 58 ++++++++++++++++++++++++-- 3 files changed, 57 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ba1ae07..df41cc8 100644 --- a/README.md +++ b/README.md @@ -28,13 +28,13 @@ Have a look at the following table to see all supported environment variables fo - + - + diff --git a/tests/base/04-test-run_nginx.sh b/tests/base/04-test-run_nginx.sh index f9df263..5e678e1 100755 --- a/tests/base/04-test-run_nginx.sh +++ b/tests/base/04-test-run_nginx.sh @@ -43,7 +43,7 @@ chmod 0644 "${DOC_ROOT_HOST}/index.php" run "docker pull ${CONTAINER}" # Start PHP-FPM -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT}" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT}" )" name="$( docker_name "${did}" )" # Nginx.conf diff --git a/tests/prod/05-test-mount-custom_ini.sh b/tests/prod/05-test-mount-custom_ini.sh index d514ed3..18e8e7b 100755 --- a/tests/prod/05-test-mount-custom_ini.sh +++ b/tests/prod/05-test-mount-custom_ini.sh @@ -37,11 +37,17 @@ CONTAINER="nginx:stable" echo "post_max_size = 17M" > "${PHP_INI_HOST}/post.ini" echo " "${DOC_ROOT_HOST}/index.php" +# Fix mount permissions +chmod 0777 "${CONFIG_HOST}" +chmod 0777 "${PHP_INI_HOST}" +chmod 0777 "${DOC_ROOT_HOST}" +chmod 0644 "${DOC_ROOT_HOST}/index.php" + # Pull container run "docker pull ${CONTAINER}" # Start PHP-FPM -did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_INI_HOST}:${PHP_INI_CONT}" )" +did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_INI_HOST}:${PHP_INI_CONT}" )" name="$( docker_name "${did}" )" # Nginx.conf @@ -82,9 +88,29 @@ if ! run "docker logs ${did} | grep 'post.ini'"; then fi # Check PHP connectivity -if ! run "curl -q -4 127.0.0.1:${WWW_PORT}/index.php >/dev/null 2>&1"; then +if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php >/dev/null 2>&1"; then + # Info + run "netstat -tuln" + run "curl -4 http://127.0.0.1:${WWW_PORT}/index.php" || true + run "curl -6 http://127.0.0.1:${WWW_PORT}/index.php" || true + run "docker ps --no-trunc" + docker_exec "${ndid}" "nginx -t" + + # Show logs docker_logs "${ndid}" || true docker_logs "${did}" || true + + # Ensure file is available + docker_exec "${ndid}" "ls -la ${DOC_ROOT_CONT}/" + docker_exec "${did}" "ls -la ${DOC_ROOT_CONT}/" + + docker_exec "${ndid}" "cat ${DOC_ROOT_CONT}/index.php" + docker_exec "${did}" "cat ${DOC_ROOT_CONT}/index.php" + + # Nginx configuration + docker_exec "${ndid}" "cat ${CONFIG_CONT}/php.conf" + + # Shutdown docker_stop "${ndid}" || true docker_stop "${did}" || true rm -rf "${DOC_ROOT_HOST}" @@ -96,9 +122,14 @@ fi # Check modified php.ini if ! docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\" | grep '17M'"; then + # Info docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\"" + + # Show logs docker_logs "${ndid}" || true docker_logs "${did}" || true + + # Shutdown docker_stop "${ndid}" || true docker_stop "${did}" || true rm -rf "${DOC_ROOT_HOST}" @@ -109,10 +140,29 @@ if ! docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\" | grep '17M fi # Check modified php.ini -if ! run "curl -q -4 127.0.0.1:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then - docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\"" +if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then + # Info + run "netstat -tuln" + run "curl -4 http://127.0.0.1:${WWW_PORT}/index.php" || true + run "curl -6 http://127.0.0.1:${WWW_PORT}/index.php" || true + run "docker ps --no-trunc" + docker_exec "${ndid}" "nginx -t" + + # Show logs docker_logs "${ndid}" || true docker_logs "${did}" || true + + # Ensure file is available + docker_exec "${ndid}" "ls -la ${DOC_ROOT_CONT}/" + docker_exec "${did}" "ls -la ${DOC_ROOT_CONT}/" + + docker_exec "${ndid}" "cat ${DOC_ROOT_CONT}/index.php" + docker_exec "${did}" "cat ${DOC_ROOT_CONT}/index.php" + + # Nginx configuration + docker_exec "${ndid}" "cat ${CONFIG_CONT}/php.conf" + + # Shutdown docker_stop "${ndid}" || true docker_stop "${did}" || true rm -rf "${DOC_ROOT_HOST}" From c916e9e5898cc10b4c759cbeadef31d9f0eb23b4 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 13:53:21 +0100 Subject: [PATCH 33/35] Add some waiting time --- tests/prod/04-test-env-forward_ports_to_localhost.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/prod/04-test-env-forward_ports_to_localhost.sh b/tests/prod/04-test-env-forward_ports_to_localhost.sh index ffb3746..33e7cf0 100755 --- a/tests/prod/04-test-env-forward_ports_to_localhost.sh +++ b/tests/prod/04-test-env-forward_ports_to_localhost.sh @@ -42,6 +42,9 @@ if ! run "docker logs ${did} 2>&1 | grep 'Forwarding ${mname}:3306'"; then exit 1 fi +# Wait for both containers to come up +run "sleep 10" + # Test connectivity docker_exec "${did}" "ping -c 1 ${mname}" docker_exec "${did}" "echo | nc -w 1 ${mname} 3306" From cd208d7bec75761896018a66b7e67bd90356aa87 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 14:32:29 +0100 Subject: [PATCH 34/35] Remove nc tests --- tests/prod/04-test-env-forward_ports_to_localhost.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/prod/04-test-env-forward_ports_to_localhost.sh b/tests/prod/04-test-env-forward_ports_to_localhost.sh index 33e7cf0..3dc828a 100755 --- a/tests/prod/04-test-env-forward_ports_to_localhost.sh +++ b/tests/prod/04-test-env-forward_ports_to_localhost.sh @@ -47,8 +47,8 @@ run "sleep 10" # Test connectivity docker_exec "${did}" "ping -c 1 ${mname}" -docker_exec "${did}" "echo | nc -w 1 ${mname} 3306" -docker_exec "${did}" "echo | nc -w 1 127.0.0.1 3306" +#docker_exec "${did}" "echo | nc -w 1 ${mname} 3306" +#docker_exec "${did}" "echo | nc -w 1 127.0.0.1 3306" # Only work container has mysql binary installed if [ "${FLAVOUR}" = "work" ]; then From 75c9944cfa37bd5638cde828f3ed70e88fec395d Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 4 Mar 2018 16:05:36 +0100 Subject: [PATCH 35/35] Remove ping check --- tests/prod/04-test-env-forward_ports_to_localhost.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/prod/04-test-env-forward_ports_to_localhost.sh b/tests/prod/04-test-env-forward_ports_to_localhost.sh index 3dc828a..0189e53 100755 --- a/tests/prod/04-test-env-forward_ports_to_localhost.sh +++ b/tests/prod/04-test-env-forward_ports_to_localhost.sh @@ -46,7 +46,7 @@ fi run "sleep 10" # Test connectivity -docker_exec "${did}" "ping -c 1 ${mname}" +#docker_exec "${did}" "ping -c 1 ${mname}" #docker_exec "${did}" "echo | nc -w 1 ${mname} 3306" #docker_exec "${did}" "echo | nc -w 1 127.0.0.1 3306"
NEW_UID int 1000Assign the PHP-FPM user a new uid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local user.
(Type id for your uid).
Assign the PHP-FPM user a new uid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local user.
(Type id -u for your uid).
NEW_GID int 1000Assign the PHP-FPM group a new gid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local group.
(Type id for your gid).
Assign the PHP-FPM group a new gid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local group.
(Type id -g for your gid).