diff --git a/.github/workflows/php-ci.yml b/.github/workflows/php-ci.yml index 3f204aa6..7d1f0e4c 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 5cd11211..4810a520 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 8bc7efc0..00000000 --- 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 4be21751..21ca3f14 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 6b055411..5e4679c7 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 ff590c89..64e34b5b 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 32214ac8..333bd98f 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 27d93b21..666cb34a 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 a159537b..24f1d878 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 4b01ad6a..6cc83002 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 1356589d..e7c47fc6 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 f5acc5ab..4f421f60 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 c0fbed41..1e5e4045 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 a50039ea..af258592 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 81d76c48..b71d6512 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 0ec85d2e..ae5281c4 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 b7f42a85..c7a459c4 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 7f48dddd..e79513d2 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 62697aa2..74a148b4 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 b4875a98..1286a3b2 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 4ee91bb3..61d3a0ca 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 93ddaf25..b7ee845e 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 b75ac18c..3069fa66 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 758b3203..9a6096bf 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 17bebded..c9a1ab86 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 4335ab14..4322b493 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 20a35e45..cc459862 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 affc0357..5a3f4b41 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 421d7d0e..c6fc6e4e 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 6d36a7dc..a31331db 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 a9e00d05..b977e8fa 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: