diff --git a/.github/workflows/php-ci.yml b/.github/workflows/php-ci.yml index 3f204aa..7d1f0e4 100644 --- a/.github/workflows/php-ci.yml +++ b/.github/workflows/php-ci.yml @@ -62,14 +62,11 @@ jobs: build: - name: "[ ${{ matrix.version }} ]" + name: "[ PHP-${{ matrix.version }} ]" runs-on: ubuntu-latest strategy: fail-fast: False matrix: - # Adding all targets and only run them if they exist. - # Prevents us from forgetting to update this in case - # we add new envs in terragrunt. version: - '5.2' - '5.3' @@ -88,7 +85,7 @@ jobs: # Checkout repository # ------------------------------------------------------------ - name: Checkout repository - uses: actions/checkout@v1 + uses: actions/checkout@v2 - name: Set variables id: vars @@ -105,7 +102,6 @@ jobs: GIT_SLUG="${GITHUB_REF/refs\/heads\//}" fi fi - # Export variable # # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#set-an-environment-variable-set-env echo ::set-env name=GIT_TYPE::${GIT_TYPE} @@ -121,16 +117,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make build-base VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 - name: Test Base run: | @@ -138,16 +136,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make test-base VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # ------------------------------------------------------------ @@ -159,16 +159,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make build-mods VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 - name: Test Mods run: | @@ -176,16 +178,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make test-mods VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # ------------------------------------------------------------ @@ -197,16 +201,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make build-prod VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 - name: Test Prod run: | @@ -214,16 +220,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make test-prod VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # ------------------------------------------------------------ @@ -235,16 +243,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make build-work VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 - name: Test Work run: | @@ -252,16 +262,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make test-work VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # ------------------------------------------------------------ @@ -278,7 +290,6 @@ jobs: # ------------------------------------------------------------ # Push build artifacts # ------------------------------------------------------------ - # Only run this, if the PR was created by the repo owner - name: Publish images (only repo owner) run: | @@ -286,9 +297,11 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } @@ -321,7 +334,7 @@ jobs: fi env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id && ( diff --git a/.github/workflows/php-nightly.yml b/.github/workflows/php-nightly.yml index 5cd1121..4810a52 100644 --- a/.github/workflows/php-nightly.yml +++ b/.github/workflows/php-nightly.yml @@ -62,14 +62,11 @@ jobs: build: - name: "[ ${{ matrix.version }} ]" + name: "[ PHP-${{ matrix.version }} (ref: ${{ matrix.refs }}) ]" runs-on: ubuntu-latest strategy: fail-fast: False matrix: - # Adding all targets and only run them if they exist. - # Prevents us from forgetting to update this in case - # we add new envs in terragrunt. version: - '5.2' - '5.3' @@ -82,30 +79,34 @@ jobs: - '7.3' - '7.4' - '8.0' + refs: + - 'master' + - '0.111' + - '0.112' steps: # ------------------------------------------------------------ # Checkout repository # ------------------------------------------------------------ - name: Checkout repository - uses: actions/checkout@v1 + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: ${{ matrix.refs }} - name: Set variables id: vars run: | # Set git branch or git tag as slug - if [[ ${GITHUB_REF} =~ ^refs\/tags\/ ]]; then + if [ -n "$( git tag --points-at HEAD )" ]; then GIT_TYPE=TAG - GIT_SLUG="${GITHUB_REF/refs\/tags\//}" - else + GIT SLUG="$( git tag --points-at HEAD )" + elif [ "$( git rev-parse --abbrev-ref HEAD )" != "HEAD" ]; then GIT_TYPE=BRANCH - if [ -n "${GITHUB_HEAD_REF}" ]; then - GIT_SLUG="${GITHUB_HEAD_REF}" - else - GIT_SLUG="${GITHUB_REF/refs\/heads\//}" - fi + GIT SLUG="$( git rev-parse --abbrev-ref HEAD )" + else + false fi - # Export variable # # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#set-an-environment-variable-set-env echo ::set-env name=GIT_TYPE::${GIT_TYPE} @@ -121,16 +122,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make build-base VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 - name: Test Base run: | @@ -138,16 +141,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make test-base VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # ------------------------------------------------------------ @@ -159,16 +164,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make build-mods VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 - name: Test Mods run: | @@ -176,16 +183,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make test-mods VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # ------------------------------------------------------------ @@ -197,16 +206,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make build-prod VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 - name: Test Prod run: | @@ -214,16 +225,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make test-prod VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # ------------------------------------------------------------ @@ -235,16 +248,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make build-work VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 - name: Test Work run: | @@ -252,16 +267,18 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } retry make test-work VERSION=${VERSION} env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # ------------------------------------------------------------ @@ -278,7 +295,6 @@ jobs: # ------------------------------------------------------------ # Push build artifacts # ------------------------------------------------------------ - # Only run this, if the PR was created by the repo owner - name: Publish images (only repo owner) run: | @@ -286,9 +302,11 @@ jobs: for n in $(seq ${RETRIES}); do echo "[${n}/${RETRIES}] ${*}"; if eval "${*}"; then + echo "[SUCC] ${n}/${RETRIES}"; return 0; fi; - sleep 10; + sleep 2; + echo "[FAIL] ${n}/${RETRIES}"; done; return 1; } @@ -321,7 +339,7 @@ jobs: fi env: VERSION: ${{ matrix.version }} - RETRIES: 5 + RETRIES: 20 # https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id && ( diff --git a/.github/workflows/schedule.yml b/.github/workflows/schedule.yml deleted file mode 100644 index 8bc7efc..0000000 --- a/.github/workflows/schedule.yml +++ /dev/null @@ -1,97 +0,0 @@ ---- - -name: schedule - -on: - schedule: - - cron: '*/5 * * * *' - -jobs: - build: - name: "[ PHP-${{ matrix.version }} (ref: ${{ matrix.refs }}) ]" - runs-on: ubuntu-latest - strategy: - fail-fast: False - matrix: - version: - - '5.2' - - '5.3' - - '5.4' - - '5.5' - - '5.6' - - '7.0' - - '7.1' - - '7.2' - - '7.3' - - '7.4' - - '8.0' - refs: - - 'master' - - '0.110' - steps: - - name: Checkout repository - uses: actions/checkout@v2 - with: - fetch-depth: 0 - ref: ${{ matrix.refs }} - - - name: Show git info - run: | - git branch - git log | head - - - name: Set variables - id: vars - run: | - if [ -n "$( git tag --points-at HEAD )" ]; then - GIT_TYPE=TAG - GIT_SLUG="$( git tag --points-at HEAD )" - elif [ "$( git rev-parse --abbrev-ref HEAD )" != "HEAD" ]; then - GIT_TYPE=BRANCH - GIT_SLUG="$( git rev-parse --abbrev-ref HEAD )" - else - false - fi - echo ::set-env name=GIT_TYPE::${GIT_TYPE} - echo ::set-env name=GIT_SLUG::${GIT_SLUG} - - - name: Publish images (only repo owner) - run: | - retry() { - for n in $(seq ${RETRIES}); do - echo "[${n}/${RETRIES}] ${*}"; - if eval "${*}"; then - return 0; - fi; - sleep 10; - done; - return 1; - } - - # Info output - echo "Git Type: ${GIT_TYPE}" - echo "Git Slug: ${GIT_SLUG}" - # Login - echo "retry make login USER= PASS=" - # Push - if [ "${GIT_TYPE}" = "TAG" ]; then - echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}" - echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}" - echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}" - echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}" - else - if [ "${GIT_SLUG}" = "master" ]; then - echo "retry make push-base VERSION=${VERSION}" - echo "retry make push-mods VERSION=${VERSION}" - echo "retry make push-prod VERSION=${VERSION}" - echo "retry make push-work VERSION=${VERSION}" - else - echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}" - echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}" - echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}" - echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}" - fi - fi - env: - VERSION: ${{ matrix.version }} - RETRIES: 5 diff --git a/.travis.yml b/.travis.yml index 4be2175..21ca3f1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,10 +69,6 @@ install: ### Check generation changes, build and test ### before_script: - # Regenerate Dockerfiles and make sure nothing has changed (every stage) - - make gen-dockerfiles - - git diff --quiet || { echo "Build Changes"; git diff; git status; false; } - # Build (multiple tries due to network outages) - retry make build-base VERSION=${PHP} #- retry make test-base VERSION=${PHP} @@ -86,54 +82,50 @@ before_script: - retry make build-work VERSION=${PHP} - retry make test-work VERSION=${PHP} - # Test if PHP modules have changed - - make gen-readme VERSION=${PHP} - - git diff --quiet || { echo "Build Changes"; git diff; git status; false; } - ### ### Push to Dockerhub ### script: - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then - make login USERNAME="${DOCKER_USERNAME}" PASSWORD="${DOCKER_PASSWORD}"; + retry make login USERNAME="${DOCKER_USERNAME}" PASSWORD="${DOCKER_PASSWORD}"; if [ "${TRAVIS_BRANCH}" == "master" ]; then echo "Pushing latest"; - make push TAG="${PHP}-base" && - make push TAG="${PHP}-mods" && - make push TAG="${PHP}-prod" && - make push TAG="${PHP}-work"; + retry make push TAG="${PHP}-base" && + retry make push TAG="${PHP}-mods" && + retry make push TAG="${PHP}-prod" && + retry make push TAG="${PHP}-work"; elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then echo "Pushing branch ${TRAVIS_BRANCH}"; - make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${TRAVIS_BRANCH}" && - make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${TRAVIS_BRANCH}" && - make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${TRAVIS_BRANCH}" && - make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${TRAVIS_BRANCH}" && - make push TAG="${PHP}-base-${TRAVIS_BRANCH}" && - make push TAG="${PHP}-mods-${TRAVIS_BRANCH}" && - make push TAG="${PHP}-prod-${TRAVIS_BRANCH}" && - make push TAG="${PHP}-work-${TRAVIS_BRANCH}"; + retry make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${TRAVIS_BRANCH}" && + retry make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${TRAVIS_BRANCH}" && + retry make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${TRAVIS_BRANCH}" && + retry make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${TRAVIS_BRANCH}" && + retry make push TAG="${PHP}-base-${TRAVIS_BRANCH}" && + retry make push TAG="${PHP}-mods-${TRAVIS_BRANCH}" && + retry make push TAG="${PHP}-prod-${TRAVIS_BRANCH}" && + retry make push TAG="${PHP}-work-${TRAVIS_BRANCH}"; elif [ -n "${TRAVIS_TAG}" ]; then echo "Pushing tag ${TRAVIS_TAG}"; - make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${TRAVIS_TAG}" && - make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${TRAVIS_TAG}" && - make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${TRAVIS_TAG}" && - make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${TRAVIS_TAG}" && - make push TAG="${PHP}-base-${TRAVIS_TAG}" && - make push TAG="${PHP}-mods-${TRAVIS_TAG}" && - make push TAG="${PHP}-prod-${TRAVIS_TAG}" && - make push TAG="${PHP}-work-${TRAVIS_TAG}"; + retry make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${TRAVIS_TAG}" && + retry make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${TRAVIS_TAG}" && + retry make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${TRAVIS_TAG}" && + retry make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${TRAVIS_TAG}" && + retry make push TAG="${PHP}-base-${TRAVIS_TAG}" && + retry make push TAG="${PHP}-mods-${TRAVIS_TAG}" && + retry make push TAG="${PHP}-prod-${TRAVIS_TAG}" && + retry make push TAG="${PHP}-work-${TRAVIS_TAG}"; elif [ "${TRAVIS_EVENT_TYPE}" = "cron" ]; then if MY_TAG="$( git describe --exact-match "$(git rev-parse HEAD)" 2>/dev/null )"; then echo "Pushing cron tag ${MY_TAG}"; - make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${MY_TAG}" && - make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${MY_TAG}" && - make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${MY_TAG}" && - make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${MY_TAG}" && - make push TAG="${PHP}-base-${MY_TAG}" && - make push TAG="${PHP}-mods-${MY_TAG}" && - make push TAG="${PHP}-prod-${MY_TAG}" && - make push TAG="${PHP}-work-${MY_TAG}"; + retry make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${MY_TAG}" && + retry make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${MY_TAG}" && + retry make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${MY_TAG}" && + retry make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${MY_TAG}" && + retry make push TAG="${PHP}-base-${MY_TAG}" && + retry make push TAG="${PHP}-mods-${MY_TAG}" && + retry make push TAG="${PHP}-prod-${MY_TAG}" && + retry make push TAG="${PHP}-work-${MY_TAG}"; fi else echo "Skipping push to dockerhub on normal branches"; diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b05541..5e4679c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ ## Unreleased +## Release 0.112 + +#### Fixed +- Fixes [166](https://github.com/devilbox/docker-php-fpm/issues/166) Missing `locale-gen` binary + +#### Added +- Added vips extension +- Added xlswriter extension + + ## Release 0.111 #### Added diff --git a/Dockerfiles/mods/Dockerfile-5.2 b/Dockerfiles/mods/Dockerfile-5.2 index ff590c8..64e34b5 100644 --- a/Dockerfiles/mods/Dockerfile-5.2 +++ b/Dockerfiles/mods/Dockerfile-5.2 @@ -561,6 +561,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ diff --git a/Dockerfiles/mods/Dockerfile-5.3 b/Dockerfiles/mods/Dockerfile-5.3 index 32214ac..333bd98 100644 --- a/Dockerfiles/mods/Dockerfile-5.3 +++ b/Dockerfiles/mods/Dockerfile-5.3 @@ -672,6 +672,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index 27d93b2..666cb34 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -691,6 +691,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index a159537..24f1d87 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -704,6 +704,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 index 4b01ad6..6cc8300 100644 --- a/Dockerfiles/mods/Dockerfile-5.6 +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -720,6 +720,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 index 1356589..e7c47fc 100644 --- a/Dockerfiles/mods/Dockerfile-7.0 +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -10,42 +10,57 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ alien \ + fftw-dev \ firebird-dev \ freetds-dev \ ghostscript \ + gobject-introspection \ + gtk-doc-tools \ libaio-dev \ libbz2-dev \ libc-client-dev \ libcurl4-openssl-dev \ libenchant-dev \ libevent-dev \ + libexif-dev \ + libexpat1-dev \ libfbclient2 \ + libfftw3-dev \ libfreetype6-dev \ + libgif-dev \ + libglib2.0-dev \ libgmp-dev \ libib-util \ libicu-dev \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + libmagick++-dev \ + libmagickcore-6.q16-dev \ libmagickwand-dev \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ libpcre3-dev \ libpng-dev \ + libpoppler-glib-dev \ libpq-dev \ libpspell-dev \ librabbitmq-dev \ librdkafka-dev \ librecode-dev \ + librsvg2-dev \ libsasl2-dev \ libsnmp-dev \ libssh2-1-dev \ libssl-dev \ libtidy-dev \ + libtool \ libvpx-dev \ libwebp-dev \ libwebp6 \ + libwebpdemux2 \ + libwebpmux2 \ libxml2-dev \ libxpm-dev \ libxslt-dev \ @@ -659,6 +674,26 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: vips -------------------- +RUN set -eux \ + # Generic pre-command + && git clone https://github.com/libvips/libvips /tmp/libvips \ +&& cd /tmp/libvips \ +&& ./autogen.sh \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ +&& cd /tmp \ +&& rm -rf /tmp/libvips \ + \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install vips \ + # Enabling + && docker-php-ext-enable vips \ + && true + + # -------------------- Installing PHP Extension: wddx -------------------- RUN set -eux \ # Installation: Generic @@ -698,6 +733,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Version specific @@ -766,6 +812,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ @@ -775,29 +823,46 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + fftw2 \ ghostscript \ + gir1.2-poppler-0.18 \ + imagemagick-6.q16 \ libaio1 \ libaspell15 \ libc-client2007e \ libenchant1c2a \ + libexif12 \ + libexpat1 \ libfbclient2 \ + libfftw3-3 \ libfreetype6 \ + libgif7 \ + libglib2.0-0 \ libicu57 \ libjpeg62-turbo \ + libmagick++-6.q16-7 \ + libmagick++-6.q16hdri-7 \ + libmagickcore-6.q16-3 \ + libmagickcore-6.q16-3-extra \ libmagickwand-6.q16-3 \ + libmagickwand-6.q16hdri-3 \ libmcrypt4 \ libmemcachedutil2 \ libnghttp2-14 \ libpng16-16 \ + libpoppler-glib8 \ libpq5 \ librabbitmq4 \ librdkafka1 \ librecode0 \ + librsvg2-2 \ libssh2-1 \ libsybdb5 \ libtidy5 \ libvpx4 \ libwebp6 \ + libwebpdemux2 \ + libwebpmux2 \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ @@ -1004,6 +1069,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^tokenizer$' \ && php -m | grep -oiE '^uploadprogress$' \ && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^vips$' \ + && php-fpm -m | grep -oiE '^vips$' \ && php -m | grep -oiE '^wddx$' \ && php-fpm -m | grep -oiE '^wddx$' \ && php -m | grep -oiE '^xdebug$' \ @@ -1018,6 +1085,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xsl$' \ && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xlswriter$' \ + && php-fpm -m | grep -oiE '^xlswriter$' \ && php -m | grep -oiE '^yaml$' \ && php-fpm -m | grep -oiE '^yaml$' \ && php -m | grep -oiE '^zip$' \ diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 index f5acc5a..4f421f6 100644 --- a/Dockerfiles/mods/Dockerfile-7.1 +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -10,42 +10,58 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ alien \ + fftw-dev \ firebird-dev \ freetds-dev \ ghostscript \ + gobject-introspection \ + gtk-doc-tools \ libaio-dev \ libbz2-dev \ libc-client-dev \ libcurl4-openssl-dev \ libenchant-dev \ libevent-dev \ + libexif-dev \ + libexpat1-dev \ libfbclient2 \ + libfftw3-dev \ libfreetype6-dev \ + libgif-dev \ + libglib2.0-dev \ libgmp-dev \ libib-util \ libicu-dev \ + libimagequant-dev \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + libmagick++-dev \ + libmagickcore-6.q16-dev \ libmagickwand-dev \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ libpcre3-dev \ libpng-dev \ + libpoppler-glib-dev \ libpq-dev \ libpspell-dev \ librabbitmq-dev \ librdkafka-dev \ librecode-dev \ + librsvg2-dev \ libsasl2-dev \ libsnmp-dev \ libssh2-1-dev \ libssl-dev \ libtidy-dev \ + libtool \ libvpx-dev \ libwebp-dev \ libwebp6 \ + libwebpdemux2 \ + libwebpmux3 \ libxml2-dev \ libxpm-dev \ libxslt-dev \ @@ -668,6 +684,26 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: vips -------------------- +RUN set -eux \ + # Generic pre-command + && git clone https://github.com/libvips/libvips /tmp/libvips \ +&& cd /tmp/libvips \ +&& ./autogen.sh \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ +&& cd /tmp \ +&& rm -rf /tmp/libvips \ + \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install vips \ + # Enabling + && docker-php-ext-enable vips \ + && true + + # -------------------- Installing PHP Extension: wddx -------------------- RUN set -eux \ # Installation: Generic @@ -707,6 +743,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -775,6 +822,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ @@ -784,30 +833,48 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + fftw2 \ ghostscript \ + gir1.2-poppler-0.18 \ + imagemagick-6.q16 \ libaio1 \ libaspell15 \ libc-client2007e \ libenchant1c2a \ + libexif12 \ + libexpat1 \ libfbclient2 \ + libfftw3-3 \ libfreetype6 \ + libgif7 \ + libglib2.0-0 \ libicu63 \ + libimagequant0 \ libjpeg62-turbo \ + libmagick++-6.q16-8 \ + libmagick++-6.q16hdri-8 \ + libmagickcore-6.q16-6 \ + libmagickcore-6.q16-6-extra \ libmagickwand-6.q16-6 \ + libmagickwand-6.q16hdri-6 \ libmcrypt4 \ libmemcachedutil2 \ libnghttp2-14 \ libpng16-16 \ + libpoppler-glib8 \ libpq5 \ librabbitmq4 \ librdkafka1 \ librecode0 \ + librsvg2-2 \ libssh2-1 \ libsybdb5 \ libtidy5deb1 \ libvpx5 \ libwebp-dev \ libwebp6 \ + libwebpdemux2 \ + libwebpmux3 \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ @@ -1016,6 +1083,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^tokenizer$' \ && php -m | grep -oiE '^uploadprogress$' \ && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^vips$' \ + && php-fpm -m | grep -oiE '^vips$' \ && php -m | grep -oiE '^wddx$' \ && php-fpm -m | grep -oiE '^wddx$' \ && php -m | grep -oiE '^xdebug$' \ @@ -1030,6 +1099,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xsl$' \ && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xlswriter$' \ + && php-fpm -m | grep -oiE '^xlswriter$' \ && php -m | grep -oiE '^yaml$' \ && php-fpm -m | grep -oiE '^yaml$' \ && php -m | grep -oiE '^zip$' \ diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 index c0fbed4..1e5e404 100644 --- a/Dockerfiles/mods/Dockerfile-7.2 +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -10,42 +10,58 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ alien \ + fftw-dev \ firebird-dev \ freetds-dev \ ghostscript \ + gobject-introspection \ + gtk-doc-tools \ libaio-dev \ libbz2-dev \ libc-client-dev \ libcurl4-openssl-dev \ libenchant-dev \ libevent-dev \ + libexif-dev \ + libexpat1-dev \ libfbclient2 \ + libfftw3-dev \ libfreetype6-dev \ + libgif-dev \ + libglib2.0-dev \ libgmp-dev \ libib-util \ libicu-dev \ + libimagequant-dev \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + libmagick++-dev \ + libmagickcore-6.q16-dev \ libmagickwand-dev \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ libpcre3-dev \ libpng-dev \ + libpoppler-glib-dev \ libpq-dev \ libpspell-dev \ librabbitmq-dev \ librdkafka-dev \ librecode-dev \ + librsvg2-dev \ libsasl2-dev \ libsnmp-dev \ libssh2-1-dev \ libssl-dev \ libtidy-dev \ + libtool \ libvpx-dev \ libwebp-dev \ libwebp6 \ + libwebpdemux2 \ + libwebpmux3 \ libxml2-dev \ libxpm-dev \ libxslt-dev \ @@ -672,6 +688,26 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: vips -------------------- +RUN set -eux \ + # Generic pre-command + && git clone https://github.com/libvips/libvips /tmp/libvips \ +&& cd /tmp/libvips \ +&& ./autogen.sh \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ +&& cd /tmp \ +&& rm -rf /tmp/libvips \ + \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install vips \ + # Enabling + && docker-php-ext-enable vips \ + && true + + # -------------------- Installing PHP Extension: wddx -------------------- RUN set -eux \ # Installation: Generic @@ -711,6 +747,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -779,6 +826,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ @@ -788,30 +837,48 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + fftw2 \ ghostscript \ + gir1.2-poppler-0.18 \ + imagemagick-6.q16 \ libaio1 \ libaspell15 \ libc-client2007e \ libenchant1c2a \ + libexif12 \ + libexpat1 \ libfbclient2 \ + libfftw3-3 \ libfreetype6 \ + libgif7 \ + libglib2.0-0 \ libicu63 \ + libimagequant0 \ libjpeg62-turbo \ + libmagick++-6.q16-8 \ + libmagick++-6.q16hdri-8 \ + libmagickcore-6.q16-6 \ + libmagickcore-6.q16-6-extra \ libmagickwand-6.q16-6 \ + libmagickwand-6.q16hdri-6 \ libmcrypt4 \ libmemcachedutil2 \ libnghttp2-14 \ libpng16-16 \ + libpoppler-glib8 \ libpq5 \ librabbitmq4 \ librdkafka1 \ librecode0 \ + librsvg2-2 \ libssh2-1 \ libsybdb5 \ libtidy5deb1 \ libvpx5 \ libwebp-dev \ libwebp6 \ + libwebpdemux2 \ + libwebpmux3 \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ @@ -1022,6 +1089,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^tokenizer$' \ && php -m | grep -oiE '^uploadprogress$' \ && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^vips$' \ + && php-fpm -m | grep -oiE '^vips$' \ && php -m | grep -oiE '^wddx$' \ && php-fpm -m | grep -oiE '^wddx$' \ && php -m | grep -oiE '^xdebug$' \ @@ -1036,6 +1105,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xsl$' \ && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xlswriter$' \ + && php-fpm -m | grep -oiE '^xlswriter$' \ && php -m | grep -oiE '^yaml$' \ && php-fpm -m | grep -oiE '^yaml$' \ && php -m | grep -oiE '^zip$' \ diff --git a/Dockerfiles/mods/Dockerfile-7.3 b/Dockerfiles/mods/Dockerfile-7.3 index a50039e..af25859 100644 --- a/Dockerfiles/mods/Dockerfile-7.3 +++ b/Dockerfiles/mods/Dockerfile-7.3 @@ -10,42 +10,58 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ alien \ + fftw-dev \ firebird-dev \ freetds-dev \ ghostscript \ + gobject-introspection \ + gtk-doc-tools \ libaio-dev \ libbz2-dev \ libc-client-dev \ libcurl4-openssl-dev \ libenchant-dev \ libevent-dev \ + libexif-dev \ + libexpat1-dev \ libfbclient2 \ + libfftw3-dev \ libfreetype6-dev \ + libgif-dev \ + libglib2.0-dev \ libgmp-dev \ libib-util \ libicu-dev \ + libimagequant-dev \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + libmagick++-dev \ + libmagickcore-6.q16-dev \ libmagickwand-dev \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ libpcre3-dev \ libpng-dev \ + libpoppler-glib-dev \ libpq-dev \ libpspell-dev \ librabbitmq-dev \ librdkafka-dev \ librecode-dev \ + librsvg2-dev \ libsasl2-dev \ libsnmp-dev \ libssh2-1-dev \ libssl-dev \ libtidy-dev \ + libtool \ libvpx-dev \ libwebp-dev \ libwebp6 \ + libwebpdemux2 \ + libwebpmux3 \ libxml2-dev \ libxpm-dev \ libxslt-dev \ @@ -672,6 +688,26 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: vips -------------------- +RUN set -eux \ + # Generic pre-command + && git clone https://github.com/libvips/libvips /tmp/libvips \ +&& cd /tmp/libvips \ +&& ./autogen.sh \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ +&& cd /tmp \ +&& rm -rf /tmp/libvips \ + \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install vips \ + # Enabling + && docker-php-ext-enable vips \ + && true + + # -------------------- Installing PHP Extension: wddx -------------------- RUN set -eux \ # Installation: Generic @@ -711,6 +747,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -779,6 +826,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ @@ -788,30 +837,48 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + fftw2 \ ghostscript \ + gir1.2-poppler-0.18 \ + imagemagick-6.q16 \ libaio1 \ libaspell15 \ libc-client2007e \ libenchant1c2a \ + libexif12 \ + libexpat1 \ libfbclient2 \ + libfftw3-3 \ libfreetype6 \ + libgif7 \ + libglib2.0-0 \ libicu63 \ + libimagequant0 \ libjpeg62-turbo \ + libmagick++-6.q16-8 \ + libmagick++-6.q16hdri-8 \ + libmagickcore-6.q16-6 \ + libmagickcore-6.q16-6-extra \ libmagickwand-6.q16-6 \ + libmagickwand-6.q16hdri-6 \ libmcrypt4 \ libmemcachedutil2 \ libnghttp2-14 \ libpng16-16 \ + libpoppler-glib8 \ libpq5 \ librabbitmq4 \ librdkafka1 \ librecode0 \ + librsvg2-2 \ libssh2-1 \ libsybdb5 \ libtidy5deb1 \ libvpx5 \ libwebp-dev \ libwebp6 \ + libwebpdemux2 \ + libwebpmux3 \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ @@ -1022,6 +1089,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^tokenizer$' \ && php -m | grep -oiE '^uploadprogress$' \ && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^vips$' \ + && php-fpm -m | grep -oiE '^vips$' \ && php -m | grep -oiE '^wddx$' \ && php-fpm -m | grep -oiE '^wddx$' \ && php -m | grep -oiE '^xdebug$' \ @@ -1036,6 +1105,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xsl$' \ && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xlswriter$' \ + && php-fpm -m | grep -oiE '^xlswriter$' \ && php -m | grep -oiE '^yaml$' \ && php-fpm -m | grep -oiE '^yaml$' \ && php -m | grep -oiE '^zip$' \ diff --git a/Dockerfiles/mods/Dockerfile-7.4 b/Dockerfiles/mods/Dockerfile-7.4 index 81d76c4..b71d651 100644 --- a/Dockerfiles/mods/Dockerfile-7.4 +++ b/Dockerfiles/mods/Dockerfile-7.4 @@ -10,42 +10,58 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ alien \ + fftw-dev \ firebird-dev \ freetds-dev \ ghostscript \ + gobject-introspection \ + gtk-doc-tools \ libaio-dev \ libbz2-dev \ libc-client-dev \ libcurl4-openssl-dev \ libenchant-dev \ libevent-dev \ + libexif-dev \ + libexpat1-dev \ libfbclient2 \ libffi-dev \ + libfftw3-dev \ libfreetype6-dev \ + libgif-dev \ + libglib2.0-dev \ libgmp-dev \ libib-util \ libicu-dev \ + libimagequant-dev \ libjpeg-dev \ libkrb5-dev \ libldap2-dev \ + libmagick++-dev \ + libmagickcore-6.q16-dev \ libmagickwand-dev \ libmcrypt-dev \ libmemcached-dev \ libnghttp2-dev \ libpcre3-dev \ libpng-dev \ + libpoppler-glib-dev \ libpq-dev \ libpspell-dev \ librabbitmq-dev \ librdkafka-dev \ + librsvg2-dev \ libsasl2-dev \ libsnmp-dev \ libssh2-1-dev \ libssl-dev \ libtidy-dev \ + libtool \ libvpx-dev \ libwebp-dev \ libwebp6 \ + libwebpdemux2 \ + libwebpmux3 \ libxml2-dev \ libxpm-dev \ libxslt-dev \ @@ -635,6 +651,26 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: vips -------------------- +RUN set -eux \ + # Generic pre-command + && git clone https://github.com/libvips/libvips /tmp/libvips \ +&& cd /tmp/libvips \ +&& ./autogen.sh \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ +&& cd /tmp \ +&& rm -rf /tmp/libvips \ + \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install vips \ + # Enabling + && docker-php-ext-enable vips \ + && true + + # -------------------- Installing PHP Extension: xdebug -------------------- RUN set -eux \ # Installation: Generic @@ -665,6 +701,17 @@ RUN set -eux \ && true +# -------------------- Installing PHP Extension: xlswriter -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xlswriter \ + # Enabling + && docker-php-ext-enable xlswriter \ + && true + + # -------------------- Installing PHP Extension: yaml -------------------- RUN set -eux \ # Installation: Generic @@ -734,6 +781,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ @@ -743,30 +792,48 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + fftw2 \ ghostscript \ + gir1.2-poppler-0.18 \ + imagemagick-6.q16 \ libaio1 \ libaspell15 \ libc-client2007e \ libenchant1c2a \ + libexif12 \ + libexpat1 \ libfbclient2 \ libffi6 \ + libfftw3-3 \ libfreetype6 \ + libgif7 \ + libglib2.0-0 \ libicu63 \ + libimagequant0 \ libjpeg62-turbo \ + libmagick++-6.q16-8 \ + libmagick++-6.q16hdri-8 \ + libmagickcore-6.q16-6 \ + libmagickcore-6.q16-6-extra \ libmagickwand-6.q16-6 \ + libmagickwand-6.q16hdri-6 \ libmcrypt4 \ libmemcachedutil2 \ libnghttp2-14 \ libpng16-16 \ + libpoppler-glib8 \ libpq5 \ librabbitmq4 \ librdkafka1 \ + librsvg2-2 \ libssh2-1 \ libsybdb5 \ libtidy5deb1 \ libvpx5 \ libwebp-dev \ libwebp6 \ + libwebpdemux2 \ + libwebpmux3 \ libxpm4 \ libxslt1.1 \ libyaml-0-2 \ @@ -970,6 +1037,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^tokenizer$' \ && php -m | grep -oiE '^uploadprogress$' \ && php-fpm -m | grep -oiE '^uploadprogress$' \ + && php -m | grep -oiE '^vips$' \ + && php-fpm -m | grep -oiE '^vips$' \ && php -m | grep -oiE '^xdebug$' \ && php-fpm -m | grep -oiE '^xdebug$' \ && php -m | grep -oiE '^xml$' \ @@ -982,6 +1051,8 @@ RUN set -eux \ && php-fpm -m | grep -oiE '^xmlwriter$' \ && php -m | grep -oiE '^xsl$' \ && php-fpm -m | grep -oiE '^xsl$' \ + && php -m | grep -oiE '^xlswriter$' \ + && php-fpm -m | grep -oiE '^xlswriter$' \ && php -m | grep -oiE '^yaml$' \ && php-fpm -m | grep -oiE '^yaml$' \ && php -m | grep -oiE '^zip$' \ diff --git a/Dockerfiles/mods/Dockerfile-8.0 b/Dockerfiles/mods/Dockerfile-8.0 index 0ec85d2..ae5281c 100644 --- a/Dockerfiles/mods/Dockerfile-8.0 +++ b/Dockerfiles/mods/Dockerfile-8.0 @@ -494,6 +494,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ diff --git a/Dockerfiles/work/Dockerfile-5.2 b/Dockerfiles/work/Dockerfile-5.2 index b7f42a8..c7a459c 100644 --- a/Dockerfiles/work/Dockerfile-5.2 +++ b/Dockerfiles/work/Dockerfile-5.2 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-5.3 b/Dockerfiles/work/Dockerfile-5.3 index 7f48ddd..e79513d 100644 --- a/Dockerfiles/work/Dockerfile-5.3 +++ b/Dockerfiles/work/Dockerfile-5.3 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index 62697aa..74a148b 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index b4875a9..1286a3b 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 4ee91bb..61d3a0c 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index 93ddaf2..b7ee845 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index b75ac18..3069fa6 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index 758b320..9a6096b 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-7.3 b/Dockerfiles/work/Dockerfile-7.3 index 17bebde..c9a1ab8 100644 --- a/Dockerfiles/work/Dockerfile-7.3 +++ b/Dockerfiles/work/Dockerfile-7.3 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-7.4 b/Dockerfiles/work/Dockerfile-7.4 index 4335ab1..4322b49 100644 --- a/Dockerfiles/work/Dockerfile-7.4 +++ b/Dockerfiles/work/Dockerfile-7.4 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/Dockerfiles/work/Dockerfile-8.0 b/Dockerfiles/work/Dockerfile-8.0 index 20a35e4..cc45986 100644 --- a/Dockerfiles/work/Dockerfile-8.0 +++ b/Dockerfiles/work/Dockerfile-8.0 @@ -85,6 +85,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/README.md b/README.md index affc035..5a3f4b4 100644 --- a/README.md +++ b/README.md @@ -627,27 +627,27 @@ Check out this table to see which Docker image provides what PHP modules. 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, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib + amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, 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, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib + amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, 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, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib + amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib 7.3 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, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib + amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib 7.4 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, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib + amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, vips, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib 8.0 diff --git a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 index 421d7d0..c6fc6e4 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 @@ -324,6 +324,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-mods" ARG EXT_DIR COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/local/bin/ /usr/local/bin/ +COPY --from=builder /usr/local/lib/ /usr/local/lib/ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 index 6d36a7d..a31331d 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-work.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -101,6 +101,7 @@ RUN set -eux \ libffi-dev \ libssl-dev \ libyaml-dev \ + locales \ make \ mongodb-org-shell \ mongodb-org-tools \ diff --git a/build/ansible/group_vars/all/mods.yml b/build/ansible/group_vars/all/mods.yml index a9e00d0..b977e8f 100644 --- a/build/ansible/group_vars/all/mods.yml +++ b/build/ansible/group_vars/all/mods.yml @@ -101,6 +101,7 @@ extensions_enabled: - tidy - tokenizer - uploadprogress + - vips - wddx - xdebug - xml @@ -108,6 +109,7 @@ extensions_enabled: - xmlrpc - xmlwriter - xsl + - xlswriter - yaml - zip @@ -560,7 +562,7 @@ extensions_available: \ && phpize \ && ./configure --enable-mongodb \ - && make all \ + && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ all: type: pecl @@ -1015,6 +1017,97 @@ extensions_available: type: git git_url: https://github.com/php/pecl-php-uploadprogress configure: --enable-uploadprogress + vips: + disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 8.0] + 7.0: + build_dep: + - fftw-dev + - gobject-introspection + - gtk-doc-tools + - libexif-dev + - libexpat1-dev + - libfftw3-dev + - libgif-dev + - libglib2.0-dev + - libmagick++-dev + - libmagickcore-6.q16-dev + - libmagickwand-dev + - libpoppler-glib-dev + - librsvg2-dev + - libtool + - libwebp-dev + - libwebpdemux2 + - libwebpmux2 + run_dep: + - fftw2 + - gir1.2-poppler-0.18 + - imagemagick-6.q16 + - libexif12 + - libexpat1 + - libfftw3-3 + - libgif7 + - libglib2.0-0 + - libmagick++-6.q16-7 + - libmagick++-6.q16hdri-7 + - libmagickcore-6.q16-3 + - libmagickcore-6.q16-3-extra + - libmagickwand-6.q16-3 + - libmagickwand-6.q16hdri-3 + - libpoppler-glib8 + - librsvg2-2 + - libwebp6 + - libwebpdemux2 + - libwebpmux2 + all: + type: pecl + pre: | + git clone https://github.com/libvips/libvips /tmp/libvips \ + && cd /tmp/libvips \ + && ./autogen.sh \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + && cd /tmp \ + && rm -rf /tmp/libvips \ + build_dep: + - fftw-dev + - gobject-introspection + - gtk-doc-tools + - libexif-dev + - libexpat1-dev + - libfftw3-dev + - libgif-dev + - libglib2.0-dev + - libimagequant-dev + - libmagick++-dev + - libmagickcore-6.q16-dev + - libmagickwand-dev + - libpoppler-glib-dev + - librsvg2-dev + - libtool + - libwebp-dev + - libwebpdemux2 + - libwebpmux3 + run_dep: + - fftw2 + - gir1.2-poppler-0.18 + - imagemagick-6.q16 + - libexif12 + - libexpat1 + - libfftw3-3 + - libgif7 + - libglib2.0-0 + - libimagequant0 + - libmagick++-6.q16-8 + - libmagick++-6.q16hdri-8 + - libmagickcore-6.q16-6 + - libmagickcore-6.q16-6-extra + - libmagickwand-6.q16-6 + - libmagickwand-6.q16hdri-6 + - libpoppler-glib8 + - librsvg2-2 + - libwebp6 + - libwebpdemux2 + - libwebpmux3 wddx: # https://wiki.php.net/rfc/deprecate-and-remove-ext-wddx disabled: [7.4, 8.0] @@ -1048,6 +1141,12 @@ extensions_available: configure: --enable-xdebug all: type: pecl + xlswriter: + disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 8.0] + all: + type: pecl + build_dep: [zlib1g-dev] + run_dep: [] xml: already_avail: "{{ php_all_versions }}" xmlreader: