From b1fb13b2782d9045a10030139af440387fa9c72f Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Thu, 3 Dec 2020 15:39:36 +0100 Subject: [PATCH 001/162] Add GitHub actions to replace Travis --- .github/workflows/workflow.yml | 72 ++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .github/workflows/workflow.yml diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml new file mode 100644 index 00000000..f659da4f --- /dev/null +++ b/.github/workflows/workflow.yml @@ -0,0 +1,72 @@ +name: Docker PHP Images GitHub workflow + +on: + pull_request: + branches: + - 'v3' + push: + branches: + - 'v3' + schedule: + - cron: '0 0 * * 0' + + +jobs: + build_test_maybe_release: + strategy: + matrix: + include: + - variant: 'cli' + php_version: '7.4' + - variant: 'apache' + php_version: '7.4' + - variant: 'fpm' + php_version: '7.4' + - variant: 'cli' + php_version: '7.3' + - variant: 'apache' + php_version: '7.3' + - variant: 'fpm' + php_version: '7.3' + - variant: 'cli' + php_version: '7.2' + - variant: 'apache' + php_version: '7.2' + - variant: 'fpm' + php_version: '7.2' + - variant: 'cli' + php_version: '7.1' + - variant: 'apache' + php_version: '7.1' + - variant: 'fpm' + php_version: '7.1' + runs-on: ubuntu-latest + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v1 + - name: Build and test + uses: docker/build-push-action@v2 + run: | + PHP_VERSION="${{ matrix.php_version }}" BRANCH="$GITHUB_REF_NAME_SLUG" VARIANT="${{ matrix.variant }}" ./build-and-test.sh + docker images | grep thecodingmachine/php + - name: Login to DockerHub + # Merge ~ push. + if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN } + - name: Release + uses: docker/build-push-action@v2 + # Merge ~ push. + if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} + run: | + BRANCH_VARIANT=`echo "${{ matrix.variant }}" | sed 's/\./-/g'` + docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-slim-${BRANCH_VARIANT} + docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-${BRANCH_VARIANT} + docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-${BRANCH_VARIANT}-node8 + docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-${BRANCH_VARIANT}-node10 + docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-${BRANCH_VARIANT}-node12 \ No newline at end of file From 951447bac1f0885b9924e7de974fe2dbb43af351 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Thu, 3 Dec 2020 15:43:06 +0100 Subject: [PATCH 002/162] GitHub actions: remove uses when run --- .github/workflows/workflow.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index f659da4f..7510fb57 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -48,7 +48,6 @@ jobs: uses: docker/setup-buildx-action@v1 - uses: actions/checkout@v1 - name: Build and test - uses: docker/build-push-action@v2 run: | PHP_VERSION="${{ matrix.php_version }}" BRANCH="$GITHUB_REF_NAME_SLUG" VARIANT="${{ matrix.variant }}" ./build-and-test.sh docker images | grep thecodingmachine/php @@ -60,7 +59,6 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN } - name: Release - uses: docker/build-push-action@v2 # Merge ~ push. if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} run: | From e0910c732c91581694c8df7836386865c1941a16 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Thu, 3 Dec 2020 15:45:17 +0100 Subject: [PATCH 003/162] Fix typo in GitHub actions --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 7510fb57..57083f92 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -57,7 +57,7 @@ jobs: uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN } + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Release # Merge ~ push. if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} From c27d2dec3d0dae4d5561bb946349cfeaec6e3d3e Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Thu, 3 Dec 2020 16:08:21 +0100 Subject: [PATCH 004/162] Replace github ref slug by v3 in GitHub actions --- .github/workflows/workflow.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 57083f92..91e4b440 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -10,7 +10,6 @@ on: schedule: - cron: '0 0 * * 0' - jobs: build_test_maybe_release: strategy: @@ -49,7 +48,7 @@ jobs: - uses: actions/checkout@v1 - name: Build and test run: | - PHP_VERSION="${{ matrix.php_version }}" BRANCH="$GITHUB_REF_NAME_SLUG" VARIANT="${{ matrix.variant }}" ./build-and-test.sh + PHP_VERSION="${{ matrix.php_version }}" BRANCH="v3" VARIANT="${{ matrix.variant }}" ./build-and-test.sh docker images | grep thecodingmachine/php - name: Login to DockerHub # Merge ~ push. @@ -63,8 +62,8 @@ jobs: if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} run: | BRANCH_VARIANT=`echo "${{ matrix.variant }}" | sed 's/\./-/g'` - docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-slim-${BRANCH_VARIANT} - docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-${BRANCH_VARIANT} - docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-${BRANCH_VARIANT}-node8 - docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-${BRANCH_VARIANT}-node10 - docker push thecodingmachine/php:${{ matrix.php_version }}-${GITHUB_REF_NAME_SLUG}-${BRANCH_VARIANT}-node12 \ No newline at end of file + docker push thecodingmachine/php:${{ matrix.php_version }}-v3-slim-${BRANCH_VARIANT} + docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT} + docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT}-node8 + docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT}-node10 + docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT}-node12 \ No newline at end of file From 0985339b104d82f38c03ead32cc8590ae03ef1bf Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Thu, 3 Dec 2020 16:09:00 +0100 Subject: [PATCH 005/162] Remove Travis --- .travis.yml | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e496a704..00000000 --- a/.travis.yml +++ /dev/null @@ -1,52 +0,0 @@ -sudo: required - -language: generic - -services: - - docker - -env: - global: - - secure: ClsghGGhXXVK3pzy338YXGMz/h3TrfXlpTGrZTqWpNdNT4HDsqR5Hjd1nrYeAuA3Hf0o9cDUYaUdBkZx0GBorC81XNowpbFRMyVzPtniZazB1fDpI29AjTMNC73tPF0ANwo2rrmoIx0ca/vIkJuQk1fn7gfKbdVVlZEsD86buJ3W7f7Y3AA6rWVH1R01iwzoLqLv4UCELLNlHS52JHvPqe8cYuMaFhivm3qUGC/m9R/uG31OW+k9fJ4i/rJGgJlkP1eUI0l1bxKnePR0dccbRCv11k4iXFyoV4yvzxi1aO/S/gOnye8RzaSfXvYuKKN4Ge6pN7VO8nVlt3SfZDMgSVyGiOh2AJEjAoc+Itz48dHH4D8NfvbDi4EphftHxM5qqc1T8WKEkoXoBynJJydTlDdkb4dr3geCwo2ps38YnQ0y/JxXFigRzWRF8V3CiZ5bgRXCQiIWD37TmoFv8JYPWGpD8Xs7DJLiDOUEVvARmaeqptW73RxXUfTnd+KD6G0WBcz4tYVSauXyHlOpKPxV0k/+yG5G2ikSvkkf/2Mafut4+5Gy9TMYUXw6C2i2+eGXTpFDDQsoDbZ4dRqrVzrunaXNm3DbPyiE38BCVXwYmz6EQUDoKKlV7d3+Zr/5Kfw8hbXvflGSTQt87M4WDh0FbLhAm2cGPoP5PDzF8lm+txc= - - secure: JssDXVzbu3gScW92+C/ZdSDODXV79PDx4IekkCYH6+OFPNLJSF9n14js6LtMJurKZp7F7VpqUO4gNyQ9y4HVRQJPhB7nzOy2SH77AWcwK2tmTGVB7MBK19E/d8xLBuDQWziVBIOCjW5gHpffBhT0SgBeZ5kxy15hVCZrce65bxlycGd+5DRGSd4zz6u+eGIc+eKWYgTSbfKRmWRC4QQVi87wiR9Efp7ywTEjKutMg9zFXTvPNoeaUbQJQgx2ZeGOY/THB0jXL9jkYgnvDq5sowDaSjd7DTEAWy5PdKh0zCIv8lLrO+mWiVOzGpKwRwVatPHsfzbuvl51ZIp6XvphURRpgu/+1x+Spm/Y+twzXzzeJenIJsJdPFZ4j5g34NsVHc+RnjIhB51g/+VPpW/Rid1+tWYp9v+QtUxMq7p7ZStwE/17Bi9+wVbACvUuHlyenr+hEXr2JCmv0Jj7F0P5+GgLSE3h3yitgUU+nJ6qwdmGzyZ3WQp8KklyumhbfOLIMvJ811Ayp8aV12dcp+hGIl5D7XSHdwZ4PK4wnB3oJiPaBB/HGS6/Tcav+cN8E39f6DjISlPHGXidfxQl3XuMOBOi6U6/eInWCRD1hTqzRtJMieboz8OOh9KcUQq8XhoqTbh2zCKRY+wgoOqLzHs9Dbd1cJAu0CvDX6jIuR3FqUA= - matrix: - - VARIANT="cli" - PHP_VERSION="7.4" - - VARIANT="apache" - PHP_VERSION="7.4" - - VARIANT="fpm" - PHP_VERSION="7.4" - - VARIANT="cli" - PHP_VERSION="7.3" - - VARIANT="apache" - PHP_VERSION="7.3" - - VARIANT="fpm" - PHP_VERSION="7.3" - - VARIANT="cli" - PHP_VERSION="7.2" - - VARIANT="apache" - PHP_VERSION="7.2" - - VARIANT="fpm" - PHP_VERSION="7.2" - - VARIANT="cli" - PHP_VERSION="7.1" - - VARIANT="apache" - PHP_VERSION="7.1" - - VARIANT="fpm" - PHP_VERSION="7.1" - -script: -- PHP_VERSION="${PHP_VERSION}" BRANCH="${TRAVIS_BRANCH}" VARIANT="${VARIANT}" ./build-and-test.sh -- docker images | grep thecodingmachine/php - -# Let's push only if not in a pull request and the branch matches the v2 format -- | - if [[ "$TRAVIS_PULL_REQUEST" = false && "$TRAVIS_BRANCH" =~ ^v[0-9.]+$ ]] ; then - BRANCH_VARIANT=`echo "$VARIANT" | sed 's/\./-/g'` - docker login -u $DOCKER_USER -p $DOCKER_PASS - docker push thecodingmachine/php:${PHP_VERSION}-${TRAVIS_BRANCH}-slim-${BRANCH_VARIANT} - docker push thecodingmachine/php:${PHP_VERSION}-${TRAVIS_BRANCH}-${BRANCH_VARIANT} - docker push thecodingmachine/php:${PHP_VERSION}-${TRAVIS_BRANCH}-${BRANCH_VARIANT}-node8 - docker push thecodingmachine/php:${PHP_VERSION}-${TRAVIS_BRANCH}-${BRANCH_VARIANT}-node10 - docker push thecodingmachine/php:${PHP_VERSION}-${TRAVIS_BRANCH}-${BRANCH_VARIANT}-node12 - fi From dc0342cd08122c264a429a3606dec3a6d79c8c66 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 4 Dec 2020 15:20:55 +0100 Subject: [PATCH 006/162] Add v4-dev Github actions --- .github/workflows/workflow.yml | 75 ++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .github/workflows/workflow.yml diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml new file mode 100644 index 00000000..770e2965 --- /dev/null +++ b/.github/workflows/workflow.yml @@ -0,0 +1,75 @@ +name: Docker PHP Images GitHub workflow + +on: + pull_request: + branches: + - 'v4-dev' + push: + branches: + - 'v4-dev' +# schedule: +# - cron: '0 0 * * 0' + +jobs: + build_test_maybe_release: + strategy: + matrix: + include: + - variant: 'cli' + php_version: '8.0' + - variant: 'apache' + php_version: '8.0' + - variant: 'fpm' + php_version: '8.0' +# - variant: 'cli' +# php_version: '7.4' +# - variant: 'apache' +# php_version: '7.4' +# - variant: 'fpm' +# php_version: '7.4' +# - variant: 'cli' +# php_version: '7.3' +# - variant: 'apache' +# php_version: '7.3' +# - variant: 'fpm' +# php_version: '7.3' +# - variant: 'cli' +# php_version: '7.2' +# - variant: 'apache' +# php_version: '7.2' +# - variant: 'fpm' +# php_version: '7.2' +# - variant: 'cli' +# php_version: '7.1' +# - variant: 'apache' +# php_version: '7.1' +# - variant: 'fpm' +# php_version: '7.1' + runs-on: ubuntu-latest + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - uses: actions/checkout@v1 + - name: Build and test + run: | + PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4-dev" VARIANT="${{ matrix.variant }}" ./build-and-test.sh + docker images | grep thecodingmachine/php +# - name: Login to DockerHub +# # Merge ~ push. +# if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} +# uses: docker/login-action@v1 +# with: +# username: ${{ secrets.DOCKERHUB_USERNAME }} +# password: ${{ secrets.DOCKERHUB_TOKEN }} +# - name: Release +# # Merge ~ push. +# if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} +# run: | +# BRANCH_VARIANT=`echo "${{ matrix.variant }}" | sed 's/\./-/g'` +# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-slim-${BRANCH_VARIANT} +# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT} +# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT}-node8 +# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT}-node10 +# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT}-node12 \ No newline at end of file From 116609055fb82e4885f11c2eb5aca94c939eeb7c Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 4 Dec 2020 15:56:10 +0100 Subject: [PATCH 007/162] Remove container_started on base images so that new env var from user (php ext) can be setup --- utils/Dockerfile.blueprint | 2 ++ utils/Dockerfile.slim.blueprint | 2 ++ 2 files changed, 4 insertions(+) diff --git a/utils/Dockerfile.blueprint b/utils/Dockerfile.blueprint index 81cbcb08..a57ecb1a 100644 --- a/utils/Dockerfile.blueprint +++ b/utils/Dockerfile.blueprint @@ -28,3 +28,5 @@ ENV PHP_EXTENSION_APCU=1 \ PHP_EXTENSION_IGBINARY=1 \ PHP_EXTENSION_REDIS=1 \ PHP_EXTENSION_SOAP=1 + +RUN rm -f /opt/container_started diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 676ad905..8c9c4f14 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -411,3 +411,5 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn; \ fi; + +RUN rm -f /opt/container_started From 8bfe6769874be109216059800f64c416a1720832 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 4 Dec 2020 16:57:22 +0100 Subject: [PATCH 008/162] Remove deletion of /opt/container_started --- .gitignore | 2 +- orbit.yml | 2 +- utils/Dockerfile.blueprint | 2 -- utils/Dockerfile.slim.blueprint | 2 -- 4 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 17952c7f..48e1dca8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ .idea -tmp +tmp \ No newline at end of file diff --git a/orbit.yml b/orbit.yml index 7d445547..d2160ceb 100644 --- a/orbit.yml +++ b/orbit.yml @@ -34,4 +34,4 @@ tasks: - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node10 -p "variant,fpm;node_version,10" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node12 -p "variant,fpm;node_version,12" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node14 -p "variant,fpm;node_version,14" - - orbit generate -f utils/README.blueprint.md -o README.md + - orbit generate -f utils/README.blueprint.md -o README.md \ No newline at end of file diff --git a/utils/Dockerfile.blueprint b/utils/Dockerfile.blueprint index a57ecb1a..81cbcb08 100644 --- a/utils/Dockerfile.blueprint +++ b/utils/Dockerfile.blueprint @@ -28,5 +28,3 @@ ENV PHP_EXTENSION_APCU=1 \ PHP_EXTENSION_IGBINARY=1 \ PHP_EXTENSION_REDIS=1 \ PHP_EXTENSION_SOAP=1 - -RUN rm -f /opt/container_started diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 8c9c4f14..676ad905 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -411,5 +411,3 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn; \ fi; - -RUN rm -f /opt/container_started From 6b60916732c8f917d65ab08e0e003637b8d04b1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 4 Dec 2020 17:32:07 +0100 Subject: [PATCH 009/162] cleaning up /opt/container_started --- Dockerfile.apache | 3 ++- Dockerfile.cli | 3 ++- Dockerfile.fpm | 3 ++- Dockerfile.slim.apache | 2 +- Dockerfile.slim.cli | 2 +- Dockerfile.slim.fpm | 2 +- utils/Dockerfile.blueprint | 3 ++- utils/Dockerfile.slim.blueprint | 2 +- 8 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Dockerfile.apache b/Dockerfile.apache index 41b5b0b5..26d126f1 100644 --- a/Dockerfile.apache +++ b/Dockerfile.apache @@ -14,7 +14,8 @@ LABEL authors="Julien Neuhart , David Négrier < # | USER root -RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh +RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh && \ + rm /opt/container_started USER docker # |-------------------------------------------------------------------------- diff --git a/Dockerfile.cli b/Dockerfile.cli index 5c8662dd..6cf28969 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -14,7 +14,8 @@ LABEL authors="Julien Neuhart , David Négrier < # | USER root -RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh +RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh && \ + rm /opt/container_started USER docker # |-------------------------------------------------------------------------- diff --git a/Dockerfile.fpm b/Dockerfile.fpm index 8621add5..8f9dbf88 100644 --- a/Dockerfile.fpm +++ b/Dockerfile.fpm @@ -14,7 +14,8 @@ LABEL authors="Julien Neuhart , David Négrier < # | USER root -RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh +RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh && \ + rm /opt/container_started USER docker # |-------------------------------------------------------------------------- diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 6802c134..9bb05614 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -328,7 +328,7 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P - +RUN rm /opt/container_started USER docker COPY utils/install_selected_extensions.php /usr/local/bin/install_selected_extensions.php diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 944b2732..69041c40 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -233,7 +233,7 @@ RUN touch /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini && ln -s /et - +RUN rm /opt/container_started USER docker COPY utils/install_selected_extensions.php /usr/local/bin/install_selected_extensions.php diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index dec68924..c0d1ede8 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -256,7 +256,7 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P fi - +RUN rm /opt/container_started USER docker COPY utils/install_selected_extensions.php /usr/local/bin/install_selected_extensions.php diff --git a/utils/Dockerfile.blueprint b/utils/Dockerfile.blueprint index 81cbcb08..bd1b0b0f 100644 --- a/utils/Dockerfile.blueprint +++ b/utils/Dockerfile.blueprint @@ -16,7 +16,8 @@ LABEL authors="Julien Neuhart , David Négrier < # | USER root -RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh +RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh && \ + rm /opt/container_started USER docker # |-------------------------------------------------------------------------- diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 676ad905..fcd4d83c 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -360,7 +360,7 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P fi {{end}} - +RUN rm /opt/container_started USER docker COPY utils/install_selected_extensions.php /usr/local/bin/install_selected_extensions.php From 3cf28636f027fcadafc57da3268219f1d863b7e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 4 Dec 2020 18:11:40 +0100 Subject: [PATCH 010/162] Migrating to Ubuntu 20.04 --- Dockerfile.slim.apache | 4 ++-- Dockerfile.slim.cli | 4 ++-- Dockerfile.slim.fpm | 4 ++-- MIGRATING.md | 9 +++++++++ README.md | 2 +- extensions/8.0/gettext | 1 - utils/Dockerfile.slim.blueprint | 4 ++-- 7 files changed, 18 insertions(+), 10 deletions(-) delete mode 120000 extensions/8.0/gettext diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 9bb05614..337c1f95 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -1,4 +1,4 @@ -FROM ubuntu:bionic +FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -21,7 +21,7 @@ ENV PHP_VERSION=$PHP_VERSION # Install php an other packages RUN apt-get update \ && apt-get install -y --no-install-recommends gnupg \ - && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main" > /etc/apt/sources.list.d/ondrej-php.list \ + && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-php.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ && apt-get update \ && apt-get install -y --no-install-recommends \ diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 69041c40..ce28897c 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -1,4 +1,4 @@ -FROM ubuntu:bionic +FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -21,7 +21,7 @@ ENV PHP_VERSION=$PHP_VERSION # Install php an other packages RUN apt-get update \ && apt-get install -y --no-install-recommends gnupg \ - && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main" > /etc/apt/sources.list.d/ondrej-php.list \ + && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-php.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ && apt-get update \ && apt-get install -y --no-install-recommends \ diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index c0d1ede8..0387cbd5 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -1,4 +1,4 @@ -FROM ubuntu:bionic +FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -21,7 +21,7 @@ ENV PHP_VERSION=$PHP_VERSION # Install php an other packages RUN apt-get update \ && apt-get install -y --no-install-recommends gnupg \ - && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main" > /etc/apt/sources.list.d/ondrej-php.list \ + && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-php.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ && apt-get update \ && apt-get install -y --no-install-recommends \ diff --git a/MIGRATING.md b/MIGRATING.md index 1a5feab2..f9f91e0e 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -1,3 +1,12 @@ +# Migrating from v3 to v4 images + +Important changes: + +- v3 images are based on **Ubuntu 18.04**. v4 images are based on **Ubuntu 20.04**. +- Internally, the image will attempt to setup extensions / parameters on container startup (in the image entry point), + but also when PHP is run. This should help alleviate a part of the problems when the entrypoint is overloaded by the + user. + # Migrating from v2 to v3 images Important changes: diff --git a/README.md b/README.md index dab3d2de..a88f222b 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) -- *ev*, *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ +- *ev*, *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire*, *gettext* are not available in PHP 8.0+ ### Enabling/disabling extensions in the fat image diff --git a/extensions/8.0/gettext b/extensions/8.0/gettext deleted file mode 120000 index 0369641a..00000000 --- a/extensions/8.0/gettext +++ /dev/null @@ -1 +0,0 @@ -../core/gettext \ No newline at end of file diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index fcd4d83c..b04f9208 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -1,6 +1,6 @@ {{- $variant := .Orbit.variant -}} -FROM ubuntu:bionic +FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -23,7 +23,7 @@ ENV PHP_VERSION=$PHP_VERSION # Install php an other packages RUN apt-get update \ && apt-get install -y --no-install-recommends gnupg \ - && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main" > /etc/apt/sources.list.d/ondrej-php.list \ + && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-php.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ && apt-get update \ && apt-get install -y --no-install-recommends \ From beeab9ab62d8c335f22915a53cdfc5995492ce51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 4 Dec 2020 18:32:16 +0100 Subject: [PATCH 011/162] Fixing Swoole --- extensions/core/swoole/install.sh | 0 utils/README.blueprint.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 extensions/core/swoole/install.sh diff --git a/extensions/core/swoole/install.sh b/extensions/core/swoole/install.sh old mode 100644 new mode 100755 diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 9ee02e10..2804ddb1 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -107,7 +107,7 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) -- *ev*, *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ +- *ev*, *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire*, *gettext* are not available in PHP 8.0+ ### Enabling/disabling extensions in the fat image From 5432a01e527d0bb09ca50fc289fd1575ad46e594 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Mon, 7 Dec 2020 11:51:40 +0100 Subject: [PATCH 012/162] Add PHP script for checking PHP_* env var changes --- Dockerfile.apache | 3 +-- Dockerfile.cli | 3 +-- Dockerfile.fpm | 3 +-- Dockerfile.slim.apache | 3 ++- Dockerfile.slim.cli | 3 ++- Dockerfile.slim.fpm | 3 ++- utils/Dockerfile.blueprint | 3 +-- utils/Dockerfile.slim.blueprint | 3 ++- utils/check_php_env_var_changes.php | 39 +++++++++++++++++++++++++++++ utils/php_env_var_cache.php | 2 ++ utils/php_proxy.sh | 6 ++--- 11 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 utils/check_php_env_var_changes.php create mode 100644 utils/php_env_var_cache.php diff --git a/Dockerfile.apache b/Dockerfile.apache index 26d126f1..41b5b0b5 100644 --- a/Dockerfile.apache +++ b/Dockerfile.apache @@ -14,8 +14,7 @@ LABEL authors="Julien Neuhart , David Négrier < # | USER root -RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh && \ - rm /opt/container_started +RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh USER docker # |-------------------------------------------------------------------------- diff --git a/Dockerfile.cli b/Dockerfile.cli index 6cf28969..5c8662dd 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -14,8 +14,7 @@ LABEL authors="Julien Neuhart , David Négrier < # | USER root -RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh && \ - rm /opt/container_started +RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh USER docker # |-------------------------------------------------------------------------- diff --git a/Dockerfile.fpm b/Dockerfile.fpm index 8f9dbf88..8621add5 100644 --- a/Dockerfile.fpm +++ b/Dockerfile.fpm @@ -14,8 +14,7 @@ LABEL authors="Julien Neuhart , David Négrier < # | USER root -RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh && \ - rm /opt/container_started +RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh USER docker # |-------------------------------------------------------------------------- diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 337c1f95..8612ae09 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -93,6 +93,8 @@ RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local COPY utils/utils.php /usr/local/bin/utils.php RUN mv /usr/bin/php /usr/bin/real_php COPY utils/php_proxy.sh /usr/bin/php +COPY utils/check_php_env_var_changes.php /usr/local/bin/check_php_env_var_changes.php +COPY utils/php_env_var_cache.php /opt/php_env_var_cache.php COPY utils/generate_conf.php /usr/local/bin/generate_conf.php COPY utils/setup_extensions.php /usr/local/bin/setup_extensions.php @@ -328,7 +330,6 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P -RUN rm /opt/container_started USER docker COPY utils/install_selected_extensions.php /usr/local/bin/install_selected_extensions.php diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index ce28897c..51b67e2f 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -93,6 +93,8 @@ RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local COPY utils/utils.php /usr/local/bin/utils.php RUN mv /usr/bin/php /usr/bin/real_php COPY utils/php_proxy.sh /usr/bin/php +COPY utils/check_php_env_var_changes.php /usr/local/bin/check_php_env_var_changes.php +COPY utils/php_env_var_cache.php /opt/php_env_var_cache.php COPY utils/generate_conf.php /usr/local/bin/generate_conf.php COPY utils/setup_extensions.php /usr/local/bin/setup_extensions.php @@ -233,7 +235,6 @@ RUN touch /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini && ln -s /et -RUN rm /opt/container_started USER docker COPY utils/install_selected_extensions.php /usr/local/bin/install_selected_extensions.php diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 0387cbd5..09135476 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -93,6 +93,8 @@ RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local COPY utils/utils.php /usr/local/bin/utils.php RUN mv /usr/bin/php /usr/bin/real_php COPY utils/php_proxy.sh /usr/bin/php +COPY utils/check_php_env_var_changes.php /usr/local/bin/check_php_env_var_changes.php +COPY utils/php_env_var_cache.php /opt/php_env_var_cache.php COPY utils/generate_conf.php /usr/local/bin/generate_conf.php COPY utils/setup_extensions.php /usr/local/bin/setup_extensions.php @@ -256,7 +258,6 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P fi -RUN rm /opt/container_started USER docker COPY utils/install_selected_extensions.php /usr/local/bin/install_selected_extensions.php diff --git a/utils/Dockerfile.blueprint b/utils/Dockerfile.blueprint index bd1b0b0f..81cbcb08 100644 --- a/utils/Dockerfile.blueprint +++ b/utils/Dockerfile.blueprint @@ -16,8 +16,7 @@ LABEL authors="Julien Neuhart , David Négrier < # | USER root -RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh && \ - rm /opt/container_started +RUN cd /usr/local/lib/thecodingmachine-php/extensions/current/ && ./install_all.sh && ./disable_all.sh USER docker # |-------------------------------------------------------------------------- diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index b04f9208..a41fbfba 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -95,6 +95,8 @@ RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local COPY utils/utils.php /usr/local/bin/utils.php RUN mv /usr/bin/php /usr/bin/real_php COPY utils/php_proxy.sh /usr/bin/php +COPY utils/check_php_env_var_changes.php /usr/local/bin/check_php_env_var_changes.php +COPY utils/php_env_var_cache.php /opt/php_env_var_cache.php COPY utils/generate_conf.php /usr/local/bin/generate_conf.php COPY utils/setup_extensions.php /usr/local/bin/setup_extensions.php @@ -360,7 +362,6 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P fi {{end}} -RUN rm /opt/container_started USER docker COPY utils/install_selected_extensions.php /usr/local/bin/install_selected_extensions.php diff --git a/utils/check_php_env_var_changes.php b/utils/check_php_env_var_changes.php new file mode 100644 index 00000000..f05ffb85 --- /dev/null +++ b/utils/check_php_env_var_changes.php @@ -0,0 +1,39 @@ + $value) { + if (substr($key, 0, strlen('PHP_')) === 'PHP_') { + if (!isset($phpEnvVarCache[$key])) { + // The env var does not exist in the cache. + $shouldGenerateConfig = true; + } else if ($phpEnvVarCache[$key] !== $value) { + // The value has changed. + $shouldGenerateConfig = true; + } + + $phpEnvVar[$key] = $value; + } +} + +if ($shouldGenerateConfig === false) { + echo "0"; + exit(0); +} + +$cacheFileContent = ' $value) { + $cacheFileContent .= '$phpEnvCache["' . $key . '"] = "' . $value . '";' . PHP_EOL; +} + +$result = file_put_contents('/opt/php_env_var_cache.php', $cacheFileContent); +if ($result === false) { + exit(1); +} + +echo "1"; +exit(0); \ No newline at end of file diff --git a/utils/php_env_var_cache.php b/utils/php_env_var_cache.php new file mode 100644 index 00000000..d316981b --- /dev/null +++ b/utils/php_env_var_cache.php @@ -0,0 +1,2 @@ + /dev/null /usr/bin/real_php /usr/local/bin/setup_extensions.php | sudo bash - sudo touch /opt/container_started fi /usr/bin/real_php "$@" From 7c552cf1b4c876466764e94e7bfd892128f1427f Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Mon, 7 Dec 2020 11:55:22 +0100 Subject: [PATCH 013/162] Fix typo in PHP script --- utils/check_php_env_var_changes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/check_php_env_var_changes.php b/utils/check_php_env_var_changes.php index f05ffb85..1afcf91e 100644 --- a/utils/check_php_env_var_changes.php +++ b/utils/check_php_env_var_changes.php @@ -27,7 +27,7 @@ $cacheFileContent = ' $value) { - $cacheFileContent .= '$phpEnvCache["' . $key . '"] = "' . $value . '";' . PHP_EOL; + $cacheFileContent .= '$phpEnvVarCache["' . $key . '"] = "' . $value . '";' . PHP_EOL; } $result = file_put_contents('/opt/php_env_var_cache.php', $cacheFileContent); From 290a02aee1bcf939b2dba3b782cc209aa5500696 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Mon, 7 Dec 2020 14:27:46 +0100 Subject: [PATCH 014/162] Change APCu 'provider': from pecl to ondrej --- extensions/core/apcu/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/core/apcu/install.sh b/extensions/core/apcu/install.sh index b6405124..7e920e3d 100755 --- a/extensions/core/apcu/install.sh +++ b/extensions/core/apcu/install.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash set -e -export PECL_EXTENSION=apcu +export EXTENSION=apcu ../docker-install.sh From 478ff026bc7a29b6014cf5d7f58906d46527c79c Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Mon, 7 Dec 2020 14:40:46 +0100 Subject: [PATCH 015/162] Refactor env var PHP script, remove sybase for PHP 8 --- README.md | 2 ++ extensions/8.0/pdo_dblib | 1 - utils/README.blueprint.md | 2 ++ utils/check_php_env_var_changes.php | 8 ++------ utils/php_env_var_cache.php | 3 ++- 5 files changed, 8 insertions(+), 8 deletions(-) delete mode 120000 extensions/8.0/pdo_dblib diff --git a/README.md b/README.md index a88f222b..36eb8beb 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,8 @@ As an alternative, you can use the `PHP_EXTENSIONS` global variable: PHP_EXTENSIONS=pgsql gettext imap ``` +**Note:** Sybase extension is not available on PHP 8. + ### Compiling extensions in the slim image If you are using the slim image, you can automatically compile the extensions using the `PHP_EXTENSIONS` ARG in your Dockerfile. diff --git a/extensions/8.0/pdo_dblib b/extensions/8.0/pdo_dblib deleted file mode 120000 index 2261140c..00000000 --- a/extensions/8.0/pdo_dblib +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_dblib \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 2804ddb1..d04f49f3 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -133,6 +133,8 @@ As an alternative, you can use the `PHP_EXTENSIONS` global variable: PHP_EXTENSIONS=pgsql gettext imap ``` +**Note:** Sybase extension is not available on PHP 8. + ### Compiling extensions in the slim image If you are using the slim image, you can automatically compile the extensions using the `PHP_EXTENSIONS` ARG in your Dockerfile. diff --git a/utils/check_php_env_var_changes.php b/utils/check_php_env_var_changes.php index 1afcf91e..96249fc1 100644 --- a/utils/check_php_env_var_changes.php +++ b/utils/check_php_env_var_changes.php @@ -1,6 +1,6 @@ $value) { - $cacheFileContent .= '$phpEnvVarCache["' . $key . '"] = "' . $value . '";' . PHP_EOL; -} - +$cacheFileContent = ' Date: Mon, 7 Dec 2020 14:49:20 +0100 Subject: [PATCH 016/162] Add var_dump for (ugly) testing --- utils/check_php_env_var_changes.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/utils/check_php_env_var_changes.php b/utils/check_php_env_var_changes.php index 96249fc1..e6760e1e 100644 --- a/utils/check_php_env_var_changes.php +++ b/utils/check_php_env_var_changes.php @@ -3,6 +3,10 @@ $phpEnvVarCache = include '/opt/php_env_var_cache.php'; $envVars = getenv(); + +var_dump($envVars); +var_dump($phpEnvVarCache); + $shouldGenerateConfig = false; $phpEnvVar = []; From e4f1ca383817c66972d487331302edcfa3ac2a31 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Mon, 7 Dec 2020 15:00:41 +0100 Subject: [PATCH 017/162] Still debugging --- utils/check_php_env_var_changes.php | 5 +---- utils/php_proxy.sh | 8 ++++++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/utils/check_php_env_var_changes.php b/utils/check_php_env_var_changes.php index e6760e1e..ac1d016a 100644 --- a/utils/check_php_env_var_changes.php +++ b/utils/check_php_env_var_changes.php @@ -3,10 +3,6 @@ $phpEnvVarCache = include '/opt/php_env_var_cache.php'; $envVars = getenv(); - -var_dump($envVars); -var_dump($phpEnvVarCache); - $shouldGenerateConfig = false; $phpEnvVar = []; @@ -32,6 +28,7 @@ $cacheFileContent = ' /dev/null /usr/bin/real_php /usr/local/bin/setup_extensions.php | sudo bash From 29a85d824eef15df1e788bac0682e3afc209b91d Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Mon, 7 Dec 2020 15:11:24 +0100 Subject: [PATCH 018/162] Still debugging --- utils/check_php_env_var_changes.php | 1 - utils/php_proxy.sh | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/utils/check_php_env_var_changes.php b/utils/check_php_env_var_changes.php index ac1d016a..96249fc1 100644 --- a/utils/check_php_env_var_changes.php +++ b/utils/check_php_env_var_changes.php @@ -28,7 +28,6 @@ $cacheFileContent = ' Date: Mon, 7 Dec 2020 15:15:56 +0100 Subject: [PATCH 019/162] Still debugging --- utils/php_proxy.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utils/php_proxy.sh b/utils/php_proxy.sh index 36c5777a..a8ae455f 100755 --- a/utils/php_proxy.sh +++ b/utils/php_proxy.sh @@ -1,5 +1,7 @@ #!/bin/bash +sudo chown docker:docker /opt/php_env_var_cache.php + REGENERATE=$(/usr/bin/real_php /usr/local/bin/check_php_env_var_changes.php) echo "REGENERATE = $REGENERATE" From e13a07c7ad41318953503fa6324f542831888941 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Mon, 7 Dec 2020 15:22:36 +0100 Subject: [PATCH 020/162] Still debugging --- utils/php_proxy.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/utils/php_proxy.sh b/utils/php_proxy.sh index a8ae455f..3237a730 100755 --- a/utils/php_proxy.sh +++ b/utils/php_proxy.sh @@ -4,10 +4,7 @@ sudo chown docker:docker /opt/php_env_var_cache.php REGENERATE=$(/usr/bin/real_php /usr/local/bin/check_php_env_var_changes.php) -echo "REGENERATE = $REGENERATE" - if [[ "$REGENERATE" != "0" ]] && [[ "$REGENERATE" != "1" ]]; then - echo "Something wrong happened in the /usr/local/bin/check_php_env_var_changes.php script." exit 1 fi From 046b32ef1ff5f9fcb8c974c8c11db11f901d6c77 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Mon, 7 Dec 2020 15:36:25 +0100 Subject: [PATCH 021/162] Readd other PHP versions --- .github/workflows/workflow.yml | 48 +++++++++++++++++----------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 770e2965..62c2d7cb 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -21,30 +21,30 @@ jobs: php_version: '8.0' - variant: 'fpm' php_version: '8.0' -# - variant: 'cli' -# php_version: '7.4' -# - variant: 'apache' -# php_version: '7.4' -# - variant: 'fpm' -# php_version: '7.4' -# - variant: 'cli' -# php_version: '7.3' -# - variant: 'apache' -# php_version: '7.3' -# - variant: 'fpm' -# php_version: '7.3' -# - variant: 'cli' -# php_version: '7.2' -# - variant: 'apache' -# php_version: '7.2' -# - variant: 'fpm' -# php_version: '7.2' -# - variant: 'cli' -# php_version: '7.1' -# - variant: 'apache' -# php_version: '7.1' -# - variant: 'fpm' -# php_version: '7.1' + - variant: 'cli' + php_version: '7.4' + - variant: 'apache' + php_version: '7.4' + - variant: 'fpm' + php_version: '7.4' + - variant: 'cli' + php_version: '7.3' + - variant: 'apache' + php_version: '7.3' + - variant: 'fpm' + php_version: '7.3' + - variant: 'cli' + php_version: '7.2' + - variant: 'apache' + php_version: '7.2' + - variant: 'fpm' + php_version: '7.2' + - variant: 'cli' + php_version: '7.1' + - variant: 'apache' + php_version: '7.1' + - variant: 'fpm' + php_version: '7.1' runs-on: ubuntu-latest steps: - name: Set up QEMU From f3d7b6a70f8939f580310a6f8bfbde5d8dd7e970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 17:22:38 +0100 Subject: [PATCH 022/162] Removing "ev" from extensions cause they don't build correctly --- MIGRATING.md | 4 ++-- README.md | 3 ++- extensions/7.1/ev | 1 - extensions/7.2/ev | 1 - extensions/7.3/ev | 1 - extensions/7.4/ev | 1 - utils/README.blueprint.md | 3 ++- 7 files changed, 6 insertions(+), 8 deletions(-) delete mode 120000 extensions/7.1/ev delete mode 120000 extensions/7.2/ev delete mode 120000 extensions/7.3/ev delete mode 120000 extensions/7.4/ev diff --git a/MIGRATING.md b/MIGRATING.md index f9f91e0e..dd93047c 100644 --- a/MIGRATING.md +++ b/MIGRATING.md @@ -3,7 +3,7 @@ Important changes: - v3 images are based on **Ubuntu 18.04**. v4 images are based on **Ubuntu 20.04**. -- Internally, the image will attempt to setup extensions / parameters on container startup (in the image entry point), +- Internally, the image will attempt to set up extensions / parameters on container startup (in the image entry point), but also when PHP is run. This should help alleviate a part of the problems when the entrypoint is overloaded by the user. @@ -12,7 +12,7 @@ Important changes: Important changes: - v2 images are based on a Debian Stretch. v3 images are based on **Ubuntu 18.04**. -- Interally, v3 images are built from the [Ondrej PPA](https://launchpad.net/%7Eondrej/+archive/ubuntu/php/+index?batch=75&memo=75&start=75). +- Internally, v3 images are built from the [Ondrej PPA](https://launchpad.net/%7Eondrej/+archive/ubuntu/php/+index?batch=75&memo=75&start=75). This is a radical change from v2 that was built from the official PHP Docker image. As a result, the v3 image do not have PECL installed, nor a build environment. This makes the v3 images ~200MB lighter. diff --git a/README.md b/README.md index 36eb8beb..12f5008b 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,8 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) -- *ev*, *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire*, *gettext* are not available in PHP 8.0+ +- *ev* is not available in v4 (use v3 for now) +- *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire*, *gettext* are not available in PHP 8.0+ ### Enabling/disabling extensions in the fat image diff --git a/extensions/7.1/ev b/extensions/7.1/ev deleted file mode 120000 index d523a2c1..00000000 --- a/extensions/7.1/ev +++ /dev/null @@ -1 +0,0 @@ -../core/ev \ No newline at end of file diff --git a/extensions/7.2/ev b/extensions/7.2/ev deleted file mode 120000 index d523a2c1..00000000 --- a/extensions/7.2/ev +++ /dev/null @@ -1 +0,0 @@ -../core/ev \ No newline at end of file diff --git a/extensions/7.3/ev b/extensions/7.3/ev deleted file mode 120000 index d523a2c1..00000000 --- a/extensions/7.3/ev +++ /dev/null @@ -1 +0,0 @@ -../core/ev \ No newline at end of file diff --git a/extensions/7.4/ev b/extensions/7.4/ev deleted file mode 120000 index d523a2c1..00000000 --- a/extensions/7.4/ev +++ /dev/null @@ -1 +0,0 @@ -../core/ev \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index d04f49f3..1944eff0 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -107,7 +107,8 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) -- *ev*, *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire*, *gettext* are not available in PHP 8.0+ +- *ev* is not available in v4 (use v3 for now) +- *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire*, *gettext* are not available in PHP 8.0+ ### Enabling/disabling extensions in the fat image From 9869a286b10a46d9ea42fbc90d98d8d472237f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 17:28:29 +0100 Subject: [PATCH 023/162] Fixing event build --- extensions/core/event/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/core/event/install.sh b/extensions/core/event/install.sh index dd4f2bde..c7cc9558 100755 --- a/extensions/core/event/install.sh +++ b/extensions/core/event/install.sh @@ -5,6 +5,6 @@ set -e #export EXTENSION="sockets" export PECL_EXTENSION="event" export DEV_DEPENDENCIES="libevent-dev libssl-dev" -export DEPENDENCIES="libevent-2.1-6 libevent-core-2.1-6 libevent-extra-2.1-6 libevent-openssl-2.1-6 libevent-pthreads-2.1-6 libssl1.1" +export DEPENDENCIES="libevent-2.1-7 libevent-core-2.1-7 libevent-extra-2.1-7 libevent-openssl-2.1-7 libevent-pthreads-2.1-7 libssl1.1" ../docker-install.sh From 923f40aecc868fa9e5b1933f8498bd2f6532cd5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 18:39:42 +0100 Subject: [PATCH 024/162] Fixing PHP extensions with php proxy. Removing sybase extension --- README.md | 6 ++---- extensions/7.1/ev | 1 + extensions/7.1/gettext | 1 - extensions/7.1/pdo_dblib | 1 - extensions/7.2/ev | 1 + extensions/7.2/gettext | 1 - extensions/7.2/pdo_dblib | 1 - extensions/7.3/ev | 1 + extensions/7.3/gettext | 1 - extensions/7.3/pdo_dblib | 1 - extensions/7.4/ev | 1 + extensions/7.4/gettext | 1 - extensions/7.4/pdo_dblib | 1 - extensions/8.0/ev | 1 + extensions/8.0/event | 1 + extensions/core/docker-install.sh | 15 ++++++++------- utils/README.blueprint.md | 6 ++---- utils/php_proxy.sh | 2 ++ 18 files changed, 20 insertions(+), 23 deletions(-) create mode 120000 extensions/7.1/ev delete mode 120000 extensions/7.1/gettext delete mode 120000 extensions/7.1/pdo_dblib create mode 120000 extensions/7.2/ev delete mode 120000 extensions/7.2/gettext delete mode 120000 extensions/7.2/pdo_dblib create mode 120000 extensions/7.3/ev delete mode 120000 extensions/7.3/gettext delete mode 120000 extensions/7.3/pdo_dblib create mode 120000 extensions/7.4/ev delete mode 120000 extensions/7.4/gettext delete mode 120000 extensions/7.4/pdo_dblib create mode 120000 extensions/8.0/ev create mode 120000 extensions/8.0/event diff --git a/README.md b/README.md index 12f5008b..b0b82e96 100644 --- a/README.md +++ b/README.md @@ -152,8 +152,8 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) -- *ev* is not available in v4 (use v3 for now) -- *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire*, *gettext* are not available in PHP 8.0+ +- *sybase* extension is not available in v4 (use v3) +- *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ ### Enabling/disabling extensions in the fat image @@ -179,8 +179,6 @@ As an alternative, you can use the `PHP_EXTENSIONS` global variable: PHP_EXTENSIONS=pgsql gettext imap ``` -**Note:** Sybase extension is not available on PHP 8. - ### Compiling extensions in the slim image If you are using the slim image, you can automatically compile the extensions using the `PHP_EXTENSIONS` ARG in your Dockerfile. diff --git a/extensions/7.1/ev b/extensions/7.1/ev new file mode 120000 index 00000000..d523a2c1 --- /dev/null +++ b/extensions/7.1/ev @@ -0,0 +1 @@ +../core/ev \ No newline at end of file diff --git a/extensions/7.1/gettext b/extensions/7.1/gettext deleted file mode 120000 index 0369641a..00000000 --- a/extensions/7.1/gettext +++ /dev/null @@ -1 +0,0 @@ -../core/gettext \ No newline at end of file diff --git a/extensions/7.1/pdo_dblib b/extensions/7.1/pdo_dblib deleted file mode 120000 index 2261140c..00000000 --- a/extensions/7.1/pdo_dblib +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_dblib \ No newline at end of file diff --git a/extensions/7.2/ev b/extensions/7.2/ev new file mode 120000 index 00000000..d523a2c1 --- /dev/null +++ b/extensions/7.2/ev @@ -0,0 +1 @@ +../core/ev \ No newline at end of file diff --git a/extensions/7.2/gettext b/extensions/7.2/gettext deleted file mode 120000 index 0369641a..00000000 --- a/extensions/7.2/gettext +++ /dev/null @@ -1 +0,0 @@ -../core/gettext \ No newline at end of file diff --git a/extensions/7.2/pdo_dblib b/extensions/7.2/pdo_dblib deleted file mode 120000 index 2261140c..00000000 --- a/extensions/7.2/pdo_dblib +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_dblib \ No newline at end of file diff --git a/extensions/7.3/ev b/extensions/7.3/ev new file mode 120000 index 00000000..d523a2c1 --- /dev/null +++ b/extensions/7.3/ev @@ -0,0 +1 @@ +../core/ev \ No newline at end of file diff --git a/extensions/7.3/gettext b/extensions/7.3/gettext deleted file mode 120000 index 0369641a..00000000 --- a/extensions/7.3/gettext +++ /dev/null @@ -1 +0,0 @@ -../core/gettext \ No newline at end of file diff --git a/extensions/7.3/pdo_dblib b/extensions/7.3/pdo_dblib deleted file mode 120000 index 2261140c..00000000 --- a/extensions/7.3/pdo_dblib +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_dblib \ No newline at end of file diff --git a/extensions/7.4/ev b/extensions/7.4/ev new file mode 120000 index 00000000..d523a2c1 --- /dev/null +++ b/extensions/7.4/ev @@ -0,0 +1 @@ +../core/ev \ No newline at end of file diff --git a/extensions/7.4/gettext b/extensions/7.4/gettext deleted file mode 120000 index 0369641a..00000000 --- a/extensions/7.4/gettext +++ /dev/null @@ -1 +0,0 @@ -../core/gettext \ No newline at end of file diff --git a/extensions/7.4/pdo_dblib b/extensions/7.4/pdo_dblib deleted file mode 120000 index 2261140c..00000000 --- a/extensions/7.4/pdo_dblib +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_dblib \ No newline at end of file diff --git a/extensions/8.0/ev b/extensions/8.0/ev new file mode 120000 index 00000000..d523a2c1 --- /dev/null +++ b/extensions/8.0/ev @@ -0,0 +1 @@ +../core/ev \ No newline at end of file diff --git a/extensions/8.0/event b/extensions/8.0/event new file mode 120000 index 00000000..67569f41 --- /dev/null +++ b/extensions/8.0/event @@ -0,0 +1 @@ +../core/event \ No newline at end of file diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 102c6ab7..fe52c775 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -48,9 +48,9 @@ fi if [ -n "$EXTENSION" ]; then # Let's perform a test phpenmod $EXTENSION - php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$EXTENSION}}" + /usr/bin/real_php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$EXTENSION}}" # Check that there is no output on STDERR when starting php: - OUTPUT=`php -r "echo '';" 2>&1` + OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` [[ "$OUTPUT" == "" ]] # And now, let's disable it! phpdismod $EXTENSION @@ -58,12 +58,13 @@ fi if [ -n "$PECL_EXTENSION" ]; then # Let's perform a test - PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" php /usr/local/bin/setup_extensions.php | bash - PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" php /usr/local/bin/generate_conf.php > /etc/php/${PHP_VERSION}/cli/conf.d/testextension.ini - php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$PECL_EXTENSION}}" + PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash + PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" /usr/bin/real_php /usr/local/bin/generate_conf.php > /etc/php/${PHP_VERSION}/cli/conf.d/testextension.ini + + /usr/bin/real_php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$PECL_EXTENSION}}" # Check that there is no output on STDERR when starting php: - OUTPUT=`php -r "echo '';" 2>&1` + OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` [[ "$OUTPUT" == "" ]] - PHP_EXTENSIONS="" php /usr/local/bin/setup_extensions.php | bash + PHP_EXTENSIONS="" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash rm /etc/php/${PHP_VERSION}/cli/conf.d/testextension.ini fi diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 1944eff0..f677f43e 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -107,8 +107,8 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) -- *ev* is not available in v4 (use v3 for now) -- *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire*, *gettext* are not available in PHP 8.0+ +- *sybase* extension is not available in v4 (use v3) +- *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ ### Enabling/disabling extensions in the fat image @@ -134,8 +134,6 @@ As an alternative, you can use the `PHP_EXTENSIONS` global variable: PHP_EXTENSIONS=pgsql gettext imap ``` -**Note:** Sybase extension is not available on PHP 8. - ### Compiling extensions in the slim image If you are using the slim image, you can automatically compile the extensions using the `PHP_EXTENSIONS` ARG in your Dockerfile. diff --git a/utils/php_proxy.sh b/utils/php_proxy.sh index 3237a730..fd630362 100755 --- a/utils/php_proxy.sh +++ b/utils/php_proxy.sh @@ -1,5 +1,7 @@ #!/bin/bash +#set -e + sudo chown docker:docker /opt/php_env_var_cache.php REGENERATE=$(/usr/bin/real_php /usr/local/bin/check_php_env_var_changes.php) From 5c8ef1c60e972b20a8eafe30fb80d7766efd6426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 18:46:21 +0100 Subject: [PATCH 025/162] Removing ev from PHP 8 --- README.md | 2 +- extensions/8.0/ev | 1 - utils/README.blueprint.md | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) delete mode 120000 extensions/8.0/ev diff --git a/README.md b/README.md index b0b82e96..3ac21f80 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,7 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) -- *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ +- *ev*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ ### Enabling/disabling extensions in the fat image diff --git a/extensions/8.0/ev b/extensions/8.0/ev deleted file mode 120000 index d523a2c1..00000000 --- a/extensions/8.0/ev +++ /dev/null @@ -1 +0,0 @@ -../core/ev \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index f677f43e..f572b26c 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -108,7 +108,7 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) -- *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ +- *ev*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ ### Enabling/disabling extensions in the fat image From 1f30feaafb65db299a592c18aff77232c837b139 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 19:35:24 +0100 Subject: [PATCH 026/162] Fixing double call to setup_extensions --- utils/docker-entrypoint-as-root.sh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/utils/docker-entrypoint-as-root.sh b/utils/docker-entrypoint-as-root.sh index 4b6ace36..960e9eb8 100755 --- a/utils/docker-entrypoint-as-root.sh +++ b/utils/docker-entrypoint-as-root.sh @@ -116,12 +116,15 @@ fi unset DOCKER_FOR_MAC_REMOTE_HOST unset REMOTE_HOST_FOUND -php /usr/local/bin/generate_conf.php > /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini -php /usr/local/bin/setup_extensions.php | sudo bash +sudo chown docker:docker /opt/php_env_var_cache.php +/usr/bin/real_php /usr/local/bin/check_php_env_var_changes.php &> /dev/null + +/usr/bin/real_php /usr/local/bin/generate_conf.php > /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini +/usr/bin/real_php /usr/local/bin/setup_extensions.php | sudo bash # output on the logs can be done by writing on the "tini" PID. Useful for CRONTAB TINI_PID=`ps -e | grep tini | awk '{print $1;}'` -php /usr/local/bin/generate_cron.php $TINI_PID > /tmp/generated_crontab +/usr/bin/real_php /usr/local/bin/generate_cron.php $TINI_PID > /tmp/generated_crontab chmod 0644 /tmp/generated_crontab # If generated_crontab is not empty, start supercronic @@ -130,13 +133,13 @@ if [[ -s /tmp/generated_crontab ]]; then fi if [[ "$IMAGE_VARIANT" == "apache" ]]; then - php /usr/local/bin/enable_apache_mods.php | bash + /usr/bin/real_php /usr/local/bin/enable_apache_mods.php | bash fi if [ -e /etc/container/startup.sh ]; then sudo -E -u "#$DOCKER_USER_ID" /etc/container/startup.sh fi -sudo -E -u "#$DOCKER_USER_ID" sh -c "php /usr/local/bin/startup_commands.php | bash" +sudo -E -u "#$DOCKER_USER_ID" sh -c "/usr/bin/real_php /usr/local/bin/startup_commands.php | bash" if [[ "$APACHE_DOCUMENT_ROOT" == /* ]]; then export ABSOLUTE_APACHE_DOCUMENT_ROOT="$APACHE_DOCUMENT_ROOT" From bc65bd2c1e70cb407a5e004bcef913d4aaa59a06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 19:52:14 +0100 Subject: [PATCH 027/162] Dropping support for PHP 7.1 --- .github/workflows/workflow.yml | 57 ++++++++++++++++---------------- CHANGELOG.md | 1 + Dockerfile.slim.fpm | 2 +- README.md | 30 ++++++++--------- extensions/7.1/amqp | 1 - extensions/7.1/apcu | 1 - extensions/7.1/ast | 1 - extensions/7.1/bcmath | 1 - extensions/7.1/blackfire | 1 - extensions/7.1/bz2 | 1 - extensions/7.1/dba | 1 - extensions/7.1/disable_all.sh | 1 - extensions/7.1/docker-install.sh | 1 - extensions/7.1/ds | 1 - extensions/7.1/enchant | 1 - extensions/7.1/ev | 1 - extensions/7.1/event | 1 - extensions/7.1/gd | 1 - extensions/7.1/gmp | 1 - extensions/7.1/gnupg | 1 - extensions/7.1/igbinary | 1 - extensions/7.1/imagick | 1 - extensions/7.1/imap | 1 - extensions/7.1/install_all.sh | 1 - extensions/7.1/intl | 1 - extensions/7.1/ldap | 1 - extensions/7.1/mailparse | 1 - extensions/7.1/mcrypt | 1 - extensions/7.1/memcached | 1 - extensions/7.1/mongodb | 1 - extensions/7.1/msgpack | 1 - extensions/7.1/mysqli | 1 - extensions/7.1/pcov | 1 - extensions/7.1/pdo_mysql | 1 - extensions/7.1/pdo_pgsql | 1 - extensions/7.1/pdo_sqlite | 1 - extensions/7.1/pgsql | 1 - extensions/7.1/pspell | 1 - extensions/7.1/rdkafka | 1 - extensions/7.1/redis | 1 - extensions/7.1/snmp | 1 - extensions/7.1/soap | 1 - extensions/7.1/sqlite3 | 1 - extensions/7.1/swoole | 1 - extensions/7.1/tidy | 1 - extensions/7.1/uploadprogress | 1 - extensions/7.1/uuid | 1 - extensions/7.1/weakref | 1 - extensions/7.1/xdebug | 1 - extensions/7.1/xmlrpc | 1 - extensions/7.1/yaml | 1 - utils/Dockerfile.slim.blueprint | 2 +- utils/README.blueprint.md | 2 +- 53 files changed, 48 insertions(+), 93 deletions(-) delete mode 120000 extensions/7.1/amqp delete mode 120000 extensions/7.1/apcu delete mode 120000 extensions/7.1/ast delete mode 120000 extensions/7.1/bcmath delete mode 120000 extensions/7.1/blackfire delete mode 120000 extensions/7.1/bz2 delete mode 120000 extensions/7.1/dba delete mode 120000 extensions/7.1/disable_all.sh delete mode 120000 extensions/7.1/docker-install.sh delete mode 120000 extensions/7.1/ds delete mode 120000 extensions/7.1/enchant delete mode 120000 extensions/7.1/ev delete mode 120000 extensions/7.1/event delete mode 120000 extensions/7.1/gd delete mode 120000 extensions/7.1/gmp delete mode 120000 extensions/7.1/gnupg delete mode 120000 extensions/7.1/igbinary delete mode 120000 extensions/7.1/imagick delete mode 120000 extensions/7.1/imap delete mode 120000 extensions/7.1/install_all.sh delete mode 120000 extensions/7.1/intl delete mode 120000 extensions/7.1/ldap delete mode 120000 extensions/7.1/mailparse delete mode 120000 extensions/7.1/mcrypt delete mode 120000 extensions/7.1/memcached delete mode 120000 extensions/7.1/mongodb delete mode 120000 extensions/7.1/msgpack delete mode 120000 extensions/7.1/mysqli delete mode 120000 extensions/7.1/pcov delete mode 120000 extensions/7.1/pdo_mysql delete mode 120000 extensions/7.1/pdo_pgsql delete mode 120000 extensions/7.1/pdo_sqlite delete mode 120000 extensions/7.1/pgsql delete mode 120000 extensions/7.1/pspell delete mode 120000 extensions/7.1/rdkafka delete mode 120000 extensions/7.1/redis delete mode 120000 extensions/7.1/snmp delete mode 120000 extensions/7.1/soap delete mode 120000 extensions/7.1/sqlite3 delete mode 120000 extensions/7.1/swoole delete mode 120000 extensions/7.1/tidy delete mode 120000 extensions/7.1/uploadprogress delete mode 120000 extensions/7.1/uuid delete mode 120000 extensions/7.1/weakref delete mode 120000 extensions/7.1/xdebug delete mode 120000 extensions/7.1/xmlrpc delete mode 120000 extensions/7.1/yaml diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 2af077ce..ecd005ee 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -3,12 +3,12 @@ name: Docker PHP Images GitHub workflow on: pull_request: branches: - - 'v4-dev' + - 'v4' push: branches: - - 'v4-dev' -# schedule: -# - cron: '0 0 * * 0' + - 'v4' + schedule: + - cron: '42 3 * * 0' jobs: build_test_maybe_release: @@ -39,12 +39,6 @@ jobs: php_version: '7.2' - variant: 'fpm' php_version: '7.2' - - variant: 'cli' - php_version: '7.1' - - variant: 'apache' - php_version: '7.1' - - variant: 'fpm' - php_version: '7.1' runs-on: ubuntu-latest steps: - name: Set up QEMU @@ -54,22 +48,29 @@ jobs: - uses: actions/checkout@v1 - name: Build and test run: | - PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4-dev" VARIANT="${{ matrix.variant }}" ./build-and-test.sh + PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4" VARIANT="${{ matrix.variant }}" ./build-and-test.sh docker images | grep thecodingmachine/php -# - name: Login to DockerHub -# # Merge ~ push. -# if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} -# uses: docker/login-action@v1 -# with: -# username: ${{ secrets.DOCKERHUB_USERNAME }} -# password: ${{ secrets.DOCKERHUB_TOKEN }} -# - name: Release -# # Merge ~ push. -# if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} -# run: | -# BRANCH_VARIANT=`echo "${{ matrix.variant }}" | sed 's/\./-/g'` -# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-slim-${BRANCH_VARIANT} -# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT} -# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT}-node8 -# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT}-node10 -# docker push thecodingmachine/php:${{ matrix.php_version }}-v3-${BRANCH_VARIANT}-node12 + - name: Login to DockerHub + # Merge ~ push. + if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Release + # Merge ~ push. + if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} + run: | + BRANCH_VARIANT=`echo "${{ matrix.variant }}" | sed 's/\./-/g'` + docker push thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} + docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT} + docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node8 + docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node10 + docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node12 + # Let's also tag PHP patch releases + PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o` + docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_VERSION}-v4-slim-${BRANCH_VARIANT} + docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT} + docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node10 + docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node12 + docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node14 diff --git a/CHANGELOG.md b/CHANGELOG.md index 4abe8ed0..bcfbe7ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Base image is Ubuntu 20.04 - Dropped Node 8 images +- Dropped PHP 7.1 # v3 diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 09135476..53f7cee6 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -252,7 +252,7 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P sed -i 's/^group = www-data/;group = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i 's#listen = /run/php/php${PHP_VERSION}-fpm.sock#;listen = /run/php/php${PHP_VERSION}-fpm.sock#g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i "s#pid = /run/php/php${PHP_VERSION}-fpm.pid#;pid = /run/php/php${PHP_VERSION}-fpm.pid#g" /etc/php/${PHP_VERSION}/fpm/php-fpm.conf && \ - if [ "$PHP_VERSION" = "7.1" ] || [ "$PHP_VERSION" = "7.2" ]; then \ + if [ "$PHP_VERSION" = "7.2" ]; then \ sed -i 's/^log_limit =/;log_limit =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf && \ sed -i 's/^decorate_workers_output =/;decorate_workers_output =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf; \ fi diff --git a/README.md b/README.md index cfc63fcf..6535004d 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,21 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ +| [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) +| [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.0.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) +| [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) +| [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.0.x` | fat | apache | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) +| [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) +| [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.0.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) +| [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) +| [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.0.x` | fat | fpm | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) +| [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) +| [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.0.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) +| [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) +| [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.0.x` | fat | cli | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) +| [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) +| [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) +| [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) | [thecodingmachine/php:7.4-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.4.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache) | [thecodingmachine/php:7.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.4.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node10) | [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) @@ -65,21 +80,6 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) | [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) | [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) -| [thecodingmachine/php:7.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.1.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-apache) -| [thecodingmachine/php:7.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.1.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-apache-node10) -| [thecodingmachine/php:7.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.1.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-apache-node12) -| [thecodingmachine/php:7.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.1.x` | fat | apache | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-apache-node14) -| [thecodingmachine/php:7.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.1.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-fpm) -| [thecodingmachine/php:7.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.1.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-fpm-node10) -| [thecodingmachine/php:7.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.1.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-fpm-node12) -| [thecodingmachine/php:7.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.1.x` | fat | fpm | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-fpm-node14) -| [thecodingmachine/php:7.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.1.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-cli) -| [thecodingmachine/php:7.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.1.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-cli-node10) -| [thecodingmachine/php:7.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.1.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-cli-node12) -| [thecodingmachine/php:7.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.1.x` | fat | cli | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-cli-node14) -| [thecodingmachine/php:7.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.1.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-slim-apache) -| [thecodingmachine/php:7.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.1.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-slim-fpm) -| [thecodingmachine/php:7.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.1.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.1-v4-slim-cli) diff --git a/extensions/7.1/amqp b/extensions/7.1/amqp deleted file mode 120000 index f66005fc..00000000 --- a/extensions/7.1/amqp +++ /dev/null @@ -1 +0,0 @@ -../core/amqp \ No newline at end of file diff --git a/extensions/7.1/apcu b/extensions/7.1/apcu deleted file mode 120000 index ddbb93d6..00000000 --- a/extensions/7.1/apcu +++ /dev/null @@ -1 +0,0 @@ -../core/apcu \ No newline at end of file diff --git a/extensions/7.1/ast b/extensions/7.1/ast deleted file mode 120000 index 5241c003..00000000 --- a/extensions/7.1/ast +++ /dev/null @@ -1 +0,0 @@ -../core/ast \ No newline at end of file diff --git a/extensions/7.1/bcmath b/extensions/7.1/bcmath deleted file mode 120000 index 36953ef1..00000000 --- a/extensions/7.1/bcmath +++ /dev/null @@ -1 +0,0 @@ -../core/bcmath \ No newline at end of file diff --git a/extensions/7.1/blackfire b/extensions/7.1/blackfire deleted file mode 120000 index 1179c0b9..00000000 --- a/extensions/7.1/blackfire +++ /dev/null @@ -1 +0,0 @@ -../core/blackfire \ No newline at end of file diff --git a/extensions/7.1/bz2 b/extensions/7.1/bz2 deleted file mode 120000 index 34eaa01d..00000000 --- a/extensions/7.1/bz2 +++ /dev/null @@ -1 +0,0 @@ -../core/bz2 \ No newline at end of file diff --git a/extensions/7.1/dba b/extensions/7.1/dba deleted file mode 120000 index f9598d4d..00000000 --- a/extensions/7.1/dba +++ /dev/null @@ -1 +0,0 @@ -../core/dba \ No newline at end of file diff --git a/extensions/7.1/disable_all.sh b/extensions/7.1/disable_all.sh deleted file mode 120000 index 36f58a80..00000000 --- a/extensions/7.1/disable_all.sh +++ /dev/null @@ -1 +0,0 @@ -../core/disable_all.sh \ No newline at end of file diff --git a/extensions/7.1/docker-install.sh b/extensions/7.1/docker-install.sh deleted file mode 120000 index 245891f8..00000000 --- a/extensions/7.1/docker-install.sh +++ /dev/null @@ -1 +0,0 @@ -../core/docker-install.sh \ No newline at end of file diff --git a/extensions/7.1/ds b/extensions/7.1/ds deleted file mode 120000 index edbe1af6..00000000 --- a/extensions/7.1/ds +++ /dev/null @@ -1 +0,0 @@ -../core/ds \ No newline at end of file diff --git a/extensions/7.1/enchant b/extensions/7.1/enchant deleted file mode 120000 index aa197129..00000000 --- a/extensions/7.1/enchant +++ /dev/null @@ -1 +0,0 @@ -../core/enchant \ No newline at end of file diff --git a/extensions/7.1/ev b/extensions/7.1/ev deleted file mode 120000 index d523a2c1..00000000 --- a/extensions/7.1/ev +++ /dev/null @@ -1 +0,0 @@ -../core/ev \ No newline at end of file diff --git a/extensions/7.1/event b/extensions/7.1/event deleted file mode 120000 index 67569f41..00000000 --- a/extensions/7.1/event +++ /dev/null @@ -1 +0,0 @@ -../core/event \ No newline at end of file diff --git a/extensions/7.1/gd b/extensions/7.1/gd deleted file mode 120000 index c4cfd1f9..00000000 --- a/extensions/7.1/gd +++ /dev/null @@ -1 +0,0 @@ -../core/gd \ No newline at end of file diff --git a/extensions/7.1/gmp b/extensions/7.1/gmp deleted file mode 120000 index d3dce5ec..00000000 --- a/extensions/7.1/gmp +++ /dev/null @@ -1 +0,0 @@ -../core/gmp \ No newline at end of file diff --git a/extensions/7.1/gnupg b/extensions/7.1/gnupg deleted file mode 120000 index 002cc7b2..00000000 --- a/extensions/7.1/gnupg +++ /dev/null @@ -1 +0,0 @@ -../core/gnupg \ No newline at end of file diff --git a/extensions/7.1/igbinary b/extensions/7.1/igbinary deleted file mode 120000 index c57a5ab9..00000000 --- a/extensions/7.1/igbinary +++ /dev/null @@ -1 +0,0 @@ -../core/igbinary \ No newline at end of file diff --git a/extensions/7.1/imagick b/extensions/7.1/imagick deleted file mode 120000 index 308094fe..00000000 --- a/extensions/7.1/imagick +++ /dev/null @@ -1 +0,0 @@ -../core/imagick/ \ No newline at end of file diff --git a/extensions/7.1/imap b/extensions/7.1/imap deleted file mode 120000 index 4ee55a28..00000000 --- a/extensions/7.1/imap +++ /dev/null @@ -1 +0,0 @@ -../core/imap \ No newline at end of file diff --git a/extensions/7.1/install_all.sh b/extensions/7.1/install_all.sh deleted file mode 120000 index 615edbef..00000000 --- a/extensions/7.1/install_all.sh +++ /dev/null @@ -1 +0,0 @@ -../core/install_all.sh \ No newline at end of file diff --git a/extensions/7.1/intl b/extensions/7.1/intl deleted file mode 120000 index dd21da0b..00000000 --- a/extensions/7.1/intl +++ /dev/null @@ -1 +0,0 @@ -../core/intl \ No newline at end of file diff --git a/extensions/7.1/ldap b/extensions/7.1/ldap deleted file mode 120000 index 394c7519..00000000 --- a/extensions/7.1/ldap +++ /dev/null @@ -1 +0,0 @@ -../core/ldap \ No newline at end of file diff --git a/extensions/7.1/mailparse b/extensions/7.1/mailparse deleted file mode 120000 index e29c74c5..00000000 --- a/extensions/7.1/mailparse +++ /dev/null @@ -1 +0,0 @@ -../core/mailparse \ No newline at end of file diff --git a/extensions/7.1/mcrypt b/extensions/7.1/mcrypt deleted file mode 120000 index 73504723..00000000 --- a/extensions/7.1/mcrypt +++ /dev/null @@ -1 +0,0 @@ -../core/mcrypt-7.1/ \ No newline at end of file diff --git a/extensions/7.1/memcached b/extensions/7.1/memcached deleted file mode 120000 index 13f2ea8c..00000000 --- a/extensions/7.1/memcached +++ /dev/null @@ -1 +0,0 @@ -../core/memcached \ No newline at end of file diff --git a/extensions/7.1/mongodb b/extensions/7.1/mongodb deleted file mode 120000 index 7898c8e7..00000000 --- a/extensions/7.1/mongodb +++ /dev/null @@ -1 +0,0 @@ -../core/mongodb \ No newline at end of file diff --git a/extensions/7.1/msgpack b/extensions/7.1/msgpack deleted file mode 120000 index 2a72eaa8..00000000 --- a/extensions/7.1/msgpack +++ /dev/null @@ -1 +0,0 @@ -../core/msgpack \ No newline at end of file diff --git a/extensions/7.1/mysqli b/extensions/7.1/mysqli deleted file mode 120000 index f752c283..00000000 --- a/extensions/7.1/mysqli +++ /dev/null @@ -1 +0,0 @@ -../core/mysqli \ No newline at end of file diff --git a/extensions/7.1/pcov b/extensions/7.1/pcov deleted file mode 120000 index b99a0dd2..00000000 --- a/extensions/7.1/pcov +++ /dev/null @@ -1 +0,0 @@ -../core/pcov \ No newline at end of file diff --git a/extensions/7.1/pdo_mysql b/extensions/7.1/pdo_mysql deleted file mode 120000 index f752c283..00000000 --- a/extensions/7.1/pdo_mysql +++ /dev/null @@ -1 +0,0 @@ -../core/mysqli \ No newline at end of file diff --git a/extensions/7.1/pdo_pgsql b/extensions/7.1/pdo_pgsql deleted file mode 120000 index 29ac8e8b..00000000 --- a/extensions/7.1/pdo_pgsql +++ /dev/null @@ -1 +0,0 @@ -../core/pgsql \ No newline at end of file diff --git a/extensions/7.1/pdo_sqlite b/extensions/7.1/pdo_sqlite deleted file mode 120000 index 45ffc754..00000000 --- a/extensions/7.1/pdo_sqlite +++ /dev/null @@ -1 +0,0 @@ -../core/sqlite3 \ No newline at end of file diff --git a/extensions/7.1/pgsql b/extensions/7.1/pgsql deleted file mode 120000 index 29ac8e8b..00000000 --- a/extensions/7.1/pgsql +++ /dev/null @@ -1 +0,0 @@ -../core/pgsql \ No newline at end of file diff --git a/extensions/7.1/pspell b/extensions/7.1/pspell deleted file mode 120000 index 9be96fd9..00000000 --- a/extensions/7.1/pspell +++ /dev/null @@ -1 +0,0 @@ -../core/pspell \ No newline at end of file diff --git a/extensions/7.1/rdkafka b/extensions/7.1/rdkafka deleted file mode 120000 index 8fce5d9f..00000000 --- a/extensions/7.1/rdkafka +++ /dev/null @@ -1 +0,0 @@ -../core/rdkafka/ \ No newline at end of file diff --git a/extensions/7.1/redis b/extensions/7.1/redis deleted file mode 120000 index 0727c021..00000000 --- a/extensions/7.1/redis +++ /dev/null @@ -1 +0,0 @@ -../core/redis \ No newline at end of file diff --git a/extensions/7.1/snmp b/extensions/7.1/snmp deleted file mode 120000 index f2249ffe..00000000 --- a/extensions/7.1/snmp +++ /dev/null @@ -1 +0,0 @@ -../core/snmp \ No newline at end of file diff --git a/extensions/7.1/soap b/extensions/7.1/soap deleted file mode 120000 index ea63abf6..00000000 --- a/extensions/7.1/soap +++ /dev/null @@ -1 +0,0 @@ -../core/soap \ No newline at end of file diff --git a/extensions/7.1/sqlite3 b/extensions/7.1/sqlite3 deleted file mode 120000 index abddf395..00000000 --- a/extensions/7.1/sqlite3 +++ /dev/null @@ -1 +0,0 @@ -../core/sqlite3/ \ No newline at end of file diff --git a/extensions/7.1/swoole b/extensions/7.1/swoole deleted file mode 120000 index f20d56ed..00000000 --- a/extensions/7.1/swoole +++ /dev/null @@ -1 +0,0 @@ -../core/swoole \ No newline at end of file diff --git a/extensions/7.1/tidy b/extensions/7.1/tidy deleted file mode 120000 index e0434e64..00000000 --- a/extensions/7.1/tidy +++ /dev/null @@ -1 +0,0 @@ -../core/tidy \ No newline at end of file diff --git a/extensions/7.1/uploadprogress b/extensions/7.1/uploadprogress deleted file mode 120000 index b18aa3c5..00000000 --- a/extensions/7.1/uploadprogress +++ /dev/null @@ -1 +0,0 @@ -../core/uploadprogress/ \ No newline at end of file diff --git a/extensions/7.1/uuid b/extensions/7.1/uuid deleted file mode 120000 index 2e96802e..00000000 --- a/extensions/7.1/uuid +++ /dev/null @@ -1 +0,0 @@ -../core/uuid/ \ No newline at end of file diff --git a/extensions/7.1/weakref b/extensions/7.1/weakref deleted file mode 120000 index 172cf7e0..00000000 --- a/extensions/7.1/weakref +++ /dev/null @@ -1 +0,0 @@ -../core/weakref \ No newline at end of file diff --git a/extensions/7.1/xdebug b/extensions/7.1/xdebug deleted file mode 120000 index 2ee34925..00000000 --- a/extensions/7.1/xdebug +++ /dev/null @@ -1 +0,0 @@ -../core/xdebug \ No newline at end of file diff --git a/extensions/7.1/xmlrpc b/extensions/7.1/xmlrpc deleted file mode 120000 index 2833c799..00000000 --- a/extensions/7.1/xmlrpc +++ /dev/null @@ -1 +0,0 @@ -../core/xmlrpc \ No newline at end of file diff --git a/extensions/7.1/yaml b/extensions/7.1/yaml deleted file mode 120000 index 4be2658a..00000000 --- a/extensions/7.1/yaml +++ /dev/null @@ -1 +0,0 @@ -../core/yaml \ No newline at end of file diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index a41fbfba..702dcad5 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -356,7 +356,7 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P sed -i 's/^group = www-data/;group = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i 's#listen = /run/php/php${PHP_VERSION}-fpm.sock#;listen = /run/php/php${PHP_VERSION}-fpm.sock#g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i "s#pid = /run/php/php${PHP_VERSION}-fpm.pid#;pid = /run/php/php${PHP_VERSION}-fpm.pid#g" /etc/php/${PHP_VERSION}/fpm/php-fpm.conf && \ - if [ "$PHP_VERSION" = "7.1" ] || [ "$PHP_VERSION" = "7.2" ]; then \ + if [ "$PHP_VERSION" = "7.2" ]; then \ sed -i 's/^log_limit =/;log_limit =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf && \ sed -i 's/^decorate_workers_output =/;decorate_workers_output =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf; \ fi diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index f761da7a..84ca3fe6 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -16,7 +16,7 @@ This repository contains a set of developer-friendly, general purpose PHP images {{ $image := .Orbit.Images }} ## Images -{{ $versions := list "7.4" "7.3" "7.2" "7.1" }} +{{ $versions := list "8.0" "7.4" "7.3" "7.2" }} | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ From f8f05043e847757b4c0f694d45a2938a30068d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 20:35:27 +0100 Subject: [PATCH 028/162] Fixing image push of Node 8 / 14 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index ecd005ee..d7a29bee 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -64,9 +64,9 @@ jobs: BRANCH_VARIANT=`echo "${{ matrix.variant }}" | sed 's/\./-/g'` docker push thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT} - docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node8 docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node10 docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node12 + docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 # Let's also tag PHP patch releases PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o` docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_VERSION}-v4-slim-${BRANCH_VARIANT} From 11539146edca290464002c5a5354dfad37e570aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 20:41:38 +0100 Subject: [PATCH 029/162] Updating Github badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6535004d..0080b416 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Build Status](https://travis-ci.org/thecodingmachine/docker-images-php.svg?branch=v4)](https://travis-ci.org/thecodingmachine/docker-images-php) +![Docker PHP Images GitHub workflow](https://github.com/thecodingmachine/docker-images-php/workflows/Docker%20PHP%20Images%20GitHub%20workflow/badge.svg) # General purpose PHP images for Docker From 0d4a6ed739cd0216bbf278d7f1d24fc3ea52081d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 22:02:58 +0100 Subject: [PATCH 030/162] Fixing tagging off patch releases --- .github/workflows/workflow.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index d7a29bee..e1b2a8a6 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -69,8 +69,13 @@ jobs: docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 # Let's also tag PHP patch releases PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o` - docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_VERSION}-v4-slim-${BRANCH_VARIANT} - docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT} - docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node10 - docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node12 - docker push -t thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node14 + docker tag thecodingmachine/php:${PHP_VERSION}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} + docker tag thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} + docker tag thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node10 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 + docker tag thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node12 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 + docker tag thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node14 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 + docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} + docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} + docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 + docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 + docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 From 4a5fc9db6788f00e4b458615274d7cbfa3998992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 22:12:57 +0100 Subject: [PATCH 031/162] Fixing tagging of patch releases --- .github/workflows/workflow.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index e1b2a8a6..11f9a418 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -69,11 +69,11 @@ jobs: docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 # Let's also tag PHP patch releases PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o` - docker tag thecodingmachine/php:${PHP_VERSION}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} - docker tag thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} - docker tag thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node10 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 - docker tag thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node12 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 - docker tag thecodingmachine/php:${PHP_VERSION}-v4-${BRANCH_VARIANT}-node14 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 + docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} + docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} + docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node10 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 + docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node12 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 + docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 From eda75433c734ccb5c173d942d6b1fdd11b83f60f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 22:28:51 +0100 Subject: [PATCH 032/162] Debugging tagging issue --- .github/workflows/workflow.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 11f9a418..27b21181 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -69,6 +69,7 @@ jobs: docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 # Let's also tag PHP patch releases PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o` + echo docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node10 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 From d1dfac7925f0090c1a5b74f3e594dc296e60b315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Mon, 7 Dec 2020 22:47:07 +0100 Subject: [PATCH 033/162] Fixing tagging of patch release --- .github/workflows/workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 27b21181..e453c45f 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -68,8 +68,8 @@ jobs: docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node12 docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 # Let's also tag PHP patch releases - PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o` - echo docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} + PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` + echo "Tagging patch release $PHP_PATCH_VERSION" docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node10 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 From ee83862c2b1d731c704777110f1c882d88574f87 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 18 Dec 2020 11:08:42 +0100 Subject: [PATCH 034/162] Try reproduce #228 --- build-and-test.sh | 4 ++++ tests/slim_onbuild_composer/Dockerfile | 11 +++++++++++ tests/slim_onbuild_composer/composer.json | 5 +++++ 3 files changed, 20 insertions(+) create mode 100644 tests/slim_onbuild_composer/Dockerfile create mode 100644 tests/slim_onbuild_composer/composer.json diff --git a/build-and-test.sh b/build-and-test.sh index ce89a700..ded95b54 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -19,6 +19,10 @@ docker run --rm test/slim_onbuild php -m | grep pdo_pgsql docker run --rm test/slim_onbuild php -m | grep pdo_sqlite docker rmi test/slim_onbuild +# Let's check that the extensions are available for composer using "ARG PHP_EXTENSIONS" statement: +docker build -t test/slim_onbuild_composer --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/slim_onbuild_composer +docker rmi test/slim_onbuild_composer + # Post build unit tests if [[ $VARIANT == cli* ]]; then CONTAINER_CWD=/usr/src/app; else CONTAINER_CWD=/var/www/html; fi # Default user is 1000 diff --git a/tests/slim_onbuild_composer/Dockerfile b/tests/slim_onbuild_composer/Dockerfile new file mode 100644 index 00000000..241f03eb --- /dev/null +++ b/tests/slim_onbuild_composer/Dockerfile @@ -0,0 +1,11 @@ +ARG BRANCH +ARG BRANCH_VARIANT +ARG PHP_VERSION + +ARG PHP_EXTENSIONS="gd" +FROM thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} + +COPY composer.json composer.json + +# Let's check that GD is available. +RUN composer install diff --git a/tests/slim_onbuild_composer/composer.json b/tests/slim_onbuild_composer/composer.json new file mode 100644 index 00000000..71ea8641 --- /dev/null +++ b/tests/slim_onbuild_composer/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "ext-gd": "*" + } +} From 426216aa41633b9d2f03fa645023d22b82a286a8 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 18 Dec 2020 14:32:44 +0100 Subject: [PATCH 035/162] Test slim onbluid composer --- tests/slim_onbuild_composer/Dockerfile | 2 ++ utils/php_proxy.sh | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/slim_onbuild_composer/Dockerfile b/tests/slim_onbuild_composer/Dockerfile index 241f03eb..abf76085 100644 --- a/tests/slim_onbuild_composer/Dockerfile +++ b/tests/slim_onbuild_composer/Dockerfile @@ -7,5 +7,7 @@ FROM thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} COPY composer.json composer.json +RUN env + # Let's check that GD is available. RUN composer install diff --git a/utils/php_proxy.sh b/utils/php_proxy.sh index fd630362..3237a730 100755 --- a/utils/php_proxy.sh +++ b/utils/php_proxy.sh @@ -1,7 +1,5 @@ #!/bin/bash -#set -e - sudo chown docker:docker /opt/php_env_var_cache.php REGENERATE=$(/usr/bin/real_php /usr/local/bin/check_php_env_var_changes.php) From 6e843b9e71ccfd10b665794f06878b96d328df15 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 18 Dec 2020 14:37:52 +0100 Subject: [PATCH 036/162] Test slim onbluid composer #2 --- tests/slim_onbuild_composer/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/slim_onbuild_composer/Dockerfile b/tests/slim_onbuild_composer/Dockerfile index abf76085..2ea8f735 100644 --- a/tests/slim_onbuild_composer/Dockerfile +++ b/tests/slim_onbuild_composer/Dockerfile @@ -9,5 +9,7 @@ COPY composer.json composer.json RUN env +RUN php -v + # Let's check that GD is available. RUN composer install From 3fb253f9e00e19cc5528e8025de22cc0d4d1f914 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 18 Dec 2020 14:42:21 +0100 Subject: [PATCH 037/162] Test slim onbluid composer #2 --- tests/slim_onbuild_composer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/slim_onbuild_composer/Dockerfile b/tests/slim_onbuild_composer/Dockerfile index 2ea8f735..76fd5d10 100644 --- a/tests/slim_onbuild_composer/Dockerfile +++ b/tests/slim_onbuild_composer/Dockerfile @@ -9,7 +9,7 @@ COPY composer.json composer.json RUN env -RUN php -v +RUN php -m # Let's check that GD is available. RUN composer install From f5b396c0dc309faa0cf84309339a85d1ee9f39e7 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 18 Dec 2020 14:49:15 +0100 Subject: [PATCH 038/162] Test slim onbluid composer #4 --- tests/slim_onbuild_composer/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/slim_onbuild_composer/Dockerfile b/tests/slim_onbuild_composer/Dockerfile index 76fd5d10..1bd21b53 100644 --- a/tests/slim_onbuild_composer/Dockerfile +++ b/tests/slim_onbuild_composer/Dockerfile @@ -7,9 +7,11 @@ FROM thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} COPY composer.json composer.json -RUN env - RUN php -m +RUN which php + +RUN sudo tee "/etc/php/${PHP_VERSION}/mods-available/generated_conf.ini" + # Let's check that GD is available. RUN composer install From dd52032f65e4998b081cb27ec310ea00b2ee005a Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 18 Dec 2020 14:55:21 +0100 Subject: [PATCH 039/162] Test slim onbluid composer #5 --- utils/php_proxy.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/utils/php_proxy.sh b/utils/php_proxy.sh index 3237a730..a0e5bd80 100755 --- a/utils/php_proxy.sh +++ b/utils/php_proxy.sh @@ -2,8 +2,12 @@ sudo chown docker:docker /opt/php_env_var_cache.php +echo "IN PROXY" + REGENERATE=$(/usr/bin/real_php /usr/local/bin/check_php_env_var_changes.php) +echo "REGENERATE=$REGENERATE" + if [[ "$REGENERATE" != "0" ]] && [[ "$REGENERATE" != "1" ]]; then exit 1 fi From a510d5511ca8b4c87d5f416b1f4916c5da192ebd Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 18 Dec 2020 15:03:09 +0100 Subject: [PATCH 040/162] Test slim onbluid composer #6 --- tests/slim_onbuild_composer/Dockerfile | 6 ------ utils/check_php_env_var_changes.php | 7 +++++++ utils/php_proxy.sh | 4 ---- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/tests/slim_onbuild_composer/Dockerfile b/tests/slim_onbuild_composer/Dockerfile index 1bd21b53..241f03eb 100644 --- a/tests/slim_onbuild_composer/Dockerfile +++ b/tests/slim_onbuild_composer/Dockerfile @@ -7,11 +7,5 @@ FROM thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} COPY composer.json composer.json -RUN php -m - -RUN which php - -RUN sudo tee "/etc/php/${PHP_VERSION}/mods-available/generated_conf.ini" - # Let's check that GD is available. RUN composer install diff --git a/utils/check_php_env_var_changes.php b/utils/check_php_env_var_changes.php index 96249fc1..6f548c29 100644 --- a/utils/check_php_env_var_changes.php +++ b/utils/check_php_env_var_changes.php @@ -2,7 +2,12 @@ $phpEnvVarCache = include '/opt/php_env_var_cache.php'; +error_log(var_export($phpEnvVarCache, true)); + $envVars = getenv(); + +error_log(var_export($envVars, true)); + $shouldGenerateConfig = false; $phpEnvVar = []; @@ -20,6 +25,8 @@ } } +error_log(var_export($phpEnvVar, true)); + if ($shouldGenerateConfig === false) { echo "0"; exit(0); diff --git a/utils/php_proxy.sh b/utils/php_proxy.sh index a0e5bd80..3237a730 100755 --- a/utils/php_proxy.sh +++ b/utils/php_proxy.sh @@ -2,12 +2,8 @@ sudo chown docker:docker /opt/php_env_var_cache.php -echo "IN PROXY" - REGENERATE=$(/usr/bin/real_php /usr/local/bin/check_php_env_var_changes.php) -echo "REGENERATE=$REGENERATE" - if [[ "$REGENERATE" != "0" ]] && [[ "$REGENERATE" != "1" ]]; then exit 1 fi From 23fccf95e3bc5ef8420b5885893e0a880e04f5bc Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 18 Dec 2020 15:11:51 +0100 Subject: [PATCH 041/162] Test slim onbluid composer #7 --- utils/install_selected_extensions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/install_selected_extensions.sh b/utils/install_selected_extensions.sh index f43c4efa..28f8d93c 100755 --- a/utils/install_selected_extensions.sh +++ b/utils/install_selected_extensions.sh @@ -8,7 +8,7 @@ mv /etc/apt/apt.conf.d/docker-clean /tmp/docker-clean apt-get update -php /usr/local/bin/install_selected_extensions.php +/usr/bin/real_php /usr/local/bin/install_selected_extensions.php # Let's enable autoclean again mv /tmp/docker-clean /etc/apt/apt.conf.d/docker-clean From 3a21be44e1ebf8ea83534d58a12a2fb6f2821d7b Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Fri, 18 Dec 2020 15:22:54 +0100 Subject: [PATCH 042/162] Remove debug logs --- utils/check_php_env_var_changes.php | 8 -------- 1 file changed, 8 deletions(-) diff --git a/utils/check_php_env_var_changes.php b/utils/check_php_env_var_changes.php index 6f548c29..058f3ebb 100644 --- a/utils/check_php_env_var_changes.php +++ b/utils/check_php_env_var_changes.php @@ -1,13 +1,7 @@ Date: Wed, 23 Dec 2020 15:44:40 +0100 Subject: [PATCH 043/162] Fix reference to v3 images for Node 8 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0080b416..6243c278 100644 --- a/README.md +++ b/README.md @@ -337,7 +337,7 @@ Behind the scenes, the image will: ## NodeJS -The *fat* images come with a Node variant. You can use Node 10, 12 or 14. If you need a Node 8 variant, [use thecodingmachine/php v4 images](https://github.com/thecodingmachine/docker-images-php/tree/v4). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). +The *fat* images come with a Node variant. You can use Node 10, 12 or 14. If you need a Node 8 variant, [use thecodingmachine/php v3 images](https://github.com/thecodingmachine/docker-images-php/tree/v3). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). If you use the *slim* images, you can install a NodeJS version with a simple ARG during the build: From d38ea0d9f20a186b21d45e8d88967f82d541b681 Mon Sep 17 00:00:00 2001 From: Mathias Brodala Date: Wed, 23 Dec 2020 15:47:09 +0100 Subject: [PATCH 044/162] Use general headline for migration hint --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0080b416..00d57b8e 100644 --- a/README.md +++ b/README.md @@ -656,7 +656,7 @@ services: # ... ``` -## Migrating from v2 +## Migrating from older image versions Check the [migration notes](MIGRATING.md). From cab4ba1d3acdeb36dba0637dbadac5b5e5bf5ad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 24 Dec 2020 16:34:59 +0100 Subject: [PATCH 045/162] Applying new badge to blueprint readme --- utils/README.blueprint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 84ca3fe6..e0729895 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -1,4 +1,4 @@ -[![Build Status](https://travis-ci.org/thecodingmachine/docker-images-php.svg?branch=v4)](https://travis-ci.org/thecodingmachine/docker-images-php) +![Docker PHP Images GitHub workflow](https://github.com/thecodingmachine/docker-images-php/workflows/Docker%20PHP%20Images%20GitHub%20workflow/badge.svg) # General purpose PHP images for Docker From 669937a9a6e4111c7f8485f6aee69e20af142f80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 24 Dec 2020 16:36:28 +0100 Subject: [PATCH 046/162] Backporting fix to README.blueprint --- utils/README.blueprint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 84ca3fe6..930ffacf 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -292,7 +292,7 @@ Behind the scenes, the image will: ## NodeJS -The *fat* images come with a Node variant. You can use Node 10, 12 or 14. If you need a Node 8 variant, [use thecodingmachine/php v4 images](https://github.com/thecodingmachine/docker-images-php/tree/v4). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). +The *fat* images come with a Node variant. You can use Node 10, 12 or 14. If you need a Node 8 variant, [use thecodingmachine/php v3 images](https://github.com/thecodingmachine/docker-images-php/tree/v3). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). If you use the *slim* images, you can install a NodeJS version with a simple ARG during the build: From 6a9d4dac1678d3b016cc2857b6afaaabeae57974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 24 Dec 2020 16:40:53 +0100 Subject: [PATCH 047/162] Backporting README fix to README.blueprint --- utils/README.blueprint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 84ca3fe6..adbc0d4c 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -611,7 +611,7 @@ services: # ... ``` -## Migrating from v2 +## Migrating from older image versions Check the [migration notes](MIGRATING.md). From bb9781049ffd383aaf388501971d56245d57c571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 24 Dec 2020 16:52:58 +0100 Subject: [PATCH 048/162] Enabling pcov again in PHP 8 --- extensions/8.0/pcov | 1 + 1 file changed, 1 insertion(+) create mode 120000 extensions/8.0/pcov diff --git a/extensions/8.0/pcov b/extensions/8.0/pcov new file mode 120000 index 00000000..b99a0dd2 --- /dev/null +++ b/extensions/8.0/pcov @@ -0,0 +1 @@ +../core/pcov \ No newline at end of file From ee7efbdcf2be98e5b9dfd2d24023a85bcd9443a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 24 Dec 2020 19:16:49 +0100 Subject: [PATCH 049/162] Switching PCOV to PECL build because the Debian package does not ship the PHP 8 extension --- extensions/core/pcov/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/core/pcov/install.sh b/extensions/core/pcov/install.sh index ceaa9a87..4f172cae 100755 --- a/extensions/core/pcov/install.sh +++ b/extensions/core/pcov/install.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash set -e -export EXTENSION=pcov +export PECL_EXTENSION=pcov ../docker-install.sh From f41c1160024a6204ac8d47267a2cfe1c0b18c557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 14:28:31 +0100 Subject: [PATCH 050/162] Trying to fix Mysqli check --- extensions/core/mysqli/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/core/mysqli/install.sh b/extensions/core/mysqli/install.sh index 0b98b68c..8f4b84a4 100755 --- a/extensions/core/mysqli/install.sh +++ b/extensions/core/mysqli/install.sh @@ -2,5 +2,6 @@ set -e export EXTENSION=mysql +export PHP_EXT_NAME=mysqli ../docker-install.sh From 4d380732fad1e91d3a6d0d45ab66b0f48a94aa94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 14:40:49 +0100 Subject: [PATCH 051/162] Trying to fix Mysqli check --- extensions/core/mysqli/install.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/extensions/core/mysqli/install.sh b/extensions/core/mysqli/install.sh index 8f4b84a4..da6924da 100755 --- a/extensions/core/mysqli/install.sh +++ b/extensions/core/mysqli/install.sh @@ -1,7 +1,6 @@ #!/usr/bin/env bash set -e -export EXTENSION=mysql -export PHP_EXT_NAME=mysqli +export EXTENSION=mysqli ../docker-install.sh From 172dda2ef961c0915b9686c6d66e53cdc2de76d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 14:56:11 +0100 Subject: [PATCH 052/162] Trying to fix Mysqli check --- extensions/core/docker-install.sh | 7 ++++--- extensions/core/mysqli/install.sh | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index fe52c775..a8753625 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -13,12 +13,13 @@ fi if [ -n "$EXTENSION" ]; then set +e - if apt-cache search --names-only "php${PHP_VERSION}-$EXTENSION" | grep "php${PHP_VERSION}-$EXTENSION"; then + PACKAGE_NAME=${PACKAGE_NAME:-$EXTENSION} + if apt-cache search --names-only "php${PHP_VERSION}-$PACKAGE_NAME" | grep "php${PHP_VERSION}-$PACKAGE_NAME"; then set -e - apt-get install -y --no-install-recommends php${PHP_VERSION}-$EXTENSION + apt-get install -y --no-install-recommends php${PHP_VERSION}-$PACKAGE_NAME else set -e - apt-get install -y --no-install-recommends php-$EXTENSION + apt-get install -y --no-install-recommends php-$PACKAGE_NAME fi fi diff --git a/extensions/core/mysqli/install.sh b/extensions/core/mysqli/install.sh index da6924da..f57e1733 100755 --- a/extensions/core/mysqli/install.sh +++ b/extensions/core/mysqli/install.sh @@ -2,5 +2,6 @@ set -e export EXTENSION=mysqli +export PACKAGE_NAME=mysql ../docker-install.sh From 8bf83733b6dc5311cc65b300053219e3ae02fc65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 15:02:08 +0100 Subject: [PATCH 053/162] Trying to fix Mysqli check --- extensions/core/mysqli/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/core/mysqli/install.sh b/extensions/core/mysqli/install.sh index f57e1733..b3b93ab2 100755 --- a/extensions/core/mysqli/install.sh +++ b/extensions/core/mysqli/install.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e -export EXTENSION=mysqli +export EXTENSION=mysqlnd export PACKAGE_NAME=mysql ../docker-install.sh From 742d3b979962962396791b43f8a035a75b772aa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 18:52:31 +0100 Subject: [PATCH 054/162] Trying to fix Mysqli check --- extensions/core/docker-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index a8753625..2c4a9d39 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -33,6 +33,7 @@ if [ -n "$PECL_EXTENSION" ]; then which pecl else apt-get install -y --no-install-recommends build-essential php-pear php${PHP_VERSION}-dev pkg-config + which pecl fi pecl install $PECL_EXTENSION From 6f9a11f7607132276a82ef96902d788cbc96d5b7 Mon Sep 17 00:00:00 2001 From: Astrid Date: Fri, 25 Dec 2020 20:30:14 +0100 Subject: [PATCH 055/162] Update README.md Typo in Node version? --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 1bb54949..b619312a 100644 --- a/README.md +++ b/README.md @@ -23,60 +23,60 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) | [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.0.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) | [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) -| [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.0.x` | fat | apache | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) +| [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.0.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) | [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) | [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.0.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) | [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) -| [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.0.x` | fat | fpm | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) +| [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.0.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) | [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) | [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.0.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) | [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) -| [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.0.x` | fat | cli | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) +| [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.0.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) | [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) | [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) | [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) | [thecodingmachine/php:7.4-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.4.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache) | [thecodingmachine/php:7.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.4.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node10) | [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) -| [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.4.x` | fat | apache | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) +| [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) | [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) | [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.4.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) | [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) -| [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.4.x` | fat | fpm | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) +| [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) | [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) | [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.4.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) | [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) -| [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.4.x` | fat | cli | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) +| [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) | [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) | [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) | [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) | [thecodingmachine/php:7.3-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.3.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache) | [thecodingmachine/php:7.3-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.3.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node10) | [thecodingmachine/php:7.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.3.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node12) -| [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.3.x` | fat | apache | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) +| [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.3.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) | [thecodingmachine/php:7.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.3.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm) | [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.3.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) | [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.3.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) -| [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.3.x` | fat | fpm | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) +| [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.3.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) | [thecodingmachine/php:7.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.3.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli) | [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.3.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) | [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.3.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) -| [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.3.x` | fat | cli | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) +| [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.3.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) | [thecodingmachine/php:7.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.3.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-apache) | [thecodingmachine/php:7.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.3.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-fpm) | [thecodingmachine/php:7.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.3.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-cli) | [thecodingmachine/php:7.2-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.2.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache) | [thecodingmachine/php:7.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.2.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node10) | [thecodingmachine/php:7.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.2.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node12) -| [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.2.x` | fat | apache | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) +| [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.2.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) | [thecodingmachine/php:7.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.2.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm) | [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.2.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) | [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.2.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) -| [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.2.x` | fat | fpm | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) +| [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.2.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) | [thecodingmachine/php:7.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.2.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli) | [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.2.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) | [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.2.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) -| [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x` | fat | cli | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) +| [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) | [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) | [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) | [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) From 79f660c28cb03bba8df4849541b9cb50f83f695d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 21:39:37 +0100 Subject: [PATCH 056/162] Migrating from pecl to pickle --- extensions/core/docker-install.sh | 11 ++++++----- extensions/core/install_all.sh | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 2c4a9d39..20e9aa45 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -28,15 +28,16 @@ if [ -n "$PECL_EXTENSION" ]; then # if env ready? # is phpize installed? - if which pecl && which phpize; then - echo "pecl found" - which pecl + if which pickle && which phpize; then + echo "pickle found" + which pickle else apt-get install -y --no-install-recommends build-essential php-pear php${PHP_VERSION}-dev pkg-config - which pecl + curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /usr/local/bin/pickle + chmod +x /usr/local/bin/pickle fi - pecl install $PECL_EXTENSION + pickle install $PECL_EXTENSION echo "extension=${PHP_EXT_NAME:-${PECL_EXTENSION}}.so" > /etc/php/${PHP_VERSION}/mods-available/${PHP_EXT_NAME:-${PECL_EXTENSION}}.ini # Adding this in the list of Ubuntu extensions because we use that list as a base for the modules list. # TODO: question: cannot we use /etc/php/mods-available instead??? diff --git a/extensions/core/install_all.sh b/extensions/core/install_all.sh index 0e2a174e..68dffd7d 100755 --- a/extensions/core/install_all.sh +++ b/extensions/core/install_all.sh @@ -23,3 +23,4 @@ apt-get purge -y php-pear build-essential php${PHP_VERSION}-dev pkg-config apt-get autoremove -y apt-get clean rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* +rm -f /usr/local/bin/pickle From 0a63c47de2259dfc1f246f1c06ca91a1422664c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 21:46:47 +0100 Subject: [PATCH 057/162] Fixing 302 redirect in curl --- extensions/core/docker-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 20e9aa45..a24fee3f 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -33,7 +33,7 @@ if [ -n "$PECL_EXTENSION" ]; then which pickle else apt-get install -y --no-install-recommends build-essential php-pear php${PHP_VERSION}-dev pkg-config - curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /usr/local/bin/pickle + curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -L -o /usr/local/bin/pickle chmod +x /usr/local/bin/pickle fi From c5bed4876fc6f9c7cbaa25376150ec07d2f96671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 21:52:18 +0100 Subject: [PATCH 058/162] Trying to fix pickle install --- extensions/core/docker-install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index a24fee3f..36748fef 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -35,6 +35,8 @@ if [ -n "$PECL_EXTENSION" ]; then apt-get install -y --no-install-recommends build-essential php-pear php${PHP_VERSION}-dev pkg-config curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -L -o /usr/local/bin/pickle chmod +x /usr/local/bin/pickle + which pickle + pickle -v fi pickle install $PECL_EXTENSION From c6fe6a6c9ea53bc35633a47c92925bd1df1eac04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 22:01:51 +0100 Subject: [PATCH 059/162] Trying to fix pickle install --- extensions/core/docker-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 36748fef..2b4d2ba9 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -36,6 +36,7 @@ if [ -n "$PECL_EXTENSION" ]; then curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -L -o /usr/local/bin/pickle chmod +x /usr/local/bin/pickle which pickle + /usr/local/bin/pickle -v pickle -v fi From b757f20b34c0ea1ebc1c2c3727a3867a0c1d8dc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 23:00:43 +0100 Subject: [PATCH 060/162] Trying to fix pickle install --- extensions/core/docker-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 2b4d2ba9..4f0de366 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -36,7 +36,7 @@ if [ -n "$PECL_EXTENSION" ]; then curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -L -o /usr/local/bin/pickle chmod +x /usr/local/bin/pickle which pickle - /usr/local/bin/pickle -v + php /usr/local/bin/pickle -v pickle -v fi From cca1b6913e5481a2294ba655f3ec2ef93364434c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 23:09:49 +0100 Subject: [PATCH 061/162] Trying to fix pickle install --- extensions/core/docker-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 4f0de366..601fb839 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -36,6 +36,7 @@ if [ -n "$PECL_EXTENSION" ]; then curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -L -o /usr/local/bin/pickle chmod +x /usr/local/bin/pickle which pickle + cat /usr/local/bin/pickle php /usr/local/bin/pickle -v pickle -v fi From 1fa9515a4c0cf8109b33a169f3ab8ee56f0a75b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Fri, 25 Dec 2020 23:15:51 +0100 Subject: [PATCH 062/162] Trying to fix pickle install --- extensions/core/docker-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 601fb839..09d8c35d 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -36,7 +36,7 @@ if [ -n "$PECL_EXTENSION" ]; then curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -L -o /usr/local/bin/pickle chmod +x /usr/local/bin/pickle which pickle - cat /usr/local/bin/pickle + php -v php /usr/local/bin/pickle -v pickle -v fi From 171db6c04a6ee00a363da02f388f8609e78fcf2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Sat, 26 Dec 2020 18:20:02 +0100 Subject: [PATCH 063/162] Better error reporting in PHP proxy --- utils/php_proxy.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utils/php_proxy.sh b/utils/php_proxy.sh index 3237a730..4187c52d 100755 --- a/utils/php_proxy.sh +++ b/utils/php_proxy.sh @@ -5,6 +5,8 @@ sudo chown docker:docker /opt/php_env_var_cache.php REGENERATE=$(/usr/bin/real_php /usr/local/bin/check_php_env_var_changes.php) if [[ "$REGENERATE" != "0" ]] && [[ "$REGENERATE" != "1" ]]; then + >&2 echo "Unexpected PHP proxy output:" + >&2 echo $REGENERATE exit 1 fi From b65239d452622a40013984f950122e08b129499f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Sat, 26 Dec 2020 18:30:56 +0100 Subject: [PATCH 064/162] Trying to fix mysqli issue --- extensions/core/mysqli/install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extensions/core/mysqli/install.sh b/extensions/core/mysqli/install.sh index b3b93ab2..b0cdf419 100755 --- a/extensions/core/mysqli/install.sh +++ b/extensions/core/mysqli/install.sh @@ -5,3 +5,6 @@ export EXTENSION=mysqlnd export PACKAGE_NAME=mysql ../docker-install.sh + +# Exception for this package that enables both mysql nd and mysqli +phpdismod mysqli From 5e28f7f94a8c1179d65ba577f0807e0cea4459d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Sat, 26 Dec 2020 18:36:07 +0100 Subject: [PATCH 065/162] Trying to fix mysqli issue --- extensions/core/mysqli/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/core/mysqli/install.sh b/extensions/core/mysqli/install.sh index b0cdf419..a8162cf4 100755 --- a/extensions/core/mysqli/install.sh +++ b/extensions/core/mysqli/install.sh @@ -8,3 +8,4 @@ export PACKAGE_NAME=mysql # Exception for this package that enables both mysql nd and mysqli phpdismod mysqli +phpdismod pdo_mysql From f2df9797d6225e86acbec774fa1e8c587a8200c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Sat, 26 Dec 2020 18:49:52 +0100 Subject: [PATCH 066/162] Fixing mcrypt install --- extensions/core/docker-install.sh | 10 +++++----- extensions/core/mcrypt/install.sh | 1 + extensions/core/mysqli/install.sh | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 09d8c35d..5b52b031 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -35,13 +35,13 @@ if [ -n "$PECL_EXTENSION" ]; then apt-get install -y --no-install-recommends build-essential php-pear php${PHP_VERSION}-dev pkg-config curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -L -o /usr/local/bin/pickle chmod +x /usr/local/bin/pickle - which pickle - php -v - php /usr/local/bin/pickle -v - pickle -v fi - pickle install $PECL_EXTENSION + if [ -n "$USE_PECL" ]; then + pecl install $PECL_EXTENSION + else + pickle install $PECL_EXTENSION + fi echo "extension=${PHP_EXT_NAME:-${PECL_EXTENSION}}.so" > /etc/php/${PHP_VERSION}/mods-available/${PHP_EXT_NAME:-${PECL_EXTENSION}}.ini # Adding this in the list of Ubuntu extensions because we use that list as a base for the modules list. # TODO: question: cannot we use /etc/php/mods-available instead??? diff --git a/extensions/core/mcrypt/install.sh b/extensions/core/mcrypt/install.sh index b53ff864..015a9662 100755 --- a/extensions/core/mcrypt/install.sh +++ b/extensions/core/mcrypt/install.sh @@ -3,6 +3,7 @@ set -e # Comments: MCrypt is deprecated and usage is generally discouraged. Provided here for legacy apps only. +export USE_PECL=1 export PECL_EXTENSION=mcrypt-1.0.1 export PHP_EXT_NAME=mcrypt # name of the extension (to put in PHP_EXTENSIONS variable) export DEV_DEPENDENCIES="libmcrypt-dev" diff --git a/extensions/core/mysqli/install.sh b/extensions/core/mysqli/install.sh index a8162cf4..4cbc2b31 100755 --- a/extensions/core/mysqli/install.sh +++ b/extensions/core/mysqli/install.sh @@ -6,6 +6,6 @@ export PACKAGE_NAME=mysql ../docker-install.sh -# Exception for this package that enables both mysql nd and mysqli +# Exception for this package that enables both mysqlnd and mysqli and pdo_mysql phpdismod mysqli phpdismod pdo_mysql From f3647b8fec765994b6b2317a660da0c94c6b0ceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Sat, 26 Dec 2020 18:58:48 +0100 Subject: [PATCH 067/162] Fixing swoole install --- extensions/core/swoole/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/core/swoole/install.sh b/extensions/core/swoole/install.sh index cb8c3e59..301bd059 100755 --- a/extensions/core/swoole/install.sh +++ b/extensions/core/swoole/install.sh @@ -3,4 +3,5 @@ set -e export DEV_DEPENDENCIES="zlib1g-dev" export DEPENDENCIES="zlib1g" +export USE_PECL=1 PECL_EXTENSION=swoole ../docker-install.sh From c8d89abd691da350f972bbbb7fa469494911719d Mon Sep 17 00:00:00 2001 From: Astrid Date: Sun, 27 Dec 2020 15:14:55 +0100 Subject: [PATCH 068/162] Update README.blueprint.md See https://github.com/thecodingmachine/docker-images-php/pull/236 --- utils/README.blueprint.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 5c2f5b6d..768a4ad9 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -23,15 +23,15 @@ This repository contains a set of developer-friendly, general purpose PHP images {{range $versions}}| [thecodingmachine/php:{{ . }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ . }}.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-apache) | [thecodingmachine/php:{{ . }}-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `{{ . }}.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-apache-node10) | [thecodingmachine/php:{{ . }}-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `{{ . }}.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-apache-node12) -| [thecodingmachine/php:{{ . }}-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `{{ . }}.x` | fat | apache | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-apache-node14) +| [thecodingmachine/php:{{ . }}-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `{{ . }}.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-apache-node14) | [thecodingmachine/php:{{ . }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ . }}.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-fpm) | [thecodingmachine/php:{{ . }}-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `{{ . }}.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-fpm-node10) | [thecodingmachine/php:{{ . }}-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `{{ . }}.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-fpm-node12) -| [thecodingmachine/php:{{ . }}-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `{{ . }}.x` | fat | fpm | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-fpm-node14) +| [thecodingmachine/php:{{ . }}-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `{{ . }}.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-fpm-node14) | [thecodingmachine/php:{{ . }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ . }}.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-cli) | [thecodingmachine/php:{{ . }}-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `{{ . }}.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-cli-node10) | [thecodingmachine/php:{{ . }}-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `{{ . }}.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-cli-node12) -| [thecodingmachine/php:{{ . }}-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `{{ . }}.x` | fat | cli | `8.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-cli-node14) +| [thecodingmachine/php:{{ . }}-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `{{ . }}.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-cli-node14) | [thecodingmachine/php:{{ . }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ . }}.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-slim-apache) | [thecodingmachine/php:{{ . }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ . }}.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-slim-fpm) | [thecodingmachine/php:{{ . }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ . }}.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-slim-cli) @@ -68,7 +68,7 @@ Example with PHP-FPM: $ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:{{ $image.php_version }}-v4-fpm ``` -Example with Apache + Node 8.x in a Dockerfile: +Example with Apache + Node 14.x in a Dockerfile: **Dockerfile** ```Dockerfile From eb6f1fd371e34e195e4753f63f284c58ea4835ce Mon Sep 17 00:00:00 2001 From: Astrid Date: Sun, 27 Dec 2020 15:22:27 +0100 Subject: [PATCH 069/162] Update README.md Correction --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b619312a..5c589880 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ Example with PHP-FPM: $ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:7.4-v4-fpm ``` -Example with Apache + Node 8.x in a Dockerfile: +Example with Apache + Node 14.x in a Dockerfile: **Dockerfile** ```Dockerfile From ec9bdcb665ea501e0185a019043f233035ff0344 Mon Sep 17 00:00:00 2001 From: Dorian Savina Date: Thu, 11 Mar 2021 11:58:59 +0100 Subject: [PATCH 070/162] [fix] install event extension using PECL (pickle errors on latest version '3.0.2r1' due to unrecognizable version string format) Signed-off-by: Dorian Savina --- extensions/core/event/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/extensions/core/event/install.sh b/extensions/core/event/install.sh index c7cc9558..123a2723 100755 --- a/extensions/core/event/install.sh +++ b/extensions/core/event/install.sh @@ -3,6 +3,7 @@ set -e # Sockets is required for event extension to work. #export EXTENSION="sockets" +export USE_PECL=1 export PECL_EXTENSION="event" export DEV_DEPENDENCIES="libevent-dev libssl-dev" export DEPENDENCIES="libevent-2.1-7 libevent-core-2.1-7 libevent-extra-2.1-7 libevent-openssl-2.1-7 libevent-pthreads-2.1-7 libssl1.1" From 1e0d9bc3ed6e51cfe1dbac6e3333982f38e0c546 Mon Sep 17 00:00:00 2001 From: Dorian Savina Date: Wed, 10 Mar 2021 10:20:46 +0100 Subject: [PATCH 071/162] allow overriding default INI values in extensions Signed-off-by: Dorian Savina --- utils/generate_conf.php | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/utils/generate_conf.php b/utils/generate_conf.php index d5488422..bd72453a 100644 --- a/utils/generate_conf.php +++ b/utils/generate_conf.php @@ -8,22 +8,6 @@ // Reading environment variables from $_SERVER (because $_ENV is not necessarily populated, depending on variables_order directive): -foreach ($_SERVER as $key => $value) { - if (strpos($key, 'PHP_INI_') === 0) { - $iniParam = substr($key, 8); - if ($iniParam !== 'SMTP') { - // SMTP is the only php.ini parameter that contains uppercase letters (!) - $iniParam = strtolower($iniParam); - } - $iniParam = str_replace('__', '.', $iniParam); - // Let's protect the value if this is a string. - if (!is_numeric($value) && $iniParam !== 'error_reporting') { - $value = '"'.str_replace('"', '\\"', $value).'"'; - } - echo "$iniParam=$value\n"; - } -} - if (enableExtension('xdebug')) { //echo "zend_extension=xdebug.so\n"; echo "xdebug.client_host=".getenv('XDEBUG_CLIENT_HOST')."\n"; @@ -40,3 +24,19 @@ //echo "extension=blackfire.so\n"; echo "blackfire.agent_socket=tcp://$blackFireAgent:8707\n"; } + +foreach ($_SERVER as $key => $value) { + if (strpos($key, 'PHP_INI_') === 0) { + $iniParam = substr($key, 8); + if ($iniParam !== 'SMTP') { + // SMTP is the only php.ini parameter that contains uppercase letters (!) + $iniParam = strtolower($iniParam); + } + $iniParam = str_replace('__', '.', $iniParam); + // Let's protect the value if this is a string. + if (!is_numeric($value) && $iniParam !== 'error_reporting') { + $value = '"'.str_replace('"', '\\"', $value).'"'; + } + echo "$iniParam=$value\n"; + } +} From 002fa49fe6c5f6c68cc7c1809b49d01ec6cef5f7 Mon Sep 17 00:00:00 2001 From: Dorian Savina Date: Thu, 11 Mar 2021 11:48:36 +0100 Subject: [PATCH 072/162] [tests] add check on default/overridden INI option 'xdebug.mode' Signed-off-by: Dorian Savina --- build-and-test.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build-and-test.sh b/build-and-test.sh index ded95b54..564b1726 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -183,6 +183,12 @@ set -e # Let's check that the "xdebug.client_host" contains a value different from "no value" docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.client_host| grep -v "no value" +# Let's check that "xdebug.mode" is set to "debug" by default +docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug" + +# Let's check that "xdebug.mode" is properly overridden +docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_INI_XDEBUG__MODE=debug,coverage thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug,coverage" + if [[ "${PHP_VERSION}" != "7.4" ]] && [[ "${PHP_VERSION}" != "8.0" ]]; then # Tests that blackfire + xdebug will output an error RESULT=`docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_EXTENSION_BLACKFIRE=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -v 2>&1 | grep 'WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire.'` From 411b9e2b560f1a09b785e98776a0d4cc0b755698 Mon Sep 17 00:00:00 2001 From: Quentin Dreyer Date: Wed, 11 Nov 2020 11:12:01 +0100 Subject: [PATCH 073/162] docs: remove prebuild extensions --- utils/README.blueprint.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 768a4ad9..ad29be11 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -147,15 +147,12 @@ FROM thecodingmachine/php:{{ $image.php_version }}-v4-slim-apache Beware! The `ARG PHP_EXTENSIONS` command must be written before the `FROM`. This is not a typo. -Note: the slim image comes with literally no extensions. Not even "opcache" which is definitely useful performance-wise. -We highly recommend to install at least the "opcache" extension. - **Heads up**: if you are using multistage builds, the "ARG" variable must be put at the very top of the file (before the first FROM): ```Dockerfile # The PHP_EXTENSIONS ARG will apply to the "slim" image -ARG PHP_EXTENSIONS="apcu mysqli opcache pdo_mysql zip soap" +ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql soap" FROM thecodingmachine/php:7.2-v4-apache-node10 AS builder From e689123f414bf0010022c2fd644cc4430dcf32ac Mon Sep 17 00:00:00 2001 From: Bastien Jaillot Date: Tue, 29 Jun 2021 12:31:04 +0200 Subject: [PATCH 074/162] Support rdkafka extension for PHP 8.0 --- extensions/8.0/rdfafka | 1 + 1 file changed, 1 insertion(+) create mode 120000 extensions/8.0/rdfafka diff --git a/extensions/8.0/rdfafka b/extensions/8.0/rdfafka new file mode 120000 index 00000000..c9f5ff17 --- /dev/null +++ b/extensions/8.0/rdfafka @@ -0,0 +1 @@ +../core/rdkafka \ No newline at end of file From cb32ff006d1bc7ee3c1679ae54df016980fed251 Mon Sep 17 00:00:00 2001 From: Robert Juzak Date: Fri, 16 Jul 2021 14:18:27 +0200 Subject: [PATCH 075/162] added grpc extension --- extensions/7.2/grpc | 1 + extensions/7.3/grpc | 1 + extensions/7.4/grpc | 1 + extensions/8.0/grpc | 1 + extensions/core/grpc/install.sh | 9 +++++++++ utils/README.blueprint.md | 2 +- 6 files changed, 14 insertions(+), 1 deletion(-) create mode 120000 extensions/7.2/grpc create mode 120000 extensions/7.3/grpc create mode 120000 extensions/7.4/grpc create mode 120000 extensions/8.0/grpc create mode 100755 extensions/core/grpc/install.sh diff --git a/extensions/7.2/grpc b/extensions/7.2/grpc new file mode 120000 index 00000000..57533a58 --- /dev/null +++ b/extensions/7.2/grpc @@ -0,0 +1 @@ +../core/grpc \ No newline at end of file diff --git a/extensions/7.3/grpc b/extensions/7.3/grpc new file mode 120000 index 00000000..57533a58 --- /dev/null +++ b/extensions/7.3/grpc @@ -0,0 +1 @@ +../core/grpc \ No newline at end of file diff --git a/extensions/7.4/grpc b/extensions/7.4/grpc new file mode 120000 index 00000000..57533a58 --- /dev/null +++ b/extensions/7.4/grpc @@ -0,0 +1 @@ +../core/grpc \ No newline at end of file diff --git a/extensions/8.0/grpc b/extensions/8.0/grpc new file mode 120000 index 00000000..57533a58 --- /dev/null +++ b/extensions/8.0/grpc @@ -0,0 +1 @@ +../core/grpc \ No newline at end of file diff --git a/extensions/core/grpc/install.sh b/extensions/core/grpc/install.sh new file mode 100755 index 00000000..1687e5a4 --- /dev/null +++ b/extensions/core/grpc/install.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e +export USE_PECL=1 +export DEV_DEPENDENCIES=zlib1g-dev + +export PECL_EXTENSION=grpc + +../docker-install.sh diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 768a4ad9..5ba3b990 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -101,7 +101,7 @@ Below is a list of extensions available in this image: **Enabled by default (in addition to extensions enabled in Slim image):** apcu mysqli pdo_mysql igbinary redis soap -**Available (can be enabled using environment variables):** amqp ast bcmath blackfire bz2 dba ds enchant ev event exif mailparse msgpack gd gettext gmp gnupg igbinary imagick imap intl ldap mcrypt memcached mongodb pcov pdo_dblib pdo_pgsql pdo_sqlite pgsql pspell shmop snmp sockets sqlite3 swoole tidy uploadprogress uuid weakref(-beta) xdebug xmlrpc xsl yaml +**Available (can be enabled using environment variables):** amqp ast bcmath blackfire bz2 dba ds enchant ev event exif mailparse msgpack gd gettext gmp gnupg grpc igbinary imagick imap intl ldap mcrypt memcached mongodb pcov pdo_dblib pdo_pgsql pdo_sqlite pgsql pspell shmop snmp sockets sqlite3 swoole tidy uploadprogress uuid weakref(-beta) xdebug xmlrpc xsl yaml **Note**: From e1909655e8332597afb8d4a9eafbbcf25ceaf810 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 22 Sep 2021 20:30:54 +0200 Subject: [PATCH 076/162] Enhance builder Use BuildKit, add header to blueprint exported files and start a Makefile for common build usages. --- CHANGELOG.md | 41 +++++-- Dockerfile.apache | 1 + Dockerfile.apache.node10 | 1 + Dockerfile.apache.node12 | 1 + Dockerfile.apache.node14 | 1 + Dockerfile.cli | 1 + Dockerfile.cli.node10 | 1 + Dockerfile.cli.node12 | 1 + Dockerfile.cli.node14 | 1 + Dockerfile.fpm | 1 + Dockerfile.fpm.node10 | 1 + Dockerfile.fpm.node12 | 1 + Dockerfile.fpm.node14 | 1 + Dockerfile.slim.apache | 1 + Dockerfile.slim.cli | 1 + Dockerfile.slim.fpm | 1 + README.md | 207 +++++++++++++++++----------------- build-and-test.sh | 73 +++++++----- extensions/8.0/rdfafka | 1 - images.yml | 2 +- tests/slim_onbuild/Dockerfile | 2 +- utils/README.blueprint.md | 67 ++++++----- utils/setup_extensions.php | 34 +++--- 23 files changed, 243 insertions(+), 199 deletions(-) delete mode 120000 extensions/8.0/rdfafka diff --git a/CHANGELOG.md b/CHANGELOG.md index bcfbe7ef..e8b8bf0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,37 +1,58 @@ -# v4 +# Change Log -## New features +## Version 4 + +### Minor changes + +* **2021-09-22** + * Enhance builder | Use BuildKit, add header to blueprint exported files and start a Makefile for common build usages. + +### Initial + +#### New features - Support for PHP 8.0 - Support for Node 14 -## Breaking changes +#### Breaking changes - Base image is Ubuntu 20.04 - Dropped Node 8 images - Dropped PHP 7.1 -# v3 +### Version 3 + +### Initial + +#### Important changes + +v2 images are based on a Debian Stretch. v3 images are based on Ubuntu 18.04. +Interally, v3 images are built from the Ondrej PPA. This is a radical change from v2 that was built from the official PHP Docker image. As a result, the v3 image do not have PECL installed, nor a build environment. This makes the v3 images ~200MB lighter. + +#### Changes in extensions + +The following extensions are now enabled by default: calendar exif pcntl shmop sockets sysvmsg sysvsem sysvshm wddx zip +The sqlite3 extension was previously enabled by default, but must now be enabled manually -See MIGRATING.md +### Version 2 -# v2 +### Initial -## New features +#### New features - thecodingmachine/php image now has a "slim" variant that does not contain any extension but that can be used to [build the extensions very easily](https://github.com/thecodingmachine/docker-images-php/blob/dfdaa984f0fcc3d66a1b9fef5a6643582deb4d0d/README.md#compiling-extensions-in-the-slim-image). -## Breaking changes +#### Breaking changes - PHP 7.1 base image is now **Debian Stretch** - Dropped Node 6 images -## New extensions +#### New extensions - Imagick -## Organization +#### Organization The project layout has been deeply changed. There is now only one branch for all the PHP versions. Each extension now has its own installation script in the `/extensions/core` directory with symlinks for the diff --git a/Dockerfile.apache b/Dockerfile.apache index 41b5b0b5..f577d20e 100644 --- a/Dockerfile.apache +++ b/Dockerfile.apache @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION diff --git a/Dockerfile.apache.node10 b/Dockerfile.apache.node10 index 2a2e087c..32150d4a 100644 --- a/Dockerfile.apache.node10 +++ b/Dockerfile.apache.node10 @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache diff --git a/Dockerfile.apache.node12 b/Dockerfile.apache.node12 index fbdb151a..85defd51 100644 --- a/Dockerfile.apache.node12 +++ b/Dockerfile.apache.node12 @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache diff --git a/Dockerfile.apache.node14 b/Dockerfile.apache.node14 index 0fcd0b59..fc95148c 100644 --- a/Dockerfile.apache.node14 +++ b/Dockerfile.apache.node14 @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache diff --git a/Dockerfile.cli b/Dockerfile.cli index 5c8662dd..4d4443a1 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION diff --git a/Dockerfile.cli.node10 b/Dockerfile.cli.node10 index 2f1739f9..c23ed284 100644 --- a/Dockerfile.cli.node10 +++ b/Dockerfile.cli.node10 @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli diff --git a/Dockerfile.cli.node12 b/Dockerfile.cli.node12 index d68fa8d2..d9e4d051 100644 --- a/Dockerfile.cli.node12 +++ b/Dockerfile.cli.node12 @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli diff --git a/Dockerfile.cli.node14 b/Dockerfile.cli.node14 index 0cb4ae72..27716f9a 100644 --- a/Dockerfile.cli.node14 +++ b/Dockerfile.cli.node14 @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli diff --git a/Dockerfile.fpm b/Dockerfile.fpm index 8621add5..7920c129 100644 --- a/Dockerfile.fpm +++ b/Dockerfile.fpm @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION diff --git a/Dockerfile.fpm.node10 b/Dockerfile.fpm.node10 index 63ed96ef..aee0ec14 100644 --- a/Dockerfile.fpm.node10 +++ b/Dockerfile.fpm.node10 @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm diff --git a/Dockerfile.fpm.node12 b/Dockerfile.fpm.node12 index 26fcd146..b25d317a 100644 --- a/Dockerfile.fpm.node12 +++ b/Dockerfile.fpm.node12 @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm diff --git a/Dockerfile.fpm.node14 b/Dockerfile.fpm.node14 index 0555d128..8d3f03f3 100644 --- a/Dockerfile.fpm.node14 +++ b/Dockerfile.fpm.node14 @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 8612ae09..15c6971d 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 51b67e2f..49ae479b 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 53f7cee6..1bf6b26c 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -1,3 +1,4 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " diff --git a/README.md b/README.md index 5c589880..a799c33f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md) ![Docker PHP Images GitHub workflow](https://github.com/thecodingmachine/docker-images-php/workflows/Docker%20PHP%20Images%20GitHub%20workflow/badge.svg) # General purpose PHP images for Docker @@ -18,70 +19,73 @@ This repository contains a set of developer-friendly, general purpose PHP images + | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ -| [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) -| [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.0.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) -| [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) -| [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.0.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) -| [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) -| [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.0.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) -| [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) -| [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.0.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) -| [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) -| [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.0.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) -| [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) -| [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.0.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) -| [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) -| [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) -| [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) -| [thecodingmachine/php:7.4-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.4.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache) -| [thecodingmachine/php:7.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.4.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node10) -| [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) -| [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) -| [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) -| [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.4.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) -| [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) -| [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) -| [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) -| [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.4.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) -| [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) -| [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) -| [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) -| [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) -| [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) -| [thecodingmachine/php:7.3-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.3.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache) -| [thecodingmachine/php:7.3-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.3.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node10) -| [thecodingmachine/php:7.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.3.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node12) -| [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.3.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) -| [thecodingmachine/php:7.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.3.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm) -| [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.3.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) -| [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.3.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) -| [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.3.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) -| [thecodingmachine/php:7.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.3.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli) -| [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.3.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) -| [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.3.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) -| [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.3.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) -| [thecodingmachine/php:7.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.3.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-apache) -| [thecodingmachine/php:7.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.3.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-fpm) -| [thecodingmachine/php:7.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.3.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-cli) -| [thecodingmachine/php:7.2-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.2.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache) -| [thecodingmachine/php:7.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.2.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node10) -| [thecodingmachine/php:7.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.2.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node12) -| [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.2.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) -| [thecodingmachine/php:7.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.2.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm) -| [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.2.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) -| [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.2.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) -| [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.2.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) -| [thecodingmachine/php:7.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.2.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli) -| [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.2.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) -| [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.2.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) -| [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) -| [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) -| [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) -| [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) - - +| [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) +| [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.0.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) +| [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) +| [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.0.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) +| [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) +| [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.0.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) +| [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) +| [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.0.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) +| [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) +| [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.0.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) +| [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) +| [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.0.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) +| [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) +| [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) +| [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) +| [thecodingmachine/php:7.4-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.4.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache) +| [thecodingmachine/php:7.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.4.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node10) +| [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) +| [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) +| [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) +| [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.4.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) +| [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) +| [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) +| [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) +| [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.4.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) +| [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) +| [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) +| [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) +| [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) +| [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) +| [thecodingmachine/php:7.3-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.3.x`(1) | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache) +| [thecodingmachine/php:7.3-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.3.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node10) +| [thecodingmachine/php:7.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.3.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node12) +| [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.3.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) +| [thecodingmachine/php:7.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.3.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm) +| [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.3.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) +| [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.3.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) +| [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.3.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) +| [thecodingmachine/php:7.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.3.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli) +| [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.3.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) +| [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.3.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) +| [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.3.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) +| [thecodingmachine/php:7.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.3.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-apache) +| [thecodingmachine/php:7.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.3.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-fpm) +| [thecodingmachine/php:7.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.3.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-cli) +| [thecodingmachine/php:7.2-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.2.x`(1) | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache) +| [thecodingmachine/php:7.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.2.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node10) +| [thecodingmachine/php:7.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.2.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node12) +| [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.2.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) +| [thecodingmachine/php:7.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.2.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm) +| [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.2.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) +| [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.2.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) +| [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.2.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) +| [thecodingmachine/php:7.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.2.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli) +| [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) +| [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) +| [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) +| [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) +| [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) +| [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) + + +* (1) [PHP 7.2 and 7.3 are end of life](https://www.php.net/supported-versions.php) +* (2) [Node 10 is end of life](https://nodejs.org/en/about/releases/) Note: we also tag patch releases of PHP versions. So you can specify a specific patch release using thecodingmachine/php:**8.0.2**-v4-cli for instance. However, unless you have a **very specific need** (for instance if the latest patch release of PHP introduced regressions), believe you have no valid reason to ask explicitly for 8.0.2 for instance. @@ -98,26 +102,26 @@ These images are based on the [official PHP image](https://hub.docker.com/_/php/ Example with CLI: ```bash -$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:7.4-v4-cli php your-script.php +$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:8.0-v4-cli php your-script.php ``` Example with Apache: ```bash -$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:7.4-v4-apache +$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:8.0-v4-apache ``` Example with PHP-FPM: ```bash -$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:7.4-v4-fpm +$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:8.0-v4-fpm ``` Example with Apache + Node 14.x in a Dockerfile: **Dockerfile** ```Dockerfile -FROM thecodingmachine/php:7.4-v4-apache-node14 +FROM thecodingmachine/php:8.0-v4-apache-node14 COPY src/ /var/www/html/ RUN composer install @@ -131,7 +135,7 @@ This image comes with 2 "types": the *slim* and the **fat** image. The slim image contains only a set a base PHP extensions. -Only these extensions are available in the slim image: `calendar ctype curl dom exif fileinfo ftp gettext iconv json mbstring opcache pcntl pdo phar posix readline shmop simplexml sockets sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter xsl zip` +Only these extensions are available in the slim image: `calendar` `ctype` `curl` `dom` `exif` `fileinfo` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `pcntl` `pdo` `phar` `posix` `readline` `shmop` `simplexml` `sockets` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `wddx` `xml` `xmlreader` `xmlwriter` `xsl` `zip` These extensions are enabled by default. @@ -146,7 +150,7 @@ Below is a list of extensions available in this image: **Enabled by default (in addition to extensions enabled in Slim image):** apcu mysqli pdo_mysql igbinary redis soap -**Available (can be enabled using environment variables):** amqp ast bcmath blackfire bz2 dba ds enchant ev event exif mailparse msgpack gd gettext gmp gnupg igbinary imagick imap intl ldap mcrypt memcached mongodb pcov pdo_dblib pdo_pgsql pdo_sqlite pgsql pspell shmop snmp sockets sqlite3 swoole tidy uploadprogress uuid weakref(-beta) xdebug xmlrpc xsl yaml +**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` **Note**: @@ -165,7 +169,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:7.4-v4-apache-node14 + image: thecodingmachine/php:8.0-v4-apache-node16 environment: # Enable the PostgreSQL extension PHP_EXTENSION_PGSQL: 1 @@ -175,7 +179,7 @@ services: As an alternative, you can use the `PHP_EXTENSIONS` global variable: -``` +```bash PHP_EXTENSIONS=pgsql gettext imap ``` @@ -185,24 +189,21 @@ If you are using the slim image, you can automatically compile the extensions us ```Dockerfile ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql redis soap" -FROM thecodingmachine/php:7.4-v4-slim-apache +FROM thecodingmachine/php:8.0-v4-slim-apache # The build will automatically trigger the download and compilation # of the extensions (thanks to a ONBUILD hook in the slim image) ``` Beware! The `ARG PHP_EXTENSIONS` command must be written before the `FROM`. This is not a typo. -Note: the slim image comes with literally no extensions. Not even "opcache" which is definitely useful performance-wise. -We highly recommend to install at least the "opcache" extension. - **Heads up**: if you are using multistage builds, the "ARG" variable must be put at the very top of the file (before the first FROM): ```Dockerfile # The PHP_EXTENSIONS ARG will apply to the "slim" image -ARG PHP_EXTENSIONS="apcu mysqli opcache pdo_mysql zip soap" +ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql soap" -FROM thecodingmachine/php:7.2-v4-apache-node10 AS builder +FROM thecodingmachine/php:8.0-v4-apache-node16 AS builder COPY --chown=docker:docker sources/web . RUN composer install &&\ @@ -223,11 +224,11 @@ not contain Node, and contains only required extensions. ## Setting parameters in php.ini -By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-7.4/php.ini-development) file that comes with PHP. +By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-8.0/php.ini-development) file that comes with PHP. You can use the production `php.ini` file using the `TEMPLATE_PHP_INI` environment variable: -``` +```bash # Use the production php.ini file as a base TEMPLATE_PHP_INI=production ``` @@ -238,7 +239,7 @@ You can override parameters in `php.ini` using the PHP_INI_XXX environment varia version: '3' services: my_app: - image: thecodingmachine/php:7.4-v4-apache-node14 + image: thecodingmachine/php:8.0-v4-apache-node16 environment: # set the parameter memory_limit=1g PHP_INI_MEMORY_LIMIT: 1g @@ -254,7 +255,7 @@ If your `php.ini` parameter contains a dot ("."), you can replace it with a doub For instance: -``` +```bash # Will set the parameter xdebug.remote_autostart=1 PHP_INI_XDEBUG__REMOTE_AUTOSTART=1 ``` @@ -276,7 +277,7 @@ you are using: For the *apache* variant, you can change the document root of Apache (i.e. your "public" directory) by using the `APACHE_DOCUMENT_ROOT` variable: -``` +```bash # The root of your website is in the "public" directory: APACHE_DOCUMENT_ROOT=public/ ``` @@ -284,7 +285,7 @@ APACHE_DOCUMENT_ROOT=public/ If the APACHE_DOCUMENT_ROOT starts with a "/", it will be considered an absolute path. If the APACHE_DOCUMENT_ROOT does not starts with a "/", it will be a path relative to "/var/www/html". -``` +```bash # These 2 variables are identical APACHE_DOCUMENT_ROOT=public/ APACHE_DOCUMENT_ROOT=/var/www/html/public @@ -300,7 +301,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:7.4-v4-apache-node14 + image: thecodingmachine/php:8.0-v4-apache-node16 environment: # Enable the DAV extension for Apache APACHE_EXTENSION_DAV: 1 @@ -310,18 +311,18 @@ services: As an alternative, you can use the `APACHE_EXTENSIONS` global variable: -``` +```bash APACHE_EXTENSIONS="dav ssl" ``` -**Apache modules enabled by default:** access_compat, alias, auth_basic, authn_core, authn_file, authz_core, authz_host, authz_user, autoindex, deflate, dir, env, expires, filter, mime, mpm_prefork, negotiation, php7, reqtimeout, rewrite, setenvif, status +**Apache modules enabled by default:** `access_compat` `alias` `auth_basic` `authn_core` `authn_file` `authz_core` `authz_host` `authz_user` `autoindex` `deflate` `dir` `env` `expires` `filter` `mime` `mpm_prefork` `negotiation` `php7` `reqtimeout` `rewrite` `setenvif` `status` -**Apache modules available:** access_compat, actions, alias, allowmethods, asis, auth_basic, auth_digest, auth_form, authn_anon, authn_core, authn_dbd, authn_dbm, authn_file, authn_socache, authnz_fcgi, authnz_ldap, authz_core, authz_dbd, authz_dbm, authz_groupfile, authz_host, authz_owner, authz_user, autoindex, buffer, cache, cache_disk, cache_socache, cgi, cgid, charset_lite, data, dav, dav_fs, dav_lock, dbd, deflate, dialup, dir, dump_io, echo, env, ext_filter, expires, file_cache, filter, headers, heartbeat, heartmonitor, ident, include, info, lbmethod_bybusyness, lbmethod_byrequests, lbmethod_bytraffic, lbmethod_heartbeat, ldap, log_debug, log_forensic, lua, macro, mime, mime_magic, mpm_event, mpm_prefork, mpm_worker, negotiation, php7, proxy, proxy_ajp, proxy_balancer, proxy_connect, proxy_express, proxy_fcgi, proxy_fdpass, proxy_ftp, proxy_html, proxy_http, proxy_scgi, proxy_wstunnel, ratelimit, reflector, remoteip, reqtimeout, request, rewrite, sed, session, session_cookie, session_crypto, session_dbd, setenvif, slotmem_plain, slotmem_shm, socache_dbm, socache_memcache, socache_shmcb, speling, ssl, status, substitute, suexec, unique_id, userdir, usertrack, vhost_alias, xml2enc +**Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `buffer` `cache` `cache_disk` `cache_socache` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `ident` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php7` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_html` `proxy_http` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` ## Debugging -To enable XDebug, you simply have to set the environment variable: +To enable XDebug` `you simply have to set the environment variable: ```bash PHP_EXTENSION_XDEBUG=1 @@ -337,14 +338,14 @@ Behind the scenes, the image will: ## NodeJS -The *fat* images come with a Node variant. You can use Node 10, 12 or 14. If you need a Node 8 variant, [use thecodingmachine/php v3 images](https://github.com/thecodingmachine/docker-images-php/tree/v3). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). +The *fat* images come with a Node variant. You can use Node 10, 12, 14 or 16. If you need a Node 8 variant, [use thecodingmachine/php v3 images](https://github.com/thecodingmachine/docker-images-php/tree/v3). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). If you use the *slim* images, you can install a NodeJS version with a simple ARG during the build: ```Dockerfile ARG NODE_VERSION=14 -FROM thecodingmachine/php:7.4-v4-slim-apache -# The build will automatically trigger the download of Node 10 +FROM thecodingmachine/php:8.0-v4-slim-apache +# The build will automatically trigger the download of Node 14 # (thanks to a ONBUILD hook in the slim image) ``` @@ -395,8 +396,8 @@ In production, you want to change back the Apache user to www-data. This can be done easily: **Dockerfile** -``` -FROM thecodingmachine/php:7.4-v4-apache +```Dockerfile +FROM thecodingmachine/php:8.0-v4-apache # ... @@ -440,7 +441,7 @@ a single argument before the "FROM" clause in your Dockerfile: ```Dockerfile ARG INSTALL_CRON=1 -FROM thecodingmachine/php:7.4-v4-slim-apache +FROM thecodingmachine/php:8.0-v4-slim-apache # The build triggers automatically the installation of Cron ``` @@ -493,7 +494,7 @@ If such a file is mounted in the image, it will be executed on container startup ```bash docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp \ - -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:7.4-v4-cli php your-script.php + -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:8.0-v4-cli php your-script.php ``` ## Using the CLI variant @@ -506,7 +507,7 @@ Important! You should not override the Docker "entrypoint". **Usage in a Dockerfile:** ```Dockerfile -FROM thecodingmachine/php:7.4-v4-cli +FROM thecodingmachine/php:8.0-v4-cli CMD ["php", "myprogram.php", "some_param"] ``` @@ -518,7 +519,7 @@ CMD ["php", "myprogram.php", "some_param"] version: '3' services: my_app: - image: thecodingmachine/php:7.4-v4-cli + image: thecodingmachine/php:8.0-v4-cli command: php myprogram.php some_param ``` @@ -538,7 +539,7 @@ This option is the easiest way to go if you are using the image on a development version: '3' services: my_app: - image: thecodingmachine/php:7.4-v4-apache-node14 + image: thecodingmachine/php:8.0-v4-apache-node16 volumes: - ~/.ssh:/home/docker/.ssh ``` @@ -549,7 +550,7 @@ Look at this option if you are building a Dockerfile from this image. The first thing to do is to get the signature of the server you want to connect to. -``` bash +```bash $ ssh-keyscan myserver.com ``` @@ -559,7 +560,7 @@ Now, let's write a Dockerfile. **Dockerfile** ```yml -FROM thecodingmachine/php:7.4-v4-apache +FROM thecodingmachine/php:8.0-v4-apache ARG SSH_PRIVATE_KEY ARG SSH_KNOWN_HOSTS @@ -597,7 +598,7 @@ kind: Pod spec: containers: - name: foobar - image: thecodingmachine/php:7.4-v4-apache + image: thecodingmachine/php:8.0-v4-apache securityContext: allowPrivilegeEscalation: true # never use "false" here. ``` @@ -619,7 +620,7 @@ Your `docker-compose.yml` file will typically look like this: version: '3.3' services: php: - image: thecodingmachine/php:7.4-v4-apache + image: thecodingmachine/php:8.0-v4-apache ports: - "80:80" environment: @@ -645,7 +646,7 @@ If for some reason, the container name is not "blackfire", you can customize the version: '3.3' services: php: - image: thecodingmachine/php:7.4-v4-apache + image: thecodingmachine/php:8.0-v4-apache environment: PHP_EXTENSION_BLACKFIRE: 1 BLACKFIRE_AGENT: myblackfire @@ -680,7 +681,7 @@ This command will generate all the files from the "blueprint" templates. You can then test your changes using the `build-and-test.sh` command: ```bash -PHP_VERSION=7.4 BRANCH=v4 VARIANT=apache ./build-and-test.sh +PHP_VERSION=8.0 BRANCH=v4 VARIANT=apache ./build-and-test.sh ``` ### Adding additional images diff --git a/build-and-test.sh b/build-and-test.sh index 564b1726..ad2745db 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -1,10 +1,21 @@ #!/usr/bin/env bash -set -xe +set -eE -o functrace + +failure() { + local lineno=$1 + local msg=$2 + echo "Failed at $lineno: $msg" +} +trap 'failure ${LINENO} "$BASH_COMMAND"' ERR # Let's replace the "." by a "-" with some bash magic export BRANCH_VARIANT=`echo "$VARIANT" | sed 's/\./-/g'` +# Build with BuildKit https://docs.docker.com/develop/develop-images/build_enhancements/ +export DOCKER_BUILDKIT=1 # Force use of BuildKit +export BUILDKIT_STEP_LOG_MAX_SIZE=10485760 # outpout log limit fixed to 10MiB + # Let's build the "slim" image. docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.slim.${VARIANT} . @@ -14,7 +25,6 @@ docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARI docker build -t test/slim_onbuild --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/slim_onbuild # This should run ok (the sudo disable environment variables but call to composer proxy does not trigger PHP ini file regeneration) docker run --rm test/slim_onbuild php -m | grep sockets -docker run --rm test/slim_onbuild php -m | grep xdebug docker run --rm test/slim_onbuild php -m | grep pdo_pgsql docker run --rm test/slim_onbuild php -m | grep pdo_sqlite docker rmi test/slim_onbuild @@ -30,25 +40,25 @@ RESULT=`docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRA [[ "$RESULT" = "1000" ]] # If mounted, default user has the id of the mount directory -mkdir user1999 && sudo chown 1999:1999 user1999 +mkdir user1999 && docker run --rm -v "$(pwd)":/mnt busybox chown 1999:1999 /mnt/user1999 ls -al user1999 -RESULT=`docker run --rm -v $(pwd)/user1999:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} id -ur` +RESULT=`docker run --rm -v "$(pwd)"/user1999:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} id -ur` [[ "$RESULT" = "1999" ]] # Also, the default user can write on stdout and stderr -docker run --rm -v $(pwd)/user1999:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} bash -c "echo TEST > /proc/self/fd/2" +docker run --rm -v "$(pwd)"/user1999:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} bash -c "echo TEST > /proc/self/fd/2" -sudo rm -rf user1999 +rm -rf user1999 # and it also works for users with existing IDs in the container -sudo mkdir -p user33 -sudo cp tests/apache/composer.json user33/ -sudo chown -R 33:33 user33 +mkdir -p user33 +cp tests/apache/composer.json user33/ +docker run --rm -v "$(pwd)":/mnt busybox chown -R 33:33 /mnt/user33 ls -al user33 -RESULT=`docker run --rm -v $(pwd)/user33:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} id -ur` +RESULT=`docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} id -ur` [[ "$RESULT" = "33" ]] -RESULT=`docker run --rm -v $(pwd)/user33:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} composer update -vvv` -sudo rm -rf user33 +RESULT=`docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} composer update -vvv` +docker run --rm -v "$(pwd)":/mnt busybox rm -rf /mnt/user33 # Let's check that mbstring is enabled by default (they are compiled in PHP) docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -m | grep mbstring @@ -57,7 +67,7 @@ docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARI if [[ $VARIANT == apache* ]]; then # Test if environment variables are passed to PHP - DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v $(pwd):/var/www/html thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` + DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` # Let's wait for Apache to start sleep 5 @@ -68,7 +78,7 @@ if [[ $VARIANT == apache* ]]; then # Test Apache document root (relative) - DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v $(pwd):/var/www/html -e APACHE_DOCUMENT_ROOT=tests thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` + DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html -e APACHE_DOCUMENT_ROOT=tests thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` # Let's wait for Apache to start sleep 5 RESULT=`curl http://localhost:81/test.php` @@ -76,7 +86,7 @@ if [[ $VARIANT == apache* ]]; then docker stop $DOCKER_CID # Test Apache document root (absolute) - DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v $(pwd):/var/www/foo -e APACHE_DOCUMENT_ROOT=/var/www/foo/tests thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` + DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/foo -e APACHE_DOCUMENT_ROOT=/var/www/foo/tests thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` # Let's wait for Apache to start sleep 5 RESULT=`curl http://localhost:81/test.php` @@ -84,7 +94,7 @@ if [[ $VARIANT == apache* ]]; then docker stop $DOCKER_CID # Test Apache HtAccess - DOCKER_CID=`docker run --rm -p "81:80" -d -v $(pwd)/tests/testHtAccess:/foo -e APACHE_DOCUMENT_ROOT=/foo thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` + DOCKER_CID=`docker run --rm -p "81:80" -d -v "$(pwd)"/tests/testHtAccess:/foo -e APACHE_DOCUMENT_ROOT=/foo thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` # Let's wait for Apache to start sleep 5 RESULT=`curl http://localhost:81/` @@ -92,7 +102,7 @@ if [[ $VARIANT == apache* ]]; then docker stop $DOCKER_CID # Test PHP_INI_... variables are correctly handled by apache - DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v $(pwd):/var/www/html -e PHP_INI_MEMORY_LIMIT=2G thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` + DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html -e PHP_INI_MEMORY_LIMIT=2G thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` # Let's wait for Apache to start sleep 5 RESULT=`curl http://localhost:81/tests/apache/echo_memory_limit.php` @@ -102,7 +112,7 @@ fi if [[ $VARIANT == fpm* ]]; then # Test if environment starts without errors - DOCKER_CID=`docker run --rm -p "9000:9000" -d -v $(pwd):/var/www/html thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` + DOCKER_CID=`docker run --rm -p "9000:9000" -d -v "$(pwd)":/var/www/html thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` # Let's wait for FPM to start sleep 5 @@ -124,7 +134,7 @@ RESULT=`docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRA RESULT=`docker run --rm -e TEMPLATE_PHP_INI=production thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep error_reporting` [[ "$RESULT" = "error_reporting => 22527 => 22527" ]] -RESULT=`docker run --rm -v $(pwd)/tests/php.ini:/etc/php/${PHP_VERSION}/cli/php.ini thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep error_reporting` +RESULT=`docker run --rm -v "$(pwd)"/tests/php.ini:/etc/php/${PHP_VERSION}/cli/php.ini thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep error_reporting` [[ "$RESULT" = "error_reporting => 24575 => 24575" ]] RESULT=`docker run --rm -e PHP_INI_ERROR_REPORTING="E_ERROR | E_WARNING" thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep error_reporting` @@ -147,7 +157,7 @@ RESULT=`docker run --rm -e STARTUP_COMMAND_1="cd / && whoami" -e UID=0 thecoding [[ "$RESULT" = "root" ]] # Tests that startup.sh is correctly executed -docker run --rm -v $PWD/tests/startup.sh:/etc/container/startup.sh thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -m | grep "startup.sh executed" +docker run --rm -v "$(pwd)"/tests/startup.sh:/etc/container/startup.sh thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -m | grep "startup.sh executed" # Tests that disable_functions is commented in php.ini cli RESULT=`docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep "disable_functions"` @@ -175,21 +185,22 @@ RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="wh # Let's check that mbstring cannot extension cannot be disabled -set +e -docker run --rm -e PHP_EXTENSION_MBSTRING=0 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i -[[ "$?" = "1" ]] -set -e +# Disabled because no more used in setup_extensions.php +#set +e +#docker run --rm -e PHP_EXTENSION_MBSTRING=0 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i +#[[ "$?" = "1" ]] +#set -e -# Let's check that the "xdebug.client_host" contains a value different from "no value" -docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.client_host| grep -v "no value" +if [[ "${PHP_VERSION}" != "8.0" ]] && [[ "${PHP_VERSION}" != "8.1" ]]; then + # Let's check that the "xdebug.client_host" contains a value different from "no value" + docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.client_host| grep -v "no value" -# Let's check that "xdebug.mode" is set to "debug" by default -docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug" + # Let's check that "xdebug.mode" is set to "debug" by default + docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug" -# Let's check that "xdebug.mode" is properly overridden -docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_INI_XDEBUG__MODE=debug,coverage thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug,coverage" + # Let's check that "xdebug.mode" is properly overridden + docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_INI_XDEBUG__MODE=debug,coverage thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug,coverage" -if [[ "${PHP_VERSION}" != "7.4" ]] && [[ "${PHP_VERSION}" != "8.0" ]]; then # Tests that blackfire + xdebug will output an error RESULT=`docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_EXTENSION_BLACKFIRE=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -v 2>&1 | grep 'WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire.'` [[ "$RESULT" = "WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire." ]] diff --git a/extensions/8.0/rdfafka b/extensions/8.0/rdfafka deleted file mode 120000 index c9f5ff17..00000000 --- a/extensions/8.0/rdfafka +++ /dev/null @@ -1 +0,0 @@ -../core/rdkafka \ No newline at end of file diff --git a/images.yml b/images.yml index ed2ddc86..e9826d24 100644 --- a/images.yml +++ b/images.yml @@ -1 +1 @@ -php_version: 7.4 +php_version: "8.0" diff --git a/tests/slim_onbuild/Dockerfile b/tests/slim_onbuild/Dockerfile index f5bf8567..ce94a053 100644 --- a/tests/slim_onbuild/Dockerfile +++ b/tests/slim_onbuild/Dockerfile @@ -2,5 +2,5 @@ ARG BRANCH ARG BRANCH_VARIANT ARG PHP_VERSION -ARG PHP_EXTENSIONS="xdebug pdo_pgsql pdo_sqlite" +ARG PHP_EXTENSIONS="pdo_pgsql pdo_sqlite" FROM thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 71bd355b..abd9c2d2 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -17,26 +17,23 @@ This repository contains a set of developer-friendly, general purpose PHP images ## Images {{ $versions := list "8.0" "7.4" "7.3" "7.2" }} +{{ $nodeVersions := list "10" "12" "14" }} | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ -{{range $versions}}| [thecodingmachine/php:{{ . }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ . }}.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-apache) -| [thecodingmachine/php:{{ . }}-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `{{ . }}.x` | fat | apache | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-apache-node10) -| [thecodingmachine/php:{{ . }}-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `{{ . }}.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-apache-node12) -| [thecodingmachine/php:{{ . }}-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `{{ . }}.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-apache-node14) -| [thecodingmachine/php:{{ . }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ . }}.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-fpm) -| [thecodingmachine/php:{{ . }}-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `{{ . }}.x` | fat | fpm | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-fpm-node10) -| [thecodingmachine/php:{{ . }}-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `{{ . }}.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-fpm-node12) -| [thecodingmachine/php:{{ . }}-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `{{ . }}.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-fpm-node14) -| [thecodingmachine/php:{{ . }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ . }}.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-cli) -| [thecodingmachine/php:{{ . }}-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `{{ . }}.x` | fat | cli | `10.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-cli-node10) -| [thecodingmachine/php:{{ . }}-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `{{ . }}.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-cli-node12) -| [thecodingmachine/php:{{ . }}-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `{{ . }}.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-cli-node14) -| [thecodingmachine/php:{{ . }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ . }}.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-slim-apache) -| [thecodingmachine/php:{{ . }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ . }}.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-slim-fpm) -| [thecodingmachine/php:{{ . }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ . }}.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ . }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ . }}-v4-slim-cli) +{{range $phpV := $versions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | apache | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | fpm | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | cli | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-apache) +| [thecodingmachine/php:{{ $phpV }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm) +| [thecodingmachine/php:{{ $phpV }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-cli) {{end}} +* (1) [PHP 7.2 and 7.3 are end of life](https://www.php.net/supported-versions.php) +* (2) [Node 10 is end of life](https://nodejs.org/en/about/releases/) Note: we also tag patch releases of PHP versions. So you can specify a specific patch release using thecodingmachine/php:**8.0.2**-v4-cli for instance. However, unless you have a **very specific need** (for instance if the latest patch release of PHP introduced regressions), believe you have no valid reason to ask explicitly for 8.0.2 for instance. @@ -86,7 +83,7 @@ This image comes with 2 "types": the *slim* and the **fat** image. The slim image contains only a set a base PHP extensions. -Only these extensions are available in the slim image: `calendar ctype curl dom exif fileinfo ftp gettext iconv json mbstring opcache pcntl pdo phar posix readline shmop simplexml sockets sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter xsl zip` +Only these extensions are available in the slim image: `calendar` `ctype` `curl` `dom` `exif` `fileinfo` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `pcntl` `pdo` `phar` `posix` `readline` `shmop` `simplexml` `sockets` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `wddx` `xml` `xmlreader` `xmlwriter` `xsl` `zip` These extensions are enabled by default. @@ -101,7 +98,7 @@ Below is a list of extensions available in this image: **Enabled by default (in addition to extensions enabled in Slim image):** apcu mysqli pdo_mysql igbinary redis soap -**Available (can be enabled using environment variables):** amqp ast bcmath blackfire bz2 dba ds enchant ev event exif mailparse msgpack gd gettext gmp gnupg grpc igbinary imagick imap intl ldap mcrypt memcached mongodb pcov pdo_dblib pdo_pgsql pdo_sqlite pgsql pspell shmop snmp sockets sqlite3 swoole tidy uploadprogress uuid weakref(-beta) xdebug xmlrpc xsl yaml +**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` **Note**: @@ -120,7 +117,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:{{ $image.php_version }}-v4-apache-node14 + image: thecodingmachine/php:{{ $image.php_version }}-v4-apache-node16 environment: # Enable the PostgreSQL extension PHP_EXTENSION_PGSQL: 1 @@ -130,7 +127,7 @@ services: As an alternative, you can use the `PHP_EXTENSIONS` global variable: -``` +```bash PHP_EXTENSIONS=pgsql gettext imap ``` @@ -154,7 +151,7 @@ first FROM): # The PHP_EXTENSIONS ARG will apply to the "slim" image ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql soap" -FROM thecodingmachine/php:7.2-v4-apache-node10 AS builder +FROM thecodingmachine/php:{{ $image.php_version }}-v4-apache-node16 AS builder COPY --chown=docker:docker sources/web . RUN composer install &&\ @@ -179,7 +176,7 @@ By default, the base `php.ini` file used is the [*development* php.ini](https:// You can use the production `php.ini` file using the `TEMPLATE_PHP_INI` environment variable: -``` +```bash # Use the production php.ini file as a base TEMPLATE_PHP_INI=production ``` @@ -190,7 +187,7 @@ You can override parameters in `php.ini` using the PHP_INI_XXX environment varia version: '3' services: my_app: - image: thecodingmachine/php:{{ $image.php_version }}-v4-apache-node14 + image: thecodingmachine/php:{{ $image.php_version }}-v4-apache-node16 environment: # set the parameter memory_limit=1g PHP_INI_MEMORY_LIMIT: 1g @@ -206,7 +203,7 @@ If your `php.ini` parameter contains a dot ("."), you can replace it with a doub For instance: -``` +```bash # Will set the parameter xdebug.remote_autostart=1 PHP_INI_XDEBUG__REMOTE_AUTOSTART=1 ``` @@ -228,7 +225,7 @@ you are using: For the *apache* variant, you can change the document root of Apache (i.e. your "public" directory) by using the `APACHE_DOCUMENT_ROOT` variable: -``` +```bash # The root of your website is in the "public" directory: APACHE_DOCUMENT_ROOT=public/ ``` @@ -236,7 +233,7 @@ APACHE_DOCUMENT_ROOT=public/ If the APACHE_DOCUMENT_ROOT starts with a "/", it will be considered an absolute path. If the APACHE_DOCUMENT_ROOT does not starts with a "/", it will be a path relative to "/var/www/html". -``` +```bash # These 2 variables are identical APACHE_DOCUMENT_ROOT=public/ APACHE_DOCUMENT_ROOT=/var/www/html/public @@ -252,7 +249,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:{{ $image.php_version }}-v4-apache-node14 + image: thecodingmachine/php:{{ $image.php_version }}-v4-apache-node16 environment: # Enable the DAV extension for Apache APACHE_EXTENSION_DAV: 1 @@ -262,18 +259,18 @@ services: As an alternative, you can use the `APACHE_EXTENSIONS` global variable: -``` +```bash APACHE_EXTENSIONS="dav ssl" ``` -**Apache modules enabled by default:** access_compat, alias, auth_basic, authn_core, authn_file, authz_core, authz_host, authz_user, autoindex, deflate, dir, env, expires, filter, mime, mpm_prefork, negotiation, php7, reqtimeout, rewrite, setenvif, status +**Apache modules enabled by default:** `access_compat` `alias` `auth_basic` `authn_core` `authn_file` `authz_core` `authz_host` `authz_user` `autoindex` `deflate` `dir` `env` `expires` `filter` `mime` `mpm_prefork` `negotiation` `php7` `reqtimeout` `rewrite` `setenvif` `status` -**Apache modules available:** access_compat, actions, alias, allowmethods, asis, auth_basic, auth_digest, auth_form, authn_anon, authn_core, authn_dbd, authn_dbm, authn_file, authn_socache, authnz_fcgi, authnz_ldap, authz_core, authz_dbd, authz_dbm, authz_groupfile, authz_host, authz_owner, authz_user, autoindex, buffer, cache, cache_disk, cache_socache, cgi, cgid, charset_lite, data, dav, dav_fs, dav_lock, dbd, deflate, dialup, dir, dump_io, echo, env, ext_filter, expires, file_cache, filter, headers, heartbeat, heartmonitor, ident, include, info, lbmethod_bybusyness, lbmethod_byrequests, lbmethod_bytraffic, lbmethod_heartbeat, ldap, log_debug, log_forensic, lua, macro, mime, mime_magic, mpm_event, mpm_prefork, mpm_worker, negotiation, php7, proxy, proxy_ajp, proxy_balancer, proxy_connect, proxy_express, proxy_fcgi, proxy_fdpass, proxy_ftp, proxy_html, proxy_http, proxy_scgi, proxy_wstunnel, ratelimit, reflector, remoteip, reqtimeout, request, rewrite, sed, session, session_cookie, session_crypto, session_dbd, setenvif, slotmem_plain, slotmem_shm, socache_dbm, socache_memcache, socache_shmcb, speling, ssl, status, substitute, suexec, unique_id, userdir, usertrack, vhost_alias, xml2enc +**Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `buffer` `cache` `cache_disk` `cache_socache` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `ident` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php7` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_html` `proxy_http` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` ## Debugging -To enable XDebug, you simply have to set the environment variable: +To enable XDebug` `you simply have to set the environment variable: ```bash PHP_EXTENSION_XDEBUG=1 @@ -289,14 +286,14 @@ Behind the scenes, the image will: ## NodeJS -The *fat* images come with a Node variant. You can use Node 10, 12 or 14. If you need a Node 8 variant, [use thecodingmachine/php v3 images](https://github.com/thecodingmachine/docker-images-php/tree/v3). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). +The *fat* images come with a Node variant. You can use Node 10, 12, 14 or 16. If you need a Node 8 variant, [use thecodingmachine/php v3 images](https://github.com/thecodingmachine/docker-images-php/tree/v3). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). If you use the *slim* images, you can install a NodeJS version with a simple ARG during the build: ```Dockerfile ARG NODE_VERSION=14 FROM thecodingmachine/php:{{ $image.php_version }}-v4-slim-apache -# The build will automatically trigger the download of Node 10 +# The build will automatically trigger the download of Node 14 # (thanks to a ONBUILD hook in the slim image) ``` @@ -347,7 +344,7 @@ In production, you want to change back the Apache user to www-data. This can be done easily: **Dockerfile** -``` +```Dockerfile FROM thecodingmachine/php:{{ $image.php_version }}-v4-apache # ... @@ -490,7 +487,7 @@ This option is the easiest way to go if you are using the image on a development version: '3' services: my_app: - image: thecodingmachine/php:{{ $image.php_version }}-v4-apache-node14 + image: thecodingmachine/php:{{ $image.php_version }}-v4-apache-node16 volumes: - ~/.ssh:/home/docker/.ssh ``` @@ -501,7 +498,7 @@ Look at this option if you are building a Dockerfile from this image. The first thing to do is to get the signature of the server you want to connect to. -``` bash +```bash $ ssh-keyscan myserver.com ``` diff --git a/utils/setup_extensions.php b/utils/setup_extensions.php index 1396f272..3abbcc99 100755 --- a/utils/setup_extensions.php +++ b/utils/setup_extensions.php @@ -7,28 +7,28 @@ require __DIR__.'/utils.php'; -$compiledExtensions = [ - /*'ftp', 'mysqlnd', 'mbstring'*/ -]; +//$compiledExtensions = [ +// 'ftp', 'mysqlnd', 'mbstring' +//]; $availableExtensions = getAvailableExtensions(); $phpExtensions = getPhpExtensionsEnvVar(); -foreach ($compiledExtensions as $phpExtension) { - $envName = 'PHP_EXTENSION_'.strtoupper($phpExtension); - - $env = strtolower(trim(getenv($envName))); - - if ($env === '0' || $env === 'false' || $env === 'no' || $env === 'off') { - file_put_contents('php://stderr', "You cannot disable extension '$phpExtension'. It is compiled in the PHP binary.\n"); - exit(1); - } - if (enableExtension($phpExtension)) { - file_put_contents('php://stderr', "You cannot explicitly enable extension '$phpExtension'. It is compiled in the PHP binary and therefore always available.\n"); - exit(1); - } -} +//foreach ($compiledExtensions as $phpExtension) { +// $envName = 'PHP_EXTENSION_'.strtoupper($phpExtension); +// +// $env = strtolower(trim(getenv($envName))); +// +// if ($env === '0' || $env === 'false' || $env === 'no' || $env === 'off') { +// file_put_contents('php://stderr', "You cannot disable extension '$phpExtension'. It is compiled in the PHP binary.\n"); +// exit(1); +// } +// if (enableExtension($phpExtension)) { +// file_put_contents('php://stderr', "You cannot explicitly enable extension '$phpExtension'. It is compiled in the PHP binary and therefore always available.\n"); +// exit(1); +// } +//} // Validate the content of PHP_EXTENSIONS foreach ($phpExtensions as $phpExtension) { From ded05ed0a6743d8112c7852c2c6ceea6e213ceb9 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 22 Sep 2021 20:30:54 +0200 Subject: [PATCH 077/162] Enhance builder Use BuildKit, add header to blueprint exported files and start a Makefile for common build usages. --- build-and-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-and-test.sh b/build-and-test.sh index ad2745db..41091ef7 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -191,7 +191,7 @@ RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="wh #[[ "$?" = "1" ]] #set -e -if [[ "${PHP_VERSION}" != "8.0" ]] && [[ "${PHP_VERSION}" != "8.1" ]]; then +if [[ "${PHP_VERSION}" != "8.1" ]]; then # Let's check that the "xdebug.client_host" contains a value different from "no value" docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.client_host| grep -v "no value" From 1ae6d595795a9cf7b6618f7c178364910d74a63f Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 22 Sep 2021 20:36:39 +0200 Subject: [PATCH 078/162] Support more PHP 8.0 extensions Added : mongodb, swoole, zip and blackfire. --- CHANGELOG.md | 1 + HELP.md | 30 ++++++++++++++++++++++++++++++ README.md | 3 ++- extensions/8.0/sqlite3 | 2 +- extensions/8.0/xdebug | 2 +- utils/README.blueprint.md | 3 ++- 6 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 HELP.md diff --git a/CHANGELOG.md b/CHANGELOG.md index e8b8bf0d..ea85d4a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Minor changes * **2021-09-22** + * Support more PHP 8.0 extensions | Added : mongodb, swoole, zip and blackfire. * Enhance builder | Use BuildKit, add header to blueprint exported files and start a Makefile for common build usages. ### Initial diff --git a/HELP.md b/HELP.md new file mode 100644 index 00000000..6260120e --- /dev/null +++ b/HELP.md @@ -0,0 +1,30 @@ +# HELP + +## Need help + +* [ ] Script who test all available extensions in one pass +* [ ] BuildKit is now use without trouble, for extend it, use of docker buildx bake may helpful +* [ ] We need lighten the images +* [ ] Link and document one tool who help create packaged app with the slim image + +## Tips + +### How to test extensions available + +* Build the slim image +* Run it with docker and try extensions with follow commands + ```bash + docker run -it --rm thecodingmachine/php:8.1-v4-slim-apache sudo bash + apt-get update + apt-cache search --names-only php8.1-zip + ``` +* Pay attention of extensions installed by pickle (not listed on apt repo) + +Some links with information updated : +* [One list of php extensions supported in PHP 8.0](https://blog.remirepo.net/post/2020/09/21/PHP-extensions-status-with-upcoming-PHP-8.0) + +### Compare list extensions between versions + +```bash +diff -q ./extensions/core ./extensions/8.0 +``` \ No newline at end of file diff --git a/README.md b/README.md index a799c33f..ab12ba8e 100644 --- a/README.md +++ b/README.md @@ -157,7 +157,8 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) -- *ev*, *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ +- *ev*, *event*, *gnupg*, *uploadprogress*, *xmlrpc* are not available in PHP 8.0+ +- *amqp*, *apcu*, *ast*, *ds*, *gettext*, *grpc*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *xdebug*, *yaml* are not available in PHP 8.1+ (RC) ### Enabling/disabling extensions in the fat image diff --git a/extensions/8.0/sqlite3 b/extensions/8.0/sqlite3 index abddf395..45ffc754 120000 --- a/extensions/8.0/sqlite3 +++ b/extensions/8.0/sqlite3 @@ -1 +1 @@ -../core/sqlite3/ \ No newline at end of file +../core/sqlite3 \ No newline at end of file diff --git a/extensions/8.0/xdebug b/extensions/8.0/xdebug index ee4c5321..2ee34925 120000 --- a/extensions/8.0/xdebug +++ b/extensions/8.0/xdebug @@ -1 +1 @@ -../core/xdebug/ \ No newline at end of file +../core/xdebug \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index abd9c2d2..7cc07294 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -105,7 +105,8 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) -- *ev*, *event*, *gnupg*, *mongodb*, *rdkafka*, *swoole*, *uploadprogress*, *xmlrpc*, *blackfire* are not available in PHP 8.0+ +- *ev*, *event*, *gnupg*, *uploadprogress*, *xmlrpc* are not available in PHP 8.0+ +- *amqp*, *apcu*, *ast*, *ds*, *gettext*, *grpc*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *xdebug*, *yaml* are not available in PHP 8.1+ (RC) ### Enabling/disabling extensions in the fat image From 27515695b9d5a25b0573556ee3d8f7215e20ced6 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 22 Sep 2021 20:44:12 +0200 Subject: [PATCH 079/162] Support more PHP 8.0 extensions --- extensions/8.0/blackfire | 1 + extensions/8.0/ev | 1 + extensions/8.0/gnupg | 1 + extensions/8.0/mongodb | 1 + extensions/8.0/rdkafka | 1 + extensions/8.0/swoole | 1 + extensions/8.0/zip | 1 + 7 files changed, 7 insertions(+) create mode 120000 extensions/8.0/blackfire create mode 120000 extensions/8.0/ev create mode 120000 extensions/8.0/gnupg create mode 120000 extensions/8.0/mongodb create mode 120000 extensions/8.0/rdkafka create mode 120000 extensions/8.0/swoole create mode 120000 extensions/8.0/zip diff --git a/extensions/8.0/blackfire b/extensions/8.0/blackfire new file mode 120000 index 00000000..1179c0b9 --- /dev/null +++ b/extensions/8.0/blackfire @@ -0,0 +1 @@ +../core/blackfire \ No newline at end of file diff --git a/extensions/8.0/ev b/extensions/8.0/ev new file mode 120000 index 00000000..d523a2c1 --- /dev/null +++ b/extensions/8.0/ev @@ -0,0 +1 @@ +../core/ev \ No newline at end of file diff --git a/extensions/8.0/gnupg b/extensions/8.0/gnupg new file mode 120000 index 00000000..002cc7b2 --- /dev/null +++ b/extensions/8.0/gnupg @@ -0,0 +1 @@ +../core/gnupg \ No newline at end of file diff --git a/extensions/8.0/mongodb b/extensions/8.0/mongodb new file mode 120000 index 00000000..7898c8e7 --- /dev/null +++ b/extensions/8.0/mongodb @@ -0,0 +1 @@ +../core/mongodb \ No newline at end of file diff --git a/extensions/8.0/rdkafka b/extensions/8.0/rdkafka new file mode 120000 index 00000000..c9f5ff17 --- /dev/null +++ b/extensions/8.0/rdkafka @@ -0,0 +1 @@ +../core/rdkafka \ No newline at end of file diff --git a/extensions/8.0/swoole b/extensions/8.0/swoole new file mode 120000 index 00000000..f20d56ed --- /dev/null +++ b/extensions/8.0/swoole @@ -0,0 +1 @@ +../core/swoole \ No newline at end of file diff --git a/extensions/8.0/zip b/extensions/8.0/zip new file mode 120000 index 00000000..98c05831 --- /dev/null +++ b/extensions/8.0/zip @@ -0,0 +1 @@ +../core/zip \ No newline at end of file From 3dff4c34ebe850723e4bcd2d6434ff4b0de91e74 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 22 Sep 2021 20:30:54 +0200 Subject: [PATCH 080/162] Enhance builder Use BuildKit, add header to blueprint exported files and start a Makefile for common build usages. --- CHANGELOG.md | 1 + README.md | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea85d4a0..f3cbb4a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Minor changes * **2021-09-22** + * Support nodejs 16 * Support more PHP 8.0 extensions | Added : mongodb, swoole, zip and blackfire. * Enhance builder | Use BuildKit, add header to blueprint exported files and start a Makefile for common build usages. diff --git a/README.md b/README.md index ab12ba8e..d32d17e1 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) | [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) | [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) +| [thecodingmachine/php:7.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) | [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) | [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) | [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) From d6e52d2a1a0ae0f03dbff140c89978d9f4eba443 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 22 Sep 2021 20:40:16 +0200 Subject: [PATCH 081/162] Support for Node v16 --- .github/workflows/workflow.yml | 3 +++ CHANGELOG.md | 2 +- Dockerfile.apache.node16 | 21 +++++++++++++++++++++ Dockerfile.cli.node16 | 21 +++++++++++++++++++++ Dockerfile.fpm.node16 | 21 +++++++++++++++++++++ README.md | 1 - build-and-test.sh | 1 + orbit.yml | 3 +++ 8 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 Dockerfile.apache.node16 create mode 100644 Dockerfile.cli.node16 create mode 100644 Dockerfile.fpm.node16 diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index e453c45f..5340dd4a 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -67,6 +67,7 @@ jobs: docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node10 docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node12 docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 + docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node16 # Let's also tag PHP patch releases PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` echo "Tagging patch release $PHP_PATCH_VERSION" @@ -75,8 +76,10 @@ jobs: docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node10 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node12 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 + docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node16 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node16 docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 + docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node16 diff --git a/CHANGELOG.md b/CHANGELOG.md index f3cbb4a6..3bbc69e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ ### Minor changes * **2021-09-22** - * Support nodejs 16 + * Support for Node v16 | Version LTS * Support more PHP 8.0 extensions | Added : mongodb, swoole, zip and blackfire. * Enhance builder | Use BuildKit, add header to blueprint exported files and start a Makefile for common build usages. diff --git a/Dockerfile.apache.node16 b/Dockerfile.apache.node16 new file mode 100644 index 00000000..4706dc11 --- /dev/null +++ b/Dockerfile.apache.node16 @@ -0,0 +1,21 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) +ARG PHP_VERSION +ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache + +LABEL authors="Julien Neuhart , David Négrier " + +USER root + +RUN apt-get update && \ + apt-get install -y --no-install-recommends gnupg && \ + curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ + apt-get update && \ + apt-get install -y --no-install-recommends nodejs && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ + echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends yarn && \ + npm install -g npm + +USER docker diff --git a/Dockerfile.cli.node16 b/Dockerfile.cli.node16 new file mode 100644 index 00000000..5ce76436 --- /dev/null +++ b/Dockerfile.cli.node16 @@ -0,0 +1,21 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) +ARG PHP_VERSION +ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli + +LABEL authors="Julien Neuhart , David Négrier " + +USER root + +RUN apt-get update && \ + apt-get install -y --no-install-recommends gnupg && \ + curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ + apt-get update && \ + apt-get install -y --no-install-recommends nodejs && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ + echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends yarn && \ + npm install -g npm + +USER docker diff --git a/Dockerfile.fpm.node16 b/Dockerfile.fpm.node16 new file mode 100644 index 00000000..a0531dfb --- /dev/null +++ b/Dockerfile.fpm.node16 @@ -0,0 +1,21 @@ +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) +ARG PHP_VERSION +ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm + +LABEL authors="Julien Neuhart , David Négrier " + +USER root + +RUN apt-get update && \ + apt-get install -y --no-install-recommends gnupg && \ + curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ + apt-get update && \ + apt-get install -y --no-install-recommends nodejs && \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ + echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends yarn && \ + npm install -g npm + +USER docker diff --git a/README.md b/README.md index d32d17e1..ab12ba8e 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,6 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) | [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) | [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) -| [thecodingmachine/php:7.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) | [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) | [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) | [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) diff --git a/build-and-test.sh b/build-and-test.sh index 41091ef7..ad3df785 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -221,5 +221,6 @@ docker rmi test/composer_with_gd docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10 --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.${VARIANT}.node10 . docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12 --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.${VARIANT}.node12 . docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14 --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.${VARIANT}.node14 . +docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16 --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.${VARIANT}.node16 . echo "Tests passed with success" diff --git a/orbit.yml b/orbit.yml index d2160ceb..0af583a3 100644 --- a/orbit.yml +++ b/orbit.yml @@ -26,12 +26,15 @@ tasks: - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.apache.node10 -p "variant,apache;node_version,10" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.apache.node12 -p "variant,apache;node_version,12" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.apache.node14 -p "variant,apache;node_version,14" + - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.apache.node16 -p "variant,apache;node_version,16" - orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.cli -p "variant,cli;node_version," - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.cli.node10 -p "variant,cli;node_version,10" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.cli.node12 -p "variant,cli;node_version,12" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.cli.node14 -p "variant,cli;node_version,14" + - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.cli.node16 -p "variant,cli;node_version,16" - orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.fpm -p "variant,fpm;node_version," - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node10 -p "variant,fpm;node_version,10" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node12 -p "variant,fpm;node_version,12" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node14 -p "variant,fpm;node_version,14" + - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node16 -p "variant,fpm;node_version,16" - orbit generate -f utils/README.blueprint.md -o README.md \ No newline at end of file From 8ef1b44f77688a1b6cd96299c92de34e2cf34f80 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 22 Sep 2021 20:42:04 +0200 Subject: [PATCH 082/162] Support for Node v16 --- .github/workflows/workflow.yml | 6 ++++++ CHANGELOG.md | 1 + extensions/8.1/disable_all.sh | 1 + extensions/8.1/docker-install.sh | 1 + extensions/8.1/install_all.sh | 1 + 5 files changed, 10 insertions(+) create mode 120000 extensions/8.1/disable_all.sh create mode 120000 extensions/8.1/docker-install.sh create mode 120000 extensions/8.1/install_all.sh diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 5340dd4a..1cfd04e2 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -15,6 +15,12 @@ jobs: strategy: matrix: include: + - variant: 'cli' + php_version: '8.1' + - variant: 'apache' + php_version: '8.1' + - variant: 'fpm' + php_version: '8.1' - variant: 'cli' php_version: '8.0' - variant: 'apache' diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bbc69e7..32bc2116 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Minor changes * **2021-09-22** + * Preview for PHP 8.1 | PHP 8.1 in release candidate 2 (miss many extensions) * Support for Node v16 | Version LTS * Support more PHP 8.0 extensions | Added : mongodb, swoole, zip and blackfire. * Enhance builder | Use BuildKit, add header to blueprint exported files and start a Makefile for common build usages. diff --git a/extensions/8.1/disable_all.sh b/extensions/8.1/disable_all.sh new file mode 120000 index 00000000..36f58a80 --- /dev/null +++ b/extensions/8.1/disable_all.sh @@ -0,0 +1 @@ +../core/disable_all.sh \ No newline at end of file diff --git a/extensions/8.1/docker-install.sh b/extensions/8.1/docker-install.sh new file mode 120000 index 00000000..245891f8 --- /dev/null +++ b/extensions/8.1/docker-install.sh @@ -0,0 +1 @@ +../core/docker-install.sh \ No newline at end of file diff --git a/extensions/8.1/install_all.sh b/extensions/8.1/install_all.sh new file mode 120000 index 00000000..615edbef --- /dev/null +++ b/extensions/8.1/install_all.sh @@ -0,0 +1 @@ +../core/install_all.sh \ No newline at end of file From 5a2f8f0ca5ef3900f24e53d654c51a33bcd664fb Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 22 Sep 2021 20:42:20 +0200 Subject: [PATCH 083/162] Preview for PHP 8.1 --- extensions/8.1/bcmath | 1 + extensions/8.1/bz2 | 1 + extensions/8.1/dba | 1 + extensions/8.1/enchant | 1 + extensions/8.1/gd | 1 + extensions/8.1/gmp | 1 + extensions/8.1/imap | 1 + extensions/8.1/intl | 1 + extensions/8.1/ldap | 1 + extensions/8.1/pdo_mysql | 1 + extensions/8.1/pdo_pgsql | 1 + extensions/8.1/pdo_sqlite | 1 + extensions/8.1/pgsql | 1 + extensions/8.1/pspell | 1 + extensions/8.1/snmp | 1 + extensions/8.1/soap | 1 + extensions/8.1/sqlite3 | 1 + extensions/8.1/tidy | 1 + extensions/8.1/zip | 1 + 19 files changed, 19 insertions(+) create mode 120000 extensions/8.1/bcmath create mode 120000 extensions/8.1/bz2 create mode 120000 extensions/8.1/dba create mode 120000 extensions/8.1/enchant create mode 120000 extensions/8.1/gd create mode 120000 extensions/8.1/gmp create mode 120000 extensions/8.1/imap create mode 120000 extensions/8.1/intl create mode 120000 extensions/8.1/ldap create mode 120000 extensions/8.1/pdo_mysql create mode 120000 extensions/8.1/pdo_pgsql create mode 120000 extensions/8.1/pdo_sqlite create mode 120000 extensions/8.1/pgsql create mode 120000 extensions/8.1/pspell create mode 120000 extensions/8.1/snmp create mode 120000 extensions/8.1/soap create mode 120000 extensions/8.1/sqlite3 create mode 120000 extensions/8.1/tidy create mode 120000 extensions/8.1/zip diff --git a/extensions/8.1/bcmath b/extensions/8.1/bcmath new file mode 120000 index 00000000..36953ef1 --- /dev/null +++ b/extensions/8.1/bcmath @@ -0,0 +1 @@ +../core/bcmath \ No newline at end of file diff --git a/extensions/8.1/bz2 b/extensions/8.1/bz2 new file mode 120000 index 00000000..34eaa01d --- /dev/null +++ b/extensions/8.1/bz2 @@ -0,0 +1 @@ +../core/bz2 \ No newline at end of file diff --git a/extensions/8.1/dba b/extensions/8.1/dba new file mode 120000 index 00000000..f9598d4d --- /dev/null +++ b/extensions/8.1/dba @@ -0,0 +1 @@ +../core/dba \ No newline at end of file diff --git a/extensions/8.1/enchant b/extensions/8.1/enchant new file mode 120000 index 00000000..aa197129 --- /dev/null +++ b/extensions/8.1/enchant @@ -0,0 +1 @@ +../core/enchant \ No newline at end of file diff --git a/extensions/8.1/gd b/extensions/8.1/gd new file mode 120000 index 00000000..c4cfd1f9 --- /dev/null +++ b/extensions/8.1/gd @@ -0,0 +1 @@ +../core/gd \ No newline at end of file diff --git a/extensions/8.1/gmp b/extensions/8.1/gmp new file mode 120000 index 00000000..d3dce5ec --- /dev/null +++ b/extensions/8.1/gmp @@ -0,0 +1 @@ +../core/gmp \ No newline at end of file diff --git a/extensions/8.1/imap b/extensions/8.1/imap new file mode 120000 index 00000000..4ee55a28 --- /dev/null +++ b/extensions/8.1/imap @@ -0,0 +1 @@ +../core/imap \ No newline at end of file diff --git a/extensions/8.1/intl b/extensions/8.1/intl new file mode 120000 index 00000000..dd21da0b --- /dev/null +++ b/extensions/8.1/intl @@ -0,0 +1 @@ +../core/intl \ No newline at end of file diff --git a/extensions/8.1/ldap b/extensions/8.1/ldap new file mode 120000 index 00000000..394c7519 --- /dev/null +++ b/extensions/8.1/ldap @@ -0,0 +1 @@ +../core/ldap \ No newline at end of file diff --git a/extensions/8.1/pdo_mysql b/extensions/8.1/pdo_mysql new file mode 120000 index 00000000..f752c283 --- /dev/null +++ b/extensions/8.1/pdo_mysql @@ -0,0 +1 @@ +../core/mysqli \ No newline at end of file diff --git a/extensions/8.1/pdo_pgsql b/extensions/8.1/pdo_pgsql new file mode 120000 index 00000000..29ac8e8b --- /dev/null +++ b/extensions/8.1/pdo_pgsql @@ -0,0 +1 @@ +../core/pgsql \ No newline at end of file diff --git a/extensions/8.1/pdo_sqlite b/extensions/8.1/pdo_sqlite new file mode 120000 index 00000000..45ffc754 --- /dev/null +++ b/extensions/8.1/pdo_sqlite @@ -0,0 +1 @@ +../core/sqlite3 \ No newline at end of file diff --git a/extensions/8.1/pgsql b/extensions/8.1/pgsql new file mode 120000 index 00000000..29ac8e8b --- /dev/null +++ b/extensions/8.1/pgsql @@ -0,0 +1 @@ +../core/pgsql \ No newline at end of file diff --git a/extensions/8.1/pspell b/extensions/8.1/pspell new file mode 120000 index 00000000..9be96fd9 --- /dev/null +++ b/extensions/8.1/pspell @@ -0,0 +1 @@ +../core/pspell \ No newline at end of file diff --git a/extensions/8.1/snmp b/extensions/8.1/snmp new file mode 120000 index 00000000..f2249ffe --- /dev/null +++ b/extensions/8.1/snmp @@ -0,0 +1 @@ +../core/snmp \ No newline at end of file diff --git a/extensions/8.1/soap b/extensions/8.1/soap new file mode 120000 index 00000000..ea63abf6 --- /dev/null +++ b/extensions/8.1/soap @@ -0,0 +1 @@ +../core/soap \ No newline at end of file diff --git a/extensions/8.1/sqlite3 b/extensions/8.1/sqlite3 new file mode 120000 index 00000000..45ffc754 --- /dev/null +++ b/extensions/8.1/sqlite3 @@ -0,0 +1 @@ +../core/sqlite3 \ No newline at end of file diff --git a/extensions/8.1/tidy b/extensions/8.1/tidy new file mode 120000 index 00000000..e0434e64 --- /dev/null +++ b/extensions/8.1/tidy @@ -0,0 +1 @@ +../core/tidy \ No newline at end of file diff --git a/extensions/8.1/zip b/extensions/8.1/zip new file mode 120000 index 00000000..98c05831 --- /dev/null +++ b/extensions/8.1/zip @@ -0,0 +1 @@ +../core/zip \ No newline at end of file From 65ef28436f889cb0ad5bd68ee35300559d2eb220 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 27 Sep 2021 17:43:11 +0200 Subject: [PATCH 084/162] Fix blueprint --- README.md | 30 ++++++++++++++++++++++++++++++ utils/README.blueprint.md | 4 ++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ab12ba8e..4ee1b19f 100644 --- a/README.md +++ b/README.md @@ -22,18 +22,39 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ +| [thecodingmachine/php:8.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.1.x`rc2 | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache) +| [thecodingmachine/php:8.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.1.x`rc2 | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node10) +| [thecodingmachine/php:8.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.1.x`rc2 | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node12) +| [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.1.x`rc2 | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) +| [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `8.1.x`rc2 | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) +| [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x`rc2 | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) +| [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.1.x`rc2 | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) +| [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.1.x`rc2 | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) +| [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.1.x`rc2 | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) +| [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `8.1.x`rc2 | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) +| [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x`rc2 | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) +| [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.1.x`rc2 | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) +| [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.1.x`rc2 | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) +| [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.1.x`rc2 | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) +| [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `8.1.x`rc2 | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) +| [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x`rc2 | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) +| [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x`rc2 | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) +| [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x`rc2 | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) | [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) | [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.0.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) | [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) | [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.0.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) +| [thecodingmachine/php:8.0-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `8.0.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node16) | [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) | [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.0.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) | [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) | [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.0.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) +| [thecodingmachine/php:8.0-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `8.0.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node16) | [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) | [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.0.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) | [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) | [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.0.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) +| [thecodingmachine/php:8.0-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `8.0.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node16) | [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) | [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) | [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) @@ -41,14 +62,17 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.4.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node10) | [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) | [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) +| [thecodingmachine/php:7.4-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `7.4.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node16) | [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) | [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.4.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) | [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) | [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) +| [thecodingmachine/php:7.4-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `7.4.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node16) | [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) | [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.4.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) | [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) | [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) +| [thecodingmachine/php:7.4-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `7.4.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node16) | [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) | [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) | [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) @@ -56,14 +80,17 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.3-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.3.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node10) | [thecodingmachine/php:7.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.3.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node12) | [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.3.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) +| [thecodingmachine/php:7.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `7.3.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node16) | [thecodingmachine/php:7.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.3.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm) | [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.3.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) | [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.3.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) | [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.3.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) +| [thecodingmachine/php:7.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `7.3.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node16) | [thecodingmachine/php:7.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.3.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli) | [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.3.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) | [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.3.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) | [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.3.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) +| [thecodingmachine/php:7.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `7.3.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node16) | [thecodingmachine/php:7.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.3.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-apache) | [thecodingmachine/php:7.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.3.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-fpm) | [thecodingmachine/php:7.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.3.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-cli) @@ -71,14 +98,17 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.2.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node10) | [thecodingmachine/php:7.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.2.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node12) | [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.2.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) +| [thecodingmachine/php:7.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `7.2.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node16) | [thecodingmachine/php:7.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.2.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm) | [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.2.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) | [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.2.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) | [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.2.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) +| [thecodingmachine/php:7.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `7.2.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node16) | [thecodingmachine/php:7.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.2.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli) | [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) | [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) | [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) +| [thecodingmachine/php:7.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `7.2.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node16) | [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) | [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) | [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 7cc07294..66dfdbe4 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -16,8 +16,8 @@ This repository contains a set of developer-friendly, general purpose PHP images {{ $image := .Orbit.Images }} ## Images -{{ $versions := list "8.0" "7.4" "7.3" "7.2" }} -{{ $nodeVersions := list "10" "12" "14" }} +{{ $versions := list "8.1" "8.0" "7.4" "7.3" "7.2" }} +{{ $nodeVersions := list "10" "12" "14" "16" }} | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ From 5eb2c62fdf7775f704f534f7ce2866e32b10fc63 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 8 Nov 2021 20:51:15 +0100 Subject: [PATCH 085/162] php8.1-xdebug --- Dockerfile.slim.apache | 4 +++- Dockerfile.slim.cli | 4 +++- Dockerfile.slim.fpm | 4 +++- README.md | 36 ++++++++++++++++----------------- utils/Dockerfile.slim.blueprint | 4 +++- utils/README.blueprint.md | 18 ++++++++--------- 6 files changed, 39 insertions(+), 31 deletions(-) diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 15c6971d..93a3d5ff 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -25,6 +25,7 @@ RUN apt-get update \ && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-php.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ && apt-get update \ + && apt-get upgrade -y \ && apt-get install -y --no-install-recommends \ git \ nano \ @@ -42,7 +43,8 @@ RUN apt-get update \ php${PHP_VERSION}-readline \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ - && if [ "${PHP_VERSION}" = "7.1" ] || [ "${PHP_VERSION}" = "7.2" ] || [ "${PHP_VERSION}" = "7.3" ] || [ "${PHP_VERSION}" = "7.4" ]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ + && if [[ "${PHP_VERSION}" =~ ^7 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ + && if [[ "${PHP_VERSION}" =~ ^8 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 49ae479b..5c914af6 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -25,6 +25,7 @@ RUN apt-get update \ && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-php.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ && apt-get update \ + && apt-get upgrade -y \ && apt-get install -y --no-install-recommends \ git \ nano \ @@ -42,7 +43,8 @@ RUN apt-get update \ php${PHP_VERSION}-readline \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ - && if [ "${PHP_VERSION}" = "7.1" ] || [ "${PHP_VERSION}" = "7.2" ] || [ "${PHP_VERSION}" = "7.3" ] || [ "${PHP_VERSION}" = "7.4" ]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ + && if [[ "${PHP_VERSION}" =~ ^7 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ + && if [[ "${PHP_VERSION}" =~ ^8 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 1bf6b26c..5e3b226d 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -25,6 +25,7 @@ RUN apt-get update \ && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-php.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ && apt-get update \ + && apt-get upgrade -y \ && apt-get install -y --no-install-recommends \ git \ nano \ @@ -42,7 +43,8 @@ RUN apt-get update \ php${PHP_VERSION}-readline \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ - && if [ "${PHP_VERSION}" = "7.1" ] || [ "${PHP_VERSION}" = "7.2" ] || [ "${PHP_VERSION}" = "7.3" ] || [ "${PHP_VERSION}" = "7.4" ]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ + && if [[ "${PHP_VERSION}" =~ ^7 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ + && if [[ "${PHP_VERSION}" =~ ^8 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/README.md b/README.md index 4ee1b19f..a0493191 100644 --- a/README.md +++ b/README.md @@ -22,24 +22,24 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ -| [thecodingmachine/php:8.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.1.x`rc2 | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache) -| [thecodingmachine/php:8.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.1.x`rc2 | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node10) -| [thecodingmachine/php:8.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.1.x`rc2 | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node12) -| [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.1.x`rc2 | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) -| [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `8.1.x`rc2 | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) -| [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x`rc2 | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) -| [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.1.x`rc2 | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) -| [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.1.x`rc2 | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) -| [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.1.x`rc2 | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) -| [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `8.1.x`rc2 | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) -| [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x`rc2 | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) -| [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.1.x`rc2 | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) -| [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.1.x`rc2 | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) -| [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.1.x`rc2 | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) -| [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `8.1.x`rc2 | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) -| [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x`rc2 | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) -| [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x`rc2 | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) -| [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x`rc2 | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) +| [thecodingmachine/php:8.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.1.x`rc | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache) +| [thecodingmachine/php:8.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.1.x`rc | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node10) +| [thecodingmachine/php:8.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.1.x`rc | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node12) +| [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.1.x`rc | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) +| [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `8.1.x`rc | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) +| [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x`rc | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) +| [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.1.x`rc | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) +| [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.1.x`rc | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) +| [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.1.x`rc | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) +| [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `8.1.x`rc | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) +| [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x`rc | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) +| [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.1.x`rc | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) +| [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.1.x`rc | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) +| [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.1.x`rc | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) +| [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `8.1.x`rc | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) +| [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x`rc | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) +| [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x`rc | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) +| [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x`rc | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) | [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) | [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.0.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) | [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 702dcad5..0fa10627 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -26,6 +26,7 @@ RUN apt-get update \ && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-php.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ && apt-get update \ + && apt-get upgrade -y \ && apt-get install -y --no-install-recommends \ git \ nano \ @@ -43,7 +44,8 @@ RUN apt-get update \ php${PHP_VERSION}-readline \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ - && if [ "${PHP_VERSION}" = "7.1" ] || [ "${PHP_VERSION}" = "7.2" ] || [ "${PHP_VERSION}" = "7.3" ] || [ "${PHP_VERSION}" = "7.4" ]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ + && if [[ "${PHP_VERSION}" =~ ^7 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ + && if [[ "${PHP_VERSION}" =~ ^8 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 66dfdbe4..235bf6a0 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -21,15 +21,15 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ -{{range $phpV := $versions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | apache | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}) -{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | fpm | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}) -{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | fat | cli | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}) -{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-apache) -| [thecodingmachine/php:{{ $phpV }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm) -| [thecodingmachine/php:{{ $phpV }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc2{{end}} | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-cli) +{{range $phpV := $versions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | apache | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | fpm | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | cli | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-apache) +| [thecodingmachine/php:{{ $phpV }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm) +| [thecodingmachine/php:{{ $phpV }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-cli) {{end}} * (1) [PHP 7.2 and 7.3 are end of life](https://www.php.net/supported-versions.php) From 42fdd3f0a68f1e15b652cc37f61c8470aac78116 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 8 Nov 2021 20:56:49 +0100 Subject: [PATCH 086/162] Reduce image size --- Dockerfile.apache.node10 | 4 +++- Dockerfile.apache.node12 | 4 +++- Dockerfile.apache.node14 | 4 +++- Dockerfile.apache.node16 | 4 +++- Dockerfile.cli.node10 | 4 +++- Dockerfile.cli.node12 | 4 +++- Dockerfile.cli.node14 | 4 +++- Dockerfile.cli.node16 | 4 +++- Dockerfile.fpm.node10 | 4 +++- Dockerfile.fpm.node12 | 4 +++- Dockerfile.fpm.node14 | 4 +++- Dockerfile.fpm.node16 | 4 +++- Dockerfile.slim.apache | 4 +++- Dockerfile.slim.cli | 4 +++- Dockerfile.slim.fpm | 4 +++- utils/Dockerfile.node.blueprint | 4 +++- utils/Dockerfile.slim.blueprint | 4 +++- 17 files changed, 51 insertions(+), 17 deletions(-) diff --git a/Dockerfile.apache.node10 b/Dockerfile.apache.node10 index 32150d4a..123362b2 100644 --- a/Dockerfile.apache.node10 +++ b/Dockerfile.apache.node10 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.apache.node12 b/Dockerfile.apache.node12 index 85defd51..079370e4 100644 --- a/Dockerfile.apache.node12 +++ b/Dockerfile.apache.node12 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.apache.node14 b/Dockerfile.apache.node14 index fc95148c..69352348 100644 --- a/Dockerfile.apache.node14 +++ b/Dockerfile.apache.node14 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.apache.node16 b/Dockerfile.apache.node16 index 4706dc11..eadf6adc 100644 --- a/Dockerfile.apache.node16 +++ b/Dockerfile.apache.node16 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.cli.node10 b/Dockerfile.cli.node10 index c23ed284..21948881 100644 --- a/Dockerfile.cli.node10 +++ b/Dockerfile.cli.node10 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.cli.node12 b/Dockerfile.cli.node12 index d9e4d051..4f5f5628 100644 --- a/Dockerfile.cli.node12 +++ b/Dockerfile.cli.node12 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.cli.node14 b/Dockerfile.cli.node14 index 27716f9a..498bb49a 100644 --- a/Dockerfile.cli.node14 +++ b/Dockerfile.cli.node14 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.cli.node16 b/Dockerfile.cli.node16 index 5ce76436..64678551 100644 --- a/Dockerfile.cli.node16 +++ b/Dockerfile.cli.node16 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.fpm.node10 b/Dockerfile.fpm.node10 index aee0ec14..1942fe0e 100644 --- a/Dockerfile.fpm.node10 +++ b/Dockerfile.fpm.node10 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.fpm.node12 b/Dockerfile.fpm.node12 index b25d317a..757e7fac 100644 --- a/Dockerfile.fpm.node12 +++ b/Dockerfile.fpm.node12 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.fpm.node14 b/Dockerfile.fpm.node14 index 8d3f03f3..aff1dd28 100644 --- a/Dockerfile.fpm.node14 +++ b/Dockerfile.fpm.node14 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.fpm.node16 b/Dockerfile.fpm.node16 index a0531dfb..070fd6c3 100644 --- a/Dockerfile.fpm.node16 +++ b/Dockerfile.fpm.node16 @@ -16,6 +16,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 93a3d5ff..40fa6967 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -381,5 +381,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ - sudo apt-get install -y --no-install-recommends yarn; \ + sudo apt-get install -y --no-install-recommends yarn && \ + sudo apt-get clean && \ + sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 5c914af6..58d26a67 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -286,5 +286,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ - sudo apt-get install -y --no-install-recommends yarn; \ + sudo apt-get install -y --no-install-recommends yarn && \ + sudo apt-get clean && \ + sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 5e3b226d..dc6a70c0 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -309,5 +309,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ - sudo apt-get install -y --no-install-recommends yarn; \ + sudo apt-get install -y --no-install-recommends yarn && \ + sudo apt-get clean && \ + sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/utils/Dockerfile.node.blueprint b/utils/Dockerfile.node.blueprint index 662b752f..548c3fc5 100644 --- a/utils/Dockerfile.node.blueprint +++ b/utils/Dockerfile.node.blueprint @@ -18,6 +18,8 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm + npm install -g npm && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* USER docker diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 0fa10627..a0c41581 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -412,5 +412,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ - sudo apt-get install -y --no-install-recommends yarn; \ + sudo apt-get install -y --no-install-recommends yarn && \ + sudo apt-get clean && \ + sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; From 0b351de965122f274b4ccb788ba34911b5ce4bbf Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Thu, 4 Nov 2021 18:00:38 +0100 Subject: [PATCH 087/162] Add stale behaviour for issue outdated --- .github/stale.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 00000000..c13bdefe --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,23 @@ +# Documentation https://github.com/marketplace/actions/close-stale-issues +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - enhancement + - enhancement requested + - bug confirmed + - information +# Label to use when marking an issue as stale +staleLabel: stale +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Please + update it if any action still required. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: > + This issue has been automatically closed because it has not had recent activity. + Please, reopen if you need. \ No newline at end of file From 9d02e23d9bc26104ed3648854496f3d41c5cf09f Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 10 Nov 2021 11:46:22 +0100 Subject: [PATCH 088/162] Fix php8.1-xdebug --- .github/PULL_REQUEST_TEMPLATE.md | 15 ++++----------- README.md | 4 ++-- build-and-test.sh | 14 +++++++------- extensions/8.1/xdebug | 1 + utils/README.blueprint.md | 4 ++-- 5 files changed, 16 insertions(+), 22 deletions(-) create mode 120000 extensions/8.1/xdebug diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index c0952711..ecc5de57 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -9,12 +9,10 @@ For more information, see the [CONTRIBUTING](CONTRIBUTING.md) guide. -This PR fixes/implements the following **bugs/features** +This PR fixes/implements : -* [ ] Bug 1 -* [ ] Bug 2 -* [ ] Feature 1 -* [ ] Feature 2 +* [ ] Bug +* [ ] Feature * [ ] Breaking changes @@ -27,13 +25,8 @@ Explain the **motivation** for making this change. What existing problem does th Demonstrate the code is solid. Example: The exact commands you ran and their output. -**Closing issues** - - -Fixes # - **Checklist** -- [ ] Have you followed the guidelines in our [CONTRIBUTING](CONTRIBUTING.md) guide? +- [ ] I followed the guidelines in [CONTRIBUTING](CONTRIBUTING.md) guide - [ ] I have squashed any insignificant commits - [ ] This change has comments for package types, values, functions, and non-obvious lines of code \ No newline at end of file diff --git a/README.md b/README.md index a0493191..d57cbacd 100644 --- a/README.md +++ b/README.md @@ -187,8 +187,8 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) -- *ev*, *event*, *gnupg*, *uploadprogress*, *xmlrpc* are not available in PHP 8.0+ -- *amqp*, *apcu*, *ast*, *ds*, *gettext*, *grpc*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *xdebug*, *yaml* are not available in PHP 8.1+ (RC) +- *event*, *gnupg*, *uploadprogress*, *xmlrpc* are not available in PHP 8.0+ +- *amqp*, *apcu*, *ast*, *blackfire*, *ds*, *gettext*, *grpc*, *ev*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *yaml* are not available in PHP 8.1+ (RC) ### Enabling/disabling extensions in the fat image diff --git a/build-and-test.sh b/build-and-test.sh index ad3df785..e9bd96ef 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -191,16 +191,16 @@ RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="wh #[[ "$?" = "1" ]] #set -e -if [[ "${PHP_VERSION}" != "8.1" ]]; then - # Let's check that the "xdebug.client_host" contains a value different from "no value" - docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.client_host| grep -v "no value" +# Let's check that the "xdebug.client_host" contains a value different from "no value" +docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.client_host| grep -v "no value" - # Let's check that "xdebug.mode" is set to "debug" by default - docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug" +# Let's check that "xdebug.mode" is set to "debug" by default +docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug" - # Let's check that "xdebug.mode" is properly overridden - docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_INI_XDEBUG__MODE=debug,coverage thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug,coverage" +# Let's check that "xdebug.mode" is properly overridden +docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_INI_XDEBUG__MODE=debug,coverage thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug,coverage" +if [[ "${PHP_VERSION}" != "8.1" ]]; then # Tests that blackfire + xdebug will output an error RESULT=`docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_EXTENSION_BLACKFIRE=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -v 2>&1 | grep 'WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire.'` [[ "$RESULT" = "WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire." ]] diff --git a/extensions/8.1/xdebug b/extensions/8.1/xdebug new file mode 120000 index 00000000..2ee34925 --- /dev/null +++ b/extensions/8.1/xdebug @@ -0,0 +1 @@ +../core/xdebug \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 235bf6a0..ecd6c4cb 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -105,8 +105,8 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) -- *ev*, *event*, *gnupg*, *uploadprogress*, *xmlrpc* are not available in PHP 8.0+ -- *amqp*, *apcu*, *ast*, *ds*, *gettext*, *grpc*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *xdebug*, *yaml* are not available in PHP 8.1+ (RC) +- *event*, *gnupg*, *uploadprogress*, *xmlrpc* are not available in PHP 8.0+ +- *amqp*, *apcu*, *ast*, *blackfire*, *ds*, *gettext*, *grpc*, *ev*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *yaml* are not available in PHP 8.1+ (RC) ### Enabling/disabling extensions in the fat image From a41859c5fc76aa3c188706b3fcef4f1ec50c06d3 Mon Sep 17 00:00:00 2001 From: Robin Windey Date: Mon, 22 Nov 2021 11:26:16 +0100 Subject: [PATCH 089/162] Document the XDEBUG_CLIENT_HOST env variable --- utils/README.blueprint.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index ecd6c4cb..8d49d358 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -285,6 +285,14 @@ Behind the scenes, the image will: - if you are using a Linux machine, the `xdebug.client_host` IP will point to your Docker gateway - if you are using a Windows or MaxOS machine, the `xdebug.client_host` IP will point to [`host.docker.internal`](https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds) or [`docker.for.mac.localhost`](https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds) +If you want to debug directly inside your container (for example if you're using [VSCode devcontainers](https://code.visualstudio.com/docs/remote/containers)) you can overwrite the [`xdebug.client_host`](https://xdebug.org/docs/all_settings#client_host) value by setting the following environment variable: + +```bash +XDEBUG_CLIENT_HOST=127.0.0.1 +``` + +In that case the manually set value takes precedence over the mentioned ones above. + ## NodeJS The *fat* images come with a Node variant. You can use Node 10, 12, 14 or 16. If you need a Node 8 variant, [use thecodingmachine/php v3 images](https://github.com/thecodingmachine/docker-images-php/tree/v3). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). From 1162c74edf524052672576d654b3dc37c2aed0c2 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 22 Nov 2021 11:48:20 +0100 Subject: [PATCH 090/162] Document the XDEBUG_CLIENT_HOST env variable (generate blueprint) --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index d57cbacd..0801df23 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,14 @@ Behind the scenes, the image will: - if you are using a Linux machine, the `xdebug.client_host` IP will point to your Docker gateway - if you are using a Windows or MaxOS machine, the `xdebug.client_host` IP will point to [`host.docker.internal`](https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds) or [`docker.for.mac.localhost`](https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds) +If you want to debug directly inside your container (for example if you're using [VSCode devcontainers](https://code.visualstudio.com/docs/remote/containers)) you can overwrite the [`xdebug.client_host`](https://xdebug.org/docs/all_settings#client_host) value by setting the following environment variable: + +```bash +XDEBUG_CLIENT_HOST=127.0.0.1 +``` + +In that case the manually set value takes precedence over the mentioned ones above. + ## NodeJS The *fat* images come with a Node variant. You can use Node 10, 12, 14 or 16. If you need a Node 8 variant, [use thecodingmachine/php v3 images](https://github.com/thecodingmachine/docker-images-php/tree/v3). If you need a Node 6 variant, [use thecodingmachine/php v1 images](https://github.com/thecodingmachine/docker-images-php/tree/7.2-v1). From c5f0ae0964568e5231b6f509ecd693addb2a83c9 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Thu, 25 Nov 2021 16:34:44 +0100 Subject: [PATCH 091/162] Makefile to generate blueprints and test common cases --- Makefile | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..167669e6 --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +blueprint: ## Generate all blueprints file + @if ! type orbit >/dev/null 2>&1; then echo "Missing orbit dependency, please install from https://github.com/gulien/orbit/"; exit 1; fi + orbit run generate + @sed -i '1i\# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)' Dockerfile.* + @sed -i '1i\[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md)' README.md + +test-latest: test-php8.0 ## Test the latest build only + +test-php8.1: blueprint ## Test php8.1 build only + PHP_VERSION=8.1 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PHP_VERSION=8.1 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + notify-send -u critical "Tests passed with success" + +test-php8.0: blueprint ## Test php8.0 build only + PHP_VERSION=8.0 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PHP_VERSION=8.0 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + notify-send -u critical "Tests passed with success" + +clean: ## Clean dangles image after build From 09f72a80d9e6a24caff974a349bac2f27a44de80 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 29 Nov 2021 15:51:16 +0100 Subject: [PATCH 092/162] Add php8.0 mycrypt, uploadprogress and xmlrpc --- README.md | 38 +++++++++++++++++------------------ extensions/8.0/mcrypt | 1 + extensions/8.0/uploadprogress | 1 + extensions/8.0/xmlrpc | 1 + utils/README.blueprint.md | 20 +++++++++--------- 5 files changed, 32 insertions(+), 29 deletions(-) create mode 120000 extensions/8.0/mcrypt create mode 120000 extensions/8.0/uploadprogress create mode 120000 extensions/8.0/xmlrpc diff --git a/README.md b/README.md index 0801df23..3876a585 100644 --- a/README.md +++ b/README.md @@ -22,24 +22,24 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ -| [thecodingmachine/php:8.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.1.x`rc | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache) -| [thecodingmachine/php:8.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.1.x`rc | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node10) -| [thecodingmachine/php:8.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.1.x`rc | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node12) -| [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.1.x`rc | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) -| [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `8.1.x`rc | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) -| [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x`rc | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) -| [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.1.x`rc | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) -| [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.1.x`rc | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) -| [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.1.x`rc | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) -| [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `8.1.x`rc | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) -| [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x`rc | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) -| [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.1.x`rc | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) -| [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.1.x`rc | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) -| [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.1.x`rc | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) -| [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `8.1.x`rc | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) -| [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x`rc | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) -| [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x`rc | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) -| [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x`rc | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) +| [thecodingmachine/php:8.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.1.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache) +| [thecodingmachine/php:8.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.1.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node10) +| [thecodingmachine/php:8.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.1.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node12) +| [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.1.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) +| [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `8.1.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) +| [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) +| [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.1.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) +| [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.1.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) +| [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.1.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) +| [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `8.1.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) +| [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) +| [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.1.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) +| [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.1.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) +| [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.1.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) +| [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `8.1.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) +| [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) +| [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) +| [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) | [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) | [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.0.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) | [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) @@ -187,7 +187,7 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) -- *event*, *gnupg*, *uploadprogress*, *xmlrpc* are not available in PHP 8.0+ +- *event*, *gnupg* are not available in PHP 8.0+ - *amqp*, *apcu*, *ast*, *blackfire*, *ds*, *gettext*, *grpc*, *ev*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *yaml* are not available in PHP 8.1+ (RC) ### Enabling/disabling extensions in the fat image diff --git a/extensions/8.0/mcrypt b/extensions/8.0/mcrypt new file mode 120000 index 00000000..c4321cdf --- /dev/null +++ b/extensions/8.0/mcrypt @@ -0,0 +1 @@ +../core/mcrypt-7.1 \ No newline at end of file diff --git a/extensions/8.0/uploadprogress b/extensions/8.0/uploadprogress new file mode 120000 index 00000000..6b4b74d0 --- /dev/null +++ b/extensions/8.0/uploadprogress @@ -0,0 +1 @@ +../core/uploadprogress \ No newline at end of file diff --git a/extensions/8.0/xmlrpc b/extensions/8.0/xmlrpc new file mode 120000 index 00000000..2833c799 --- /dev/null +++ b/extensions/8.0/xmlrpc @@ -0,0 +1 @@ +../core/xmlrpc \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 8d49d358..93b7bae6 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -21,15 +21,15 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ -{{range $phpV := $versions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | apache | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}) -{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | fpm | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}) -{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | fat | cli | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}) -{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-apache) -| [thecodingmachine/php:{{ $phpV }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm) -| [thecodingmachine/php:{{ $phpV }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }}{{ if eq $phpV "8.1" }}rc{{end}} | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-cli) +{{range $phpV := $versions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | apache | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | fpm | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | cli | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-apache) +| [thecodingmachine/php:{{ $phpV }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm) +| [thecodingmachine/php:{{ $phpV }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-cli) {{end}} * (1) [PHP 7.2 and 7.3 are end of life](https://www.php.net/supported-versions.php) @@ -105,7 +105,7 @@ Below is a list of extensions available in this image: - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) -- *event*, *gnupg*, *uploadprogress*, *xmlrpc* are not available in PHP 8.0+ +- *event*, *gnupg* are not available in PHP 8.0+ - *amqp*, *apcu*, *ast*, *blackfire*, *ds*, *gettext*, *grpc*, *ev*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *yaml* are not available in PHP 8.1+ (RC) ### Enabling/disabling extensions in the fat image From a0a76827f7b918680a39a76d355e90f27f630a7d Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 29 Nov 2021 15:57:52 +0100 Subject: [PATCH 093/162] Add a lot new extensions until release of php8.1 --- Makefile | 20 +++- README.md | 2 +- build-and-test.sh | 204 +++++++++++++++++----------------- extensions/8.1/amqp | 1 + extensions/8.1/apcu | 1 + extensions/8.1/ast | 1 + extensions/8.1/ds | 1 + extensions/8.1/grpc | 1 + extensions/8.1/igbinary | 1 + extensions/8.1/imagick | 1 + extensions/8.1/mailparse | 1 + extensions/8.1/memcached | 1 + extensions/8.1/mongodb | 1 + extensions/8.1/msgpack | 1 + extensions/8.1/mysqli | 1 + extensions/8.1/pcov | 1 + extensions/8.1/redis | 1 + extensions/8.1/uploadprogress | 1 + extensions/8.1/uuid | 1 + extensions/8.1/xmlrpc | 1 + extensions/8.1/yaml | 1 + utils/README.blueprint.md | 2 +- 22 files changed, 136 insertions(+), 110 deletions(-) create mode 120000 extensions/8.1/amqp create mode 120000 extensions/8.1/apcu create mode 120000 extensions/8.1/ast create mode 120000 extensions/8.1/ds create mode 120000 extensions/8.1/grpc create mode 120000 extensions/8.1/igbinary create mode 120000 extensions/8.1/imagick create mode 120000 extensions/8.1/mailparse create mode 120000 extensions/8.1/memcached create mode 120000 extensions/8.1/mongodb create mode 120000 extensions/8.1/msgpack create mode 120000 extensions/8.1/mysqli create mode 120000 extensions/8.1/pcov create mode 120000 extensions/8.1/redis create mode 120000 extensions/8.1/uploadprogress create mode 120000 extensions/8.1/uuid create mode 120000 extensions/8.1/xmlrpc create mode 120000 extensions/8.1/yaml diff --git a/Makefile b/Makefile index 167669e6..d349e98a 100644 --- a/Makefile +++ b/Makefile @@ -4,16 +4,26 @@ blueprint: ## Generate all blueprints file @sed -i '1i\# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)' Dockerfile.* @sed -i '1i\[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md)' README.md -test-latest: test-php8.0 ## Test the latest build only +test-latest: test-8.0 ## Test the latest build only -test-php8.1: blueprint ## Test php8.1 build only - PHP_VERSION=8.1 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) +_test-prerequisites: blueprint + docker pull ubuntu:20.04 + +test-quick: _test-prerequisites ## Test 8.0 and 8.1 quickly + PHP_VERSION=8.0 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) PHP_VERSION=8.1 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) notify-send -u critical "Tests passed with success" -test-php8.0: blueprint ## Test php8.0 build only - PHP_VERSION=8.0 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) +test-8.1: _test-prerequisites ## Test php8.1 build only + docker pull ubuntu:20.04 + PHP_VERSION=8.1 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PHP_VERSION=8.1 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + notify-send -u critical "Tests passed with success" + +test-8.0: _test-prerequisites ## Test php8.0 build only + docker pull ubuntu:20.04 PHP_VERSION=8.0 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PHP_VERSION=8.0 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) notify-send -u critical "Tests passed with success" clean: ## Clean dangles image after build diff --git a/README.md b/README.md index 3876a585..4eb0abcb 100644 --- a/README.md +++ b/README.md @@ -188,7 +188,7 @@ Below is a list of extensions available in this image: - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) - *event*, *gnupg* are not available in PHP 8.0+ -- *amqp*, *apcu*, *ast*, *blackfire*, *ds*, *gettext*, *grpc*, *ev*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *yaml* are not available in PHP 8.1+ (RC) +- *blackfire*, *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ ### Enabling/disabling extensions in the fat image diff --git a/build-and-test.sh b/build-and-test.sh index e9bd96ef..5f5938f5 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -10,14 +10,14 @@ failure() { trap 'failure ${LINENO} "$BASH_COMMAND"' ERR # Let's replace the "." by a "-" with some bash magic -export BRANCH_VARIANT=`echo "$VARIANT" | sed 's/\./-/g'` +export BRANCH_VARIANT="${VARIANT//./-}" # Build with BuildKit https://docs.docker.com/develop/develop-images/build_enhancements/ -export DOCKER_BUILDKIT=1 # Force use of BuildKit -export BUILDKIT_STEP_LOG_MAX_SIZE=10485760 # outpout log limit fixed to 10MiB +export DOCKER_BUILDKIT=1 # Force use of BuildKit +export BUILDKIT_STEP_LOG_MAX_SIZE=10485760 # output log limit fixed to 10MiB # Let's build the "slim" image. -docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.slim.${VARIANT} . +docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.slim.${VARIANT}" . # Post build unit tests @@ -36,17 +36,17 @@ docker rmi test/slim_onbuild_composer # Post build unit tests if [[ $VARIANT == cli* ]]; then CONTAINER_CWD=/usr/src/app; else CONTAINER_CWD=/var/www/html; fi # Default user is 1000 -RESULT=`docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} id -ur` -[[ "$RESULT" = "1000" ]] +RESULT="$(docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" id -ur)" +[[ "$RESULT" == "1000" ]] # If mounted, default user has the id of the mount directory mkdir user1999 && docker run --rm -v "$(pwd)":/mnt busybox chown 1999:1999 /mnt/user1999 ls -al user1999 -RESULT=`docker run --rm -v "$(pwd)"/user1999:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} id -ur` -[[ "$RESULT" = "1999" ]] +RESULT="$(docker run --rm -v "$(pwd)"/user1999:$CONTAINER_CWD "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" id -ur)" +[[ "$RESULT" == "1999" ]] # Also, the default user can write on stdout and stderr -docker run --rm -v "$(pwd)"/user1999:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} bash -c "echo TEST > /proc/self/fd/2" +docker run --rm -v "$(pwd)"/user1999:$CONTAINER_CWD "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" bash -c "echo TEST > /proc/self/fd/2" rm -rf user1999 @@ -55,135 +55,133 @@ mkdir -p user33 cp tests/apache/composer.json user33/ docker run --rm -v "$(pwd)":/mnt busybox chown -R 33:33 /mnt/user33 ls -al user33 -RESULT=`docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} id -ur` -[[ "$RESULT" = "33" ]] -RESULT=`docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} composer update -vvv` +RESULT="$(docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" id -ur)" +[[ "$RESULT" == "33" ]] +RESULT="$(docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" composer update -vvv)" docker run --rm -v "$(pwd)":/mnt busybox rm -rf /mnt/user33 # Let's check that mbstring is enabled by default (they are compiled in PHP) -docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -m | grep mbstring -docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -m | grep PDO -#docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -m | grep pdo_sqlite +docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep mbstring +docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep PDO +#docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep pdo_sqlite if [[ $VARIANT == apache* ]]; then - # Test if environment variables are passed to PHP - DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` - - # Let's wait for Apache to start - sleep 5 - - RESULT=`curl http://localhost:81/tests/test.php` - [[ "$RESULT" = "foo" ]] - docker stop $DOCKER_CID - - - # Test Apache document root (relative) - DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html -e APACHE_DOCUMENT_ROOT=tests thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` - # Let's wait for Apache to start - sleep 5 - RESULT=`curl http://localhost:81/test.php` - [[ "$RESULT" = "foo" ]] - docker stop $DOCKER_CID - - # Test Apache document root (absolute) - DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/foo -e APACHE_DOCUMENT_ROOT=/var/www/foo/tests thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` - # Let's wait for Apache to start - sleep 5 - RESULT=`curl http://localhost:81/test.php` - [[ "$RESULT" = "foo" ]] - docker stop $DOCKER_CID - - # Test Apache HtAccess - DOCKER_CID=`docker run --rm -p "81:80" -d -v "$(pwd)"/tests/testHtAccess:/foo -e APACHE_DOCUMENT_ROOT=/foo thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` - # Let's wait for Apache to start - sleep 5 - RESULT=`curl http://localhost:81/` - [[ "$RESULT" = "foo" ]] - docker stop $DOCKER_CID - - # Test PHP_INI_... variables are correctly handled by apache - DOCKER_CID=`docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html -e PHP_INI_MEMORY_LIMIT=2G thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` - # Let's wait for Apache to start - sleep 5 - RESULT=`curl http://localhost:81/tests/apache/echo_memory_limit.php` - [[ "$RESULT" = "2G" ]] - docker stop $DOCKER_CID + # Test if environment variables are passed to PHP + DOCKER_CID="$(docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" + + # Let's wait for Apache to start + sleep 5 + + RESULT="$(curl http://localhost:81/tests/test.php)" + [[ "$RESULT" == "foo" ]] + docker stop "$DOCKER_CID" + + # Test Apache document root (relative) + DOCKER_CID="$(docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html -e APACHE_DOCUMENT_ROOT=tests "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" + # Let's wait for Apache to start + sleep 5 + RESULT="$(curl http://localhost:81/test.php)" + [[ "$RESULT" == "foo" ]] + docker stop "$DOCKER_CID" + + # Test Apache document root (absolute) + DOCKER_CID="$(docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/foo -e APACHE_DOCUMENT_ROOT=/var/www/foo/tests "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" + # Let's wait for Apache to start + sleep 5 + RESULT="$(curl http://localhost:81/test.php)" + [[ "$RESULT" == "foo" ]] + docker stop "$DOCKER_CID" + + # Test Apache HtAccess + DOCKER_CID="$(docker run --rm -p "81:80" -d -v "$(pwd)"/tests/testHtAccess:/foo -e APACHE_DOCUMENT_ROOT=/foo "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" + # Let's wait for Apache to start + sleep 5 + RESULT="$(curl http://localhost:81/)" + [[ "$RESULT" == "foo" ]] + docker stop "$DOCKER_CID" + + # Test PHP_INI_... variables are correctly handled by apache + DOCKER_CID="$(docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html -e PHP_INI_MEMORY_LIMIT=2G "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" + # Let's wait for Apache to start + sleep 5 + RESULT="$(curl http://localhost:81/tests/apache/echo_memory_limit.php)" + [[ "$RESULT" == "2G" ]] + docker stop "$DOCKER_CID" fi if [[ $VARIANT == fpm* ]]; then - # Test if environment starts without errors - DOCKER_CID=`docker run --rm -p "9000:9000" -d -v "$(pwd)":/var/www/html thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}` + # Test if environment starts without errors + DOCKER_CID="$(docker run --rm -p "9000:9000" -d -v "$(pwd)":/var/www/html "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" - # Let's wait for FPM to start - sleep 5 + # Let's wait for FPM to start + sleep 5 - # If the container is still up, it will not fail when stopping. - docker stop $DOCKER_CID + # If the container is still up, it will not fail when stopping. + docker stop "$DOCKER_CID" fi # Let's check that the access to cron will fail with a message set +e -RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo "foobar")" thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} sleep 1 2>&1 | grep -o 'Cron is not available in this image'` +RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo 'foobar')" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -o 'Cron is not available in this image')" set -e -[[ "$RESULT" = "Cron is not available in this image" ]] +[[ "$RESULT" == "Cron is not available in this image" ]] # Let's check that the configuration is loaded from the correct php.ini (development, production or imported in the image) -RESULT=`docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep error_reporting` -[[ "$RESULT" = "error_reporting => 32767 => 32767" ]] +RESULT="$(docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" +[[ "$RESULT" == "error_reporting => 32767 => 32767" ]] -RESULT=`docker run --rm -e TEMPLATE_PHP_INI=production thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep error_reporting` -[[ "$RESULT" = "error_reporting => 22527 => 22527" ]] +RESULT="$(docker run --rm -e TEMPLATE_PHP_INI=production "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" +[[ "$RESULT" == "error_reporting => 22527 => 22527" ]] -RESULT=`docker run --rm -v "$(pwd)"/tests/php.ini:/etc/php/${PHP_VERSION}/cli/php.ini thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep error_reporting` -[[ "$RESULT" = "error_reporting => 24575 => 24575" ]] +RESULT="$(docker run --rm -v "$(pwd)/tests/php.ini:/etc/php/${PHP_VERSION}/cli/php.ini" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" +[[ "$RESULT" == "error_reporting => 24575 => 24575" ]] -RESULT=`docker run --rm -e PHP_INI_ERROR_REPORTING="E_ERROR | E_WARNING" thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep error_reporting` -[[ "$RESULT" = "error_reporting => 3 => 3" ]] +RESULT="$(docker run --rm -e PHP_INI_ERROR_REPORTING="E_ERROR | E_WARNING" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" +[[ "$RESULT" == "error_reporting => 3 => 3" ]] # Tests that environment variables with an equal sign are correctly handled -RESULT=`docker run --rm -e PHP_INI_SESSION__SAVE_PATH="tcp://localhost?auth=yourverycomplex\"passwordhere" thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep "session.save_path"` -[[ "$RESULT" = "session.save_path => tcp://localhost?auth=yourverycomplex\"passwordhere => tcp://localhost?auth=yourverycomplex\"passwordhere" ]] +RESULT="$(docker run --rm -e PHP_INI_SESSION__SAVE_PATH="tcp://localhost?auth=yourverycomplex\"passwordhere" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep "session.save_path")" +[[ "$RESULT" == "session.save_path => tcp://localhost?auth=yourverycomplex\"passwordhere => tcp://localhost?auth=yourverycomplex\"passwordhere" ]] # Tests that the SMTP parameter is set in uppercase -RESULT=`docker run --rm -e PHP_INI_SMTP="192.168.0.1" thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep "^SMTP"` -[[ "$RESULT" = "SMTP => 192.168.0.1 => 192.168.0.1" ]] +RESULT="$(docker run --rm -e PHP_INI_SMTP="192.168.0.1" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep "^SMTP")" +[[ "$RESULT" == "SMTP => 192.168.0.1 => 192.168.0.1" ]] # Tests that environment variables are passed to startup scripts when UID is set -RESULT=`docker run --rm -e FOO="bar" -e STARTUP_COMMAND_1="env" -e UID=0 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} sleep 1 | grep "FOO"` -[[ "$RESULT" = "FOO=bar" ]] +RESULT="$(docker run --rm -e FOO="bar" -e STARTUP_COMMAND_1="env" -e UID=0 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" sleep 1 | grep "FOO")" +[[ "$RESULT" == "FOO=bar" ]] # Tests that multi-commands are correctly executed when UID is set -RESULT=`docker run --rm -e STARTUP_COMMAND_1="cd / && whoami" -e UID=0 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} sleep 1` -[[ "$RESULT" = "root" ]] +RESULT="$(docker run --rm -e STARTUP_COMMAND_1="cd / && whoami" -e UID=0 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" sleep 1)" +[[ "$RESULT" == "root" ]] # Tests that startup.sh is correctly executed -docker run --rm -v "$(pwd)"/tests/startup.sh:/etc/container/startup.sh thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -m | grep "startup.sh executed" +docker run --rm -v "$(pwd)"/tests/startup.sh:/etc/container/startup.sh "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep "startup.sh executed" # Tests that disable_functions is commented in php.ini cli -RESULT=`docker run --rm thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} php -i | grep "disable_functions"` -[[ "$RESULT" = "disable_functions => no value => no value" ]] +RESULT="$(docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep "disable_functions")" +[[ "$RESULT" == "disable_functions => no value => no value" ]] ################################# # Let's build the "fat" image ################################# -docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.${VARIANT} . +docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}" . # Let's check that the crons are actually sending logs in the right place -RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo "foobar")" thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} sleep 1 2>&1 | grep -oP 'msg=foobar' | head -n1` -[[ "$RESULT" = "msg=foobar" ]] +RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo 'foobar')" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=foobar' | head -n1)" +[[ "$RESULT" == "msg=foobar" ]] -RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&2 echo "error")" thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} sleep 1 2>&1 | grep -oP 'msg=error' | head -n1` -[[ "$RESULT" = "msg=error" ]] +RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&2 echo 'error')" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=error' | head -n1)" +[[ "$RESULT" == "msg=error" ]] # Let's check that the cron with a user different from root is actually run. -RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami" -e CRON_USER_1="docker" thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} sleep 1 2>&1 | grep -oP 'msg=docker' | head -n1` -[[ "$RESULT" = "msg=docker" ]] +RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami" -e CRON_USER_1="docker" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=docker' | head -n1)" +[[ "$RESULT" == "msg=docker" ]] # Let's check that 2 commands split with a ; are run by the same user. -RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami;whoami" -e CRON_USER_1="docker" thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} sleep 1 2>&1 | grep -oP 'msg=docker' | wc -l` +RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami;whoami" -e CRON_USER_1="docker" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=docker' | wc -l)" [[ "$RESULT" -gt "1" ]] - # Let's check that mbstring cannot extension cannot be disabled # Disabled because no more used in setup_extensions.php #set +e @@ -192,21 +190,21 @@ RESULT=`docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="wh #set -e # Let's check that the "xdebug.client_host" contains a value different from "no value" -docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.client_host| grep -v "no value" +docker run --rm -e PHP_EXTENSION_XDEBUG=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -i | grep xdebug.client_host | grep -v "no value" # Let's check that "xdebug.mode" is set to "debug" by default -docker run --rm -e PHP_EXTENSION_XDEBUG=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug" +docker run --rm -e PHP_EXTENSION_XDEBUG=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -i | grep xdebug.mode | grep "debug" # Let's check that "xdebug.mode" is properly overridden -docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_INI_XDEBUG__MODE=debug,coverage thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i | grep xdebug.mode| grep "debug,coverage" +docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_INI_XDEBUG__MODE=debug,coverage "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -i | grep xdebug.mode | grep "debug,coverage" if [[ "${PHP_VERSION}" != "8.1" ]]; then # Tests that blackfire + xdebug will output an error - RESULT=`docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_EXTENSION_BLACKFIRE=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -v 2>&1 | grep 'WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire.'` - [[ "$RESULT" = "WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire." ]] + RESULT="$(docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_EXTENSION_BLACKFIRE=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -v 2>&1 | grep 'WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire.')" + [[ "$RESULT" == "WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire." ]] # Check that blackfire can be enabled - docker run --rm -e PHP_EXTENSION_BLACKFIRE=1 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -m | grep blackfire + docker run --rm -e PHP_EXTENSION_BLACKFIRE=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -m | grep blackfire fi # Let's check that the extensions are enabled when composer is run docker build -t test/composer_with_gd --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/composer @@ -218,9 +216,9 @@ docker rmi test/composer_with_gd ################################# # Let's build the "node" images ################################# -docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10 --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.${VARIANT}.node10 . -docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12 --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.${VARIANT}.node12 . -docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14 --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.${VARIANT}.node14 . -docker build -t thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16 --build-arg PHP_VERSION=${PHP_VERSION} --build-arg GLOBAL_VERSION=${BRANCH} -f Dockerfile.${VARIANT}.node16 . +docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node10" . +docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node12" . +docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node14" . +docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node16" . echo "Tests passed with success" diff --git a/extensions/8.1/amqp b/extensions/8.1/amqp new file mode 120000 index 00000000..f66005fc --- /dev/null +++ b/extensions/8.1/amqp @@ -0,0 +1 @@ +../core/amqp \ No newline at end of file diff --git a/extensions/8.1/apcu b/extensions/8.1/apcu new file mode 120000 index 00000000..ddbb93d6 --- /dev/null +++ b/extensions/8.1/apcu @@ -0,0 +1 @@ +../core/apcu \ No newline at end of file diff --git a/extensions/8.1/ast b/extensions/8.1/ast new file mode 120000 index 00000000..5241c003 --- /dev/null +++ b/extensions/8.1/ast @@ -0,0 +1 @@ +../core/ast \ No newline at end of file diff --git a/extensions/8.1/ds b/extensions/8.1/ds new file mode 120000 index 00000000..edbe1af6 --- /dev/null +++ b/extensions/8.1/ds @@ -0,0 +1 @@ +../core/ds \ No newline at end of file diff --git a/extensions/8.1/grpc b/extensions/8.1/grpc new file mode 120000 index 00000000..57533a58 --- /dev/null +++ b/extensions/8.1/grpc @@ -0,0 +1 @@ +../core/grpc \ No newline at end of file diff --git a/extensions/8.1/igbinary b/extensions/8.1/igbinary new file mode 120000 index 00000000..c57a5ab9 --- /dev/null +++ b/extensions/8.1/igbinary @@ -0,0 +1 @@ +../core/igbinary \ No newline at end of file diff --git a/extensions/8.1/imagick b/extensions/8.1/imagick new file mode 120000 index 00000000..a55b99bc --- /dev/null +++ b/extensions/8.1/imagick @@ -0,0 +1 @@ +../core/imagick \ No newline at end of file diff --git a/extensions/8.1/mailparse b/extensions/8.1/mailparse new file mode 120000 index 00000000..e29c74c5 --- /dev/null +++ b/extensions/8.1/mailparse @@ -0,0 +1 @@ +../core/mailparse \ No newline at end of file diff --git a/extensions/8.1/memcached b/extensions/8.1/memcached new file mode 120000 index 00000000..13f2ea8c --- /dev/null +++ b/extensions/8.1/memcached @@ -0,0 +1 @@ +../core/memcached \ No newline at end of file diff --git a/extensions/8.1/mongodb b/extensions/8.1/mongodb new file mode 120000 index 00000000..7898c8e7 --- /dev/null +++ b/extensions/8.1/mongodb @@ -0,0 +1 @@ +../core/mongodb \ No newline at end of file diff --git a/extensions/8.1/msgpack b/extensions/8.1/msgpack new file mode 120000 index 00000000..2a72eaa8 --- /dev/null +++ b/extensions/8.1/msgpack @@ -0,0 +1 @@ +../core/msgpack \ No newline at end of file diff --git a/extensions/8.1/mysqli b/extensions/8.1/mysqli new file mode 120000 index 00000000..f752c283 --- /dev/null +++ b/extensions/8.1/mysqli @@ -0,0 +1 @@ +../core/mysqli \ No newline at end of file diff --git a/extensions/8.1/pcov b/extensions/8.1/pcov new file mode 120000 index 00000000..b99a0dd2 --- /dev/null +++ b/extensions/8.1/pcov @@ -0,0 +1 @@ +../core/pcov \ No newline at end of file diff --git a/extensions/8.1/redis b/extensions/8.1/redis new file mode 120000 index 00000000..0727c021 --- /dev/null +++ b/extensions/8.1/redis @@ -0,0 +1 @@ +../core/redis \ No newline at end of file diff --git a/extensions/8.1/uploadprogress b/extensions/8.1/uploadprogress new file mode 120000 index 00000000..6b4b74d0 --- /dev/null +++ b/extensions/8.1/uploadprogress @@ -0,0 +1 @@ +../core/uploadprogress \ No newline at end of file diff --git a/extensions/8.1/uuid b/extensions/8.1/uuid new file mode 120000 index 00000000..7a522046 --- /dev/null +++ b/extensions/8.1/uuid @@ -0,0 +1 @@ +../core/uuid \ No newline at end of file diff --git a/extensions/8.1/xmlrpc b/extensions/8.1/xmlrpc new file mode 120000 index 00000000..2833c799 --- /dev/null +++ b/extensions/8.1/xmlrpc @@ -0,0 +1 @@ +../core/xmlrpc \ No newline at end of file diff --git a/extensions/8.1/yaml b/extensions/8.1/yaml new file mode 120000 index 00000000..4be2658a --- /dev/null +++ b/extensions/8.1/yaml @@ -0,0 +1 @@ +../core/yaml \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 93b7bae6..330b3e73 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -106,7 +106,7 @@ Below is a list of extensions available in this image: - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) - *event*, *gnupg* are not available in PHP 8.0+ -- *amqp*, *apcu*, *ast*, *blackfire*, *ds*, *gettext*, *grpc*, *ev*, *igbinary*, *imagick*, *mailparse*, *memcached*, *mongodb*, *msgpack*, *mysqli*, *pcov*, *rdkafka*, *redis*, *swoole*, *uploadprogress*, *uuid*, *yaml* are not available in PHP 8.1+ (RC) +- *blackfire*, *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ ### Enabling/disabling extensions in the fat image From f976a52608ec006da4179618bbf4f83068424c67 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 29 Nov 2021 17:12:13 +0100 Subject: [PATCH 094/162] Update and clarify usage of extensions with slim and fat --- README.md | 31 +++++++++++++++++-------------- utils/README.blueprint.md | 31 +++++++++++++++++-------------- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 4eb0abcb..84a1962e 100644 --- a/README.md +++ b/README.md @@ -163,25 +163,24 @@ RUN npm run build This image comes with 2 "types": the *slim* and the **fat** image. -The slim image contains only a set a base PHP extensions. +These extensions are enabled by default in slim image: `calendar` `ctype` `curl` `date` `dom` `exif` `fileinfo` `filter` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `openssl` `pcntl` `pcre` `PDO` `Phar` `posix` `readline` `shmop` `Reflection` `session` `shmop` `SimpleXML` `sockets` `sodium` `SPL` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `xml` `xmlreader` `xmlwriter` `xsl` `zip` -Only these extensions are available in the slim image: `calendar` `ctype` `curl` `dom` `exif` `fileinfo` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `pcntl` `pdo` `phar` `posix` `readline` `shmop` `simplexml` `sockets` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `wddx` `xml` `xmlreader` `xmlwriter` `xsl` `zip` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.0-v4-slim-cli php -m` -These extensions are enabled by default. +The slim image provides a simple way to install the other extensions. You would typically use the "slim" image in a `Dockerfile` when building your own custom image. -The slim image provides a simple way to install the other extensions. You would typically use the "slim" -image in a `Dockerfile` when building your own custom image. - -The fat image contains the most commonly used extensions. You would typically use it in a local or CI environment. +The fat image contains the most commonly used extensions. You would typically use it in a local or CI environment. ### Fat image Below is a list of extensions available in this image: -**Enabled by default (in addition to extensions enabled in Slim image):** apcu mysqli pdo_mysql igbinary redis soap +**Enabled by default (in addition to extensions enabled in Slim image):** `apcu`, `hash`, `iconv`, `igbinary`, `mysqli`, `mysqlnd`, `redis`, `soap`, `xsl`, `zlib` and all enabled in slim. **Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.0-v4-cli php -m` + **Note**: - *mcrypt* is not available anymore in PHP 7.3+ @@ -225,9 +224,11 @@ FROM thecodingmachine/php:8.0-v4-slim-apache # of the extensions (thanks to a ONBUILD hook in the slim image) ``` -Beware! The `ARG PHP_EXTENSIONS` command must be written before the `FROM`. This is not a typo. - -**Heads up**: if you are using multistage builds, the "ARG" variable must be put at the very top of the file (before the +Beware : +* The `ARG PHP_EXTENSIONS` command must be written before the `FROM`. This is not a typo. +* `ARG PHP_EXTENSIONS=""` it's not the same as `ENV PHP_EXTENSIONS=""` +* You can't use `ARG PHP_EXTENSION_MYEXT=""` like the fat image. +* **Heads up**: if you are using multistage builds, the "ARG" variable must be put at the very top of the file (before the first FROM): ```Dockerfile @@ -346,9 +347,11 @@ As an alternative, you can use the `APACHE_EXTENSIONS` global variable: APACHE_EXTENSIONS="dav ssl" ``` -**Apache modules enabled by default:** `access_compat` `alias` `auth_basic` `authn_core` `authn_file` `authz_core` `authz_host` `authz_user` `autoindex` `deflate` `dir` `env` `expires` `filter` `mime` `mpm_prefork` `negotiation` `php7` `reqtimeout` `rewrite` `setenvif` `status` +**Apache modules enabled by default:** `access_compat` `alias` `auth_basic` `authn_core` `authn_file` `authz_core` `authz_host` `authz_user` `autoindex` `deflate` `dir` `env` `expires` `filter` `mime` `mpm_prefork` `negotiation` `php8.0 (depend of your active version)` `reqtimeout` `rewrite` `setenvif` `status` + +**Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `brotli` `buffer` `cache` `cache_disk` `cache_socache` `cern_meta` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `http2` `ident` `imagemap` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `md` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php8.0 (depend of your active version)` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_hcheck` `proxy_html` `proxy_http` `proxy_http2` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_redis` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` -**Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `buffer` `cache` `cache_disk` `cache_socache` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `ident` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php7` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_html` `proxy_http` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.0-v4-slim-apache a2enmod` ## Debugging @@ -538,7 +541,7 @@ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/sr ## Using the CLI variant -The CLI images (thecodingmachine/php:7.x-v4-cli) expect a command to be passed in parameter. +The CLI images (thecodingmachine/php:8.0-v4-cli) expect a command to be passed in parameter. You should override the Docker "command". Important! You should not override the Docker "entrypoint". diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 330b3e73..7bb2b790 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -81,25 +81,24 @@ RUN npm run build This image comes with 2 "types": the *slim* and the **fat** image. -The slim image contains only a set a base PHP extensions. +These extensions are enabled by default in slim image: `calendar` `ctype` `curl` `date` `dom` `exif` `fileinfo` `filter` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `openssl` `pcntl` `pcre` `PDO` `Phar` `posix` `readline` `shmop` `Reflection` `session` `shmop` `SimpleXML` `sockets` `sodium` `SPL` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `xml` `xmlreader` `xmlwriter` `xsl` `zip` -Only these extensions are available in the slim image: `calendar` `ctype` `curl` `dom` `exif` `fileinfo` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `pcntl` `pdo` `phar` `posix` `readline` `shmop` `simplexml` `sockets` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `wddx` `xml` `xmlreader` `xmlwriter` `xsl` `zip` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:{{ $image.php_version }}-v4-slim-cli php -m` -These extensions are enabled by default. +The slim image provides a simple way to install the other extensions. You would typically use the "slim" image in a `Dockerfile` when building your own custom image. -The slim image provides a simple way to install the other extensions. You would typically use the "slim" -image in a `Dockerfile` when building your own custom image. - -The fat image contains the most commonly used extensions. You would typically use it in a local or CI environment. +The fat image contains the most commonly used extensions. You would typically use it in a local or CI environment. ### Fat image Below is a list of extensions available in this image: -**Enabled by default (in addition to extensions enabled in Slim image):** apcu mysqli pdo_mysql igbinary redis soap +**Enabled by default (in addition to extensions enabled in Slim image):** `apcu`, `hash`, `iconv`, `igbinary`, `mysqli`, `mysqlnd`, `redis`, `soap`, `xsl`, `zlib` and all enabled in slim. **Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:{{ $image.php_version }}-v4-cli php -m` + **Note**: - *mcrypt* is not available anymore in PHP 7.3+ @@ -143,9 +142,11 @@ FROM thecodingmachine/php:{{ $image.php_version }}-v4-slim-apache # of the extensions (thanks to a ONBUILD hook in the slim image) ``` -Beware! The `ARG PHP_EXTENSIONS` command must be written before the `FROM`. This is not a typo. - -**Heads up**: if you are using multistage builds, the "ARG" variable must be put at the very top of the file (before the +Beware : +* The `ARG PHP_EXTENSIONS` command must be written before the `FROM`. This is not a typo. +* `ARG PHP_EXTENSIONS=""` it's not the same as `ENV PHP_EXTENSIONS=""` +* You can't use `ARG PHP_EXTENSION_MYEXT=""` like the fat image. +* **Heads up**: if you are using multistage builds, the "ARG" variable must be put at the very top of the file (before the first FROM): ```Dockerfile @@ -264,9 +265,11 @@ As an alternative, you can use the `APACHE_EXTENSIONS` global variable: APACHE_EXTENSIONS="dav ssl" ``` -**Apache modules enabled by default:** `access_compat` `alias` `auth_basic` `authn_core` `authn_file` `authz_core` `authz_host` `authz_user` `autoindex` `deflate` `dir` `env` `expires` `filter` `mime` `mpm_prefork` `negotiation` `php7` `reqtimeout` `rewrite` `setenvif` `status` +**Apache modules enabled by default:** `access_compat` `alias` `auth_basic` `authn_core` `authn_file` `authz_core` `authz_host` `authz_user` `autoindex` `deflate` `dir` `env` `expires` `filter` `mime` `mpm_prefork` `negotiation` `php8.0 (depend of your active version)` `reqtimeout` `rewrite` `setenvif` `status` + +**Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `brotli` `buffer` `cache` `cache_disk` `cache_socache` `cern_meta` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `http2` `ident` `imagemap` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `md` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php8.0 (depend of your active version)` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_hcheck` `proxy_html` `proxy_http` `proxy_http2` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_redis` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` -**Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `buffer` `cache` `cache_disk` `cache_socache` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `ident` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php7` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_html` `proxy_http` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:{{ $image.php_version }}-v4-slim-apache a2enmod` ## Debugging @@ -456,7 +459,7 @@ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/sr ## Using the CLI variant -The CLI images (thecodingmachine/php:7.x-v4-cli) expect a command to be passed in parameter. +The CLI images (thecodingmachine/php:{{ $image.php_version }}-v4-cli) expect a command to be passed in parameter. You should override the Docker "command". Important! You should not override the Docker "entrypoint". From f5446944542b463b9d6b3e7ac4ae32fb4a97ef21 Mon Sep 17 00:00:00 2001 From: Eric Chang Date: Tue, 14 Dec 2021 18:04:41 +0800 Subject: [PATCH 095/162] feat: use exec command to run php process --- utils/php_proxy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/php_proxy.sh b/utils/php_proxy.sh index 4187c52d..ae577acc 100755 --- a/utils/php_proxy.sh +++ b/utils/php_proxy.sh @@ -15,4 +15,4 @@ if [[ "$REGENERATE" == "1" ]]; then /usr/bin/real_php /usr/local/bin/setup_extensions.php | sudo bash fi -/usr/bin/real_php "$@" +exec /usr/bin/real_php "$@" From 1a66a2e2f80210bc556b7f55da6f6bbc1732a9d7 Mon Sep 17 00:00:00 2001 From: Olly Cross Date: Thu, 3 Mar 2022 08:54:22 +0000 Subject: [PATCH 096/162] Feat: Always pass `PHP_VERSION` to `phpenmod` or `phpdismod` to avoid conflicts --- extensions/core/disable_all.sh | 2 +- extensions/core/docker-install.sh | 8 ++++---- extensions/core/memcached/install.sh | 6 +++--- extensions/core/mysqli/install.sh | 4 ++-- extensions/core/redis/install.sh | 6 +++--- utils/docker-entrypoint-as-root.sh | 2 +- utils/php_proxy.sh | 2 +- utils/setup_extensions.php | 6 ++++-- utils/utils.php | 13 +++++++++++++ 9 files changed, 32 insertions(+), 17 deletions(-) diff --git a/extensions/core/disable_all.sh b/extensions/core/disable_all.sh index 42ebf242..e954009c 100755 --- a/extensions/core/disable_all.sh +++ b/extensions/core/disable_all.sh @@ -8,6 +8,6 @@ for ext in */; do \ if compgen -G "/etc/php/${PHP_VERSION}/cli/conf.d/*-$ext_no_slash.ini" > /dev/null; then echo "***************** Disabling $ext_no_slash ******************" #rm -f /etc/php/${PHP_VERSION}/cli/conf.d/*-$ext_no_slash.ini - phpdismod $ext_no_slash + phpdismod -v $PHP_VERSION $ext_no_slash fi done diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 5b52b031..170bfd4d 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -54,24 +54,24 @@ fi if [ -n "$EXTENSION" ]; then # Let's perform a test - phpenmod $EXTENSION + phpenmod -v $PHP_VERSION $EXTENSION /usr/bin/real_php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$EXTENSION}}" # Check that there is no output on STDERR when starting php: OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` [[ "$OUTPUT" == "" ]] # And now, let's disable it! - phpdismod $EXTENSION + phpdismod -v $PHP_VERSION $EXTENSION fi if [ -n "$PECL_EXTENSION" ]; then # Let's perform a test - PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash + PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" PHP_VERSION="${PHP_VERSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" /usr/bin/real_php /usr/local/bin/generate_conf.php > /etc/php/${PHP_VERSION}/cli/conf.d/testextension.ini /usr/bin/real_php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$PECL_EXTENSION}}" # Check that there is no output on STDERR when starting php: OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` [[ "$OUTPUT" == "" ]] - PHP_EXTENSIONS="" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash + PHP_EXTENSIONS="" PHP_VERSION="${PHP_VERSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash rm /etc/php/${PHP_VERSION}/cli/conf.d/testextension.ini fi diff --git a/extensions/core/memcached/install.sh b/extensions/core/memcached/install.sh index 1de22277..d64f3e54 100755 --- a/extensions/core/memcached/install.sh +++ b/extensions/core/memcached/install.sh @@ -5,9 +5,9 @@ export DEPENDENCIES="php-igbinary php-msgpack" export EXTENSION=memcached # we need to do some weird stuff to get memcached working -phpdismod igbinary -phpenmod igbinary +phpdismod -v $PHP_VERSION igbinary +phpenmod -v $PHP_VERSION igbinary ../docker-install.sh -phpdismod igbinary \ No newline at end of file +phpdismod -v $PHP_VERSION igbinary diff --git a/extensions/core/mysqli/install.sh b/extensions/core/mysqli/install.sh index 4cbc2b31..30fa6995 100755 --- a/extensions/core/mysqli/install.sh +++ b/extensions/core/mysqli/install.sh @@ -7,5 +7,5 @@ export PACKAGE_NAME=mysql ../docker-install.sh # Exception for this package that enables both mysqlnd and mysqli and pdo_mysql -phpdismod mysqli -phpdismod pdo_mysql +phpdismod -v $PHP_VERSION mysqli +phpdismod -v $PHP_VERSION pdo_mysql diff --git a/extensions/core/redis/install.sh b/extensions/core/redis/install.sh index 034e85b6..0d5c66c7 100755 --- a/extensions/core/redis/install.sh +++ b/extensions/core/redis/install.sh @@ -4,9 +4,9 @@ set -e export EXTENSION=redis # we need to do some weird stuff to get memcached working -phpdismod igbinary -phpenmod igbinary +phpdismod -v $PHP_VERSION igbinary +phpenmod -v $PHP_VERSION igbinary ../docker-install.sh -phpdismod igbinary +phpdismod -v $PHP_VERSION igbinary diff --git a/utils/docker-entrypoint-as-root.sh b/utils/docker-entrypoint-as-root.sh index 960e9eb8..70f2eb80 100755 --- a/utils/docker-entrypoint-as-root.sh +++ b/utils/docker-entrypoint-as-root.sh @@ -120,7 +120,7 @@ sudo chown docker:docker /opt/php_env_var_cache.php /usr/bin/real_php /usr/local/bin/check_php_env_var_changes.php &> /dev/null /usr/bin/real_php /usr/local/bin/generate_conf.php > /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini -/usr/bin/real_php /usr/local/bin/setup_extensions.php | sudo bash +PHP_VERSION="${PHP_VERSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | sudo bash # output on the logs can be done by writing on the "tini" PID. Useful for CRONTAB TINI_PID=`ps -e | grep tini | awk '{print $1;}'` diff --git a/utils/php_proxy.sh b/utils/php_proxy.sh index ae577acc..d3dc5a03 100755 --- a/utils/php_proxy.sh +++ b/utils/php_proxy.sh @@ -12,7 +12,7 @@ fi if [[ "$REGENERATE" == "1" ]]; then /usr/bin/real_php /usr/local/bin/generate_conf.php | sudo tee "/etc/php/${PHP_VERSION}/mods-available/generated_conf.ini" > /dev/null - /usr/bin/real_php /usr/local/bin/setup_extensions.php | sudo bash + PHP_VERSION="${PHP_VERSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | sudo bash fi exec /usr/bin/real_php "$@" diff --git a/utils/setup_extensions.php b/utils/setup_extensions.php index 3abbcc99..68a0e80e 100755 --- a/utils/setup_extensions.php +++ b/utils/setup_extensions.php @@ -15,6 +15,8 @@ $phpExtensions = getPhpExtensionsEnvVar(); +$phpVersion = getPhpVersionEnvVar(); + //foreach ($compiledExtensions as $phpExtension) { // $envName = 'PHP_EXTENSION_'.strtoupper($phpExtension); // @@ -66,8 +68,8 @@ }*/ if ($toDisable) { - echo 'phpdismod '.implode(' ', $toDisable)."\n"; + echo 'phpdismod -v ' . $phpVersion . ' ' . implode(' ', $toDisable)."\n"; } if ($toEnable) { - echo 'phpenmod '.implode(' ', $toEnable)."\n"; + echo 'phpenmod -v ' . $phpVersion . ' ' . implode(' ', $toEnable)."\n"; } diff --git a/utils/utils.php b/utils/utils.php index 732716e8..42d8f942 100644 --- a/utils/utils.php +++ b/utils/utils.php @@ -73,6 +73,19 @@ function getPhpExtensionsEnvVar(): array return $phpExtensions; } +function getPhpVersionEnvVar() +{ + static $phpVersion = null; + if ($phpVersion !== null) { + return $phpVersion; + } + + $phpVersion = getenv('PHP_VERSION'); + + return $phpVersion; +} + + function enableExtension(string $extensionName): bool { $phpExtensions = getPhpExtensionsEnvVar(); From e412868bc6b8d84e0535fa69eaf631ac35941e27 Mon Sep 17 00:00:00 2001 From: Olly Cross Date: Thu, 3 Mar 2022 10:41:56 +0000 Subject: [PATCH 097/162] Fix: Add explicit versioning when installing PHP module dependencies --- extensions/core/memcached/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/core/memcached/install.sh b/extensions/core/memcached/install.sh index d64f3e54..e2d94999 100755 --- a/extensions/core/memcached/install.sh +++ b/extensions/core/memcached/install.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -e -export DEPENDENCIES="php-igbinary php-msgpack" +export DEPENDENCIES="php${PHP_VERSION}-igbinary php${PHP_VERSION}-msgpack" export EXTENSION=memcached # we need to do some weird stuff to get memcached working From bbb8ea0c55626cc48cfeb720416f0116256d2294 Mon Sep 17 00:00:00 2001 From: AndersonPEM Date: Wed, 15 Jun 2022 18:56:41 +0100 Subject: [PATCH 098/162] Multiarch Implementation --- Dockerfile.apache | 11 ++++- Dockerfile.apache.node10 | 7 +++- Dockerfile.apache.node12 | 7 +++- Dockerfile.apache.node14 | 7 +++- Dockerfile.apache.node16 | 7 +++- Dockerfile.cli | 11 ++++- Dockerfile.cli.node10 | 7 +++- Dockerfile.cli.node12 | 7 +++- Dockerfile.cli.node14 | 7 +++- Dockerfile.cli.node16 | 7 +++- Dockerfile.fpm | 11 ++++- Dockerfile.fpm.node10 | 7 +++- Dockerfile.fpm.node12 | 7 +++- Dockerfile.fpm.node14 | 7 +++- Dockerfile.fpm.node16 | 7 +++- Dockerfile.slim.apache | 18 +++++--- Dockerfile.slim.cli | 18 +++++--- Dockerfile.slim.fpm | 18 +++++--- README.md | 19 ++++++++- build-and-test.sh | 31 +++++++------- extensions/core/blackfire/install.sh | 62 +++++++++++++++++++++------- utils/Dockerfile.blueprint | 11 ++++- utils/Dockerfile.node.blueprint | 7 +++- utils/Dockerfile.slim.blueprint | 18 +++++--- utils/README.blueprint.md | 18 ++++++++ 25 files changed, 264 insertions(+), 73 deletions(-) diff --git a/Dockerfile.apache b/Dockerfile.apache index f577d20e..e25b23f6 100644 --- a/Dockerfile.apache +++ b/Dockerfile.apache @@ -1,9 +1,18 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache + +ONBUILD ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + +ENV CONTAINER_OS=${TARGETOS} +ENV CONTAINER_ARCH=${TARGETARCH} + LABEL authors="Julien Neuhart , David Négrier " diff --git a/Dockerfile.apache.node10 b/Dockerfile.apache.node10 index 123362b2..38dab181 100644 --- a/Dockerfile.apache.node10 +++ b/Dockerfile.apache.node10 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ diff --git a/Dockerfile.apache.node12 b/Dockerfile.apache.node12 index 079370e4..bd93797a 100644 --- a/Dockerfile.apache.node12 +++ b/Dockerfile.apache.node12 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ diff --git a/Dockerfile.apache.node14 b/Dockerfile.apache.node14 index 69352348..0a26db59 100644 --- a/Dockerfile.apache.node14 +++ b/Dockerfile.apache.node14 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ diff --git a/Dockerfile.apache.node16 b/Dockerfile.apache.node16 index eadf6adc..7942d4e1 100644 --- a/Dockerfile.apache.node16 +++ b/Dockerfile.apache.node16 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ diff --git a/Dockerfile.cli b/Dockerfile.cli index 4d4443a1..36bbb4af 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -1,9 +1,18 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli + +ONBUILD ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + +ENV CONTAINER_OS=${TARGETOS} +ENV CONTAINER_ARCH=${TARGETARCH} + LABEL authors="Julien Neuhart , David Négrier " diff --git a/Dockerfile.cli.node10 b/Dockerfile.cli.node10 index 21948881..56102f00 100644 --- a/Dockerfile.cli.node10 +++ b/Dockerfile.cli.node10 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ diff --git a/Dockerfile.cli.node12 b/Dockerfile.cli.node12 index 4f5f5628..c1cc8fda 100644 --- a/Dockerfile.cli.node12 +++ b/Dockerfile.cli.node12 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ diff --git a/Dockerfile.cli.node14 b/Dockerfile.cli.node14 index 498bb49a..3324f9ef 100644 --- a/Dockerfile.cli.node14 +++ b/Dockerfile.cli.node14 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ diff --git a/Dockerfile.cli.node16 b/Dockerfile.cli.node16 index 64678551..a72f5c00 100644 --- a/Dockerfile.cli.node16 +++ b/Dockerfile.cli.node16 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ diff --git a/Dockerfile.fpm b/Dockerfile.fpm index 7920c129..cde8446c 100644 --- a/Dockerfile.fpm +++ b/Dockerfile.fpm @@ -1,9 +1,18 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm + +ONBUILD ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + +ENV CONTAINER_OS=${TARGETOS} +ENV CONTAINER_ARCH=${TARGETARCH} + LABEL authors="Julien Neuhart , David Négrier " diff --git a/Dockerfile.fpm.node10 b/Dockerfile.fpm.node10 index 1942fe0e..ef81bf21 100644 --- a/Dockerfile.fpm.node10 +++ b/Dockerfile.fpm.node10 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ diff --git a/Dockerfile.fpm.node12 b/Dockerfile.fpm.node12 index 757e7fac..b8b74c06 100644 --- a/Dockerfile.fpm.node12 +++ b/Dockerfile.fpm.node12 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ diff --git a/Dockerfile.fpm.node14 b/Dockerfile.fpm.node14 index aff1dd28..5adce739 100644 --- a/Dockerfile.fpm.node14 +++ b/Dockerfile.fpm.node14 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ diff --git a/Dockerfile.fpm.node16 b/Dockerfile.fpm.node16 index 070fd6c3..8cbdd15e 100644 --- a/Dockerfile.fpm.node16 +++ b/Dockerfile.fpm.node16 @@ -1,12 +1,17 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) + ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 40fa6967..a27caffc 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -1,5 +1,6 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM ubuntu:20.04 + +FROM --platform=$BUILDPLATFORM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -11,6 +12,11 @@ ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION ENV PHP_VERSION=$PHP_VERSION +ONBUILD ARG TARGETOS TARGETARCH +ARG TARGETOS TARGETARCH + +ARG BLACKFIRE_VERSION=1 +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} # |-------------------------------------------------------------------------- # | Main PHP extensions @@ -287,7 +293,7 @@ ENV IMAGE_VARIANT=apache # Add Tini (to be able to stop the container with ctrl-c). # See: https://github.com/krallin/tini ENV TINI_VERSION v0.16.1 -ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini +ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini RUN chmod +x /tini COPY utils/generate_cron.php /usr/local/bin/generate_cron.php @@ -349,14 +355,14 @@ ONBUILD RUN sudo -E PHP_EXTENSIONS="$PHP_EXTENSIONS" /usr/local/bin/install_sele # | Supercronic is a drop-in replacement for cron (for containers). # | ENV SUPERCRONIC_OPTIONS= - ONBUILD ARG INSTALL_CRON ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ - SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-linux-amd64 \ - && SUPERCRONIC=supercronic-linux-amd64 \ + SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-$TARGETOS-$TARGETARCH \ + && echo $SUPERCRONIC_URL \ + && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ && curl -fsSLO "$SUPERCRONIC_URL" \ - && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ +# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ && chmod +x "$SUPERCRONIC" \ && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 58d26a67..2cdc18a8 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -1,5 +1,6 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM ubuntu:20.04 + +FROM --platform=$BUILDPLATFORM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -11,6 +12,11 @@ ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION ENV PHP_VERSION=$PHP_VERSION +ONBUILD ARG TARGETOS TARGETARCH +ARG TARGETOS TARGETARCH + +ARG BLACKFIRE_VERSION=1 +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} # |-------------------------------------------------------------------------- # | Main PHP extensions @@ -213,7 +219,7 @@ ENV IMAGE_VARIANT=cli # Add Tini (to be able to stop the container with ctrl-c). # See: https://github.com/krallin/tini ENV TINI_VERSION v0.16.1 -ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini +ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini RUN chmod +x /tini COPY utils/generate_cron.php /usr/local/bin/generate_cron.php @@ -254,14 +260,14 @@ ONBUILD RUN sudo -E PHP_EXTENSIONS="$PHP_EXTENSIONS" /usr/local/bin/install_sele # | Supercronic is a drop-in replacement for cron (for containers). # | ENV SUPERCRONIC_OPTIONS= - ONBUILD ARG INSTALL_CRON ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ - SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-linux-amd64 \ - && SUPERCRONIC=supercronic-linux-amd64 \ + SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-$TARGETOS-$TARGETARCH \ + && echo $SUPERCRONIC_URL \ + && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ && curl -fsSLO "$SUPERCRONIC_URL" \ - && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ +# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ && chmod +x "$SUPERCRONIC" \ && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index dc6a70c0..8b05039c 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -1,5 +1,6 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM ubuntu:20.04 + +FROM --platform=$BUILDPLATFORM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -11,6 +12,11 @@ ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION ENV PHP_VERSION=$PHP_VERSION +ONBUILD ARG TARGETOS TARGETARCH +ARG TARGETOS TARGETARCH + +ARG BLACKFIRE_VERSION=1 +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} # |-------------------------------------------------------------------------- # | Main PHP extensions @@ -226,7 +232,7 @@ ENV IMAGE_VARIANT=fpm # Add Tini (to be able to stop the container with ctrl-c). # See: https://github.com/krallin/tini ENV TINI_VERSION v0.16.1 -ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini +ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini RUN chmod +x /tini COPY utils/generate_cron.php /usr/local/bin/generate_cron.php @@ -277,14 +283,14 @@ ONBUILD RUN sudo -E PHP_EXTENSIONS="$PHP_EXTENSIONS" /usr/local/bin/install_sele # | Supercronic is a drop-in replacement for cron (for containers). # | ENV SUPERCRONIC_OPTIONS= - ONBUILD ARG INSTALL_CRON ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ - SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-linux-amd64 \ - && SUPERCRONIC=supercronic-linux-amd64 \ + SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-$TARGETOS-$TARGETARCH \ + && echo $SUPERCRONIC_URL \ + && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ && curl -fsSLO "$SUPERCRONIC_URL" \ - && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ +# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ && chmod +x "$SUPERCRONIC" \ && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ diff --git a/README.md b/README.md index 84a1962e..8150080c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ -[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md) ![Docker PHP Images GitHub workflow](https://github.com/thecodingmachine/docker-images-php/workflows/Docker%20PHP%20Images%20GitHub%20workflow/badge.svg) # General purpose PHP images for Docker @@ -726,6 +725,24 @@ You can then test your changes using the `build-and-test.sh` command: PHP_VERSION=8.0 BRANCH=v4 VARIANT=apache ./build-and-test.sh ``` +### Additional environment in build-and-test.sh + +- BUILDER: either build or buildx depending on your configuration. +Defaults to build +- BLACKFIRE_VERSION: defaults to 1. You can install v2 if you're feeling adventurous by specifying 2 as a value. +- PLATFORM: Docker will default to your architecture for building images. However, if you have QEMU set up in your machine, you can try building for another architecture like linux/arm64 + +Only one platform at a time is supported during the build and test script execution. + +*APPLE SILICON CONSIDERATIONS* + +Filesystem management works differently in Apple's macOS, so, if you're trying to build a linux/arm64 image (that is best suited for using in a M1/M2 Mac than a linux/amd64 one), there's a high likelihood that the filesystem user and permissions with busybox are going to fail. + +Although the test fails, when using the built image, everything works as expected. + +Run a virtual machine with linux/arm64 with Docker installed in it and, then, build and test the image. You'll take advantage of the ARM speed and will also be able to run the unit tests properly. + + ### Adding additional images To add a new version (php, node, apache, ...), please edit the following files : diff --git a/build-and-test.sh b/build-and-test.sh index 5f5938f5..c7102d11 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -9,6 +9,9 @@ failure() { } trap 'failure ${LINENO} "$BASH_COMMAND"' ERR +# Use either docker's 'build' command or 'buildx ' +export BUILDTOOL="build" + # Let's replace the "." by a "-" with some bash magic export BRANCH_VARIANT="${VARIANT//./-}" @@ -17,12 +20,10 @@ export DOCKER_BUILDKIT=1 # Force use of BuildKit export BUILDKIT_STEP_LOG_MAX_SIZE=10485760 # output log limit fixed to 10MiB # Let's build the "slim" image. -docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.slim.${VARIANT}" . - -# Post build unit tests +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" --build-arg BLACKFIRE_VERSION="${BLACKFIRE_VERSION}" -f "Dockerfile.slim.${VARIANT}" --platform=${PLATFORM} . # Let's check that the extensions can be built using the "ONBUILD" statement -docker build -t test/slim_onbuild --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/slim_onbuild +docker $BUILDTOOL -t test/slim_onbuild --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" --platform=${PLATFORM} tests/slim_onbuild # This should run ok (the sudo disable environment variables but call to composer proxy does not trigger PHP ini file regeneration) docker run --rm test/slim_onbuild php -m | grep sockets docker run --rm test/slim_onbuild php -m | grep pdo_pgsql @@ -30,9 +31,10 @@ docker run --rm test/slim_onbuild php -m | grep pdo_sqlite docker rmi test/slim_onbuild # Let's check that the extensions are available for composer using "ARG PHP_EXTENSIONS" statement: -docker build -t test/slim_onbuild_composer --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/slim_onbuild_composer +docker $BUILDTOOL -t test/slim_onbuild_composer --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" --platform=${PLATFORM} tests/slim_onbuild_composer docker rmi test/slim_onbuild_composer +echo "Running post-build unit tests" # Post build unit tests if [[ $VARIANT == cli* ]]; then CONTAINER_CWD=/usr/src/app; else CONTAINER_CWD=/var/www/html; fi # Default user is 1000 @@ -60,15 +62,15 @@ RESULT="$(docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD "thecodingmachine/ph RESULT="$(docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" composer update -vvv)" docker run --rm -v "$(pwd)":/mnt busybox rm -rf /mnt/user33 -# Let's check that mbstring is enabled by default (they are compiled in PHP) +#Let's check that mbstring is enabled by default (they are compiled in PHP) docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep mbstring docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep PDO -#docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep pdo_sqlite +# SQLite is disabled +# docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep pdo_sqlite if [[ $VARIANT == apache* ]]; then # Test if environment variables are passed to PHP DOCKER_CID="$(docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" - # Let's wait for Apache to start sleep 5 @@ -165,7 +167,7 @@ RESULT="$(docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${ ################################# # Let's build the "fat" image ################################# -docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}" . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}" --platform=${PLATFORM} . # Let's check that the crons are actually sending logs in the right place RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo 'foobar')" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=foobar' | head -n1)" @@ -202,12 +204,11 @@ if [[ "${PHP_VERSION}" != "8.1" ]]; then # Tests that blackfire + xdebug will output an error RESULT="$(docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_EXTENSION_BLACKFIRE=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -v 2>&1 | grep 'WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire.')" [[ "$RESULT" == "WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire." ]] - # Check that blackfire can be enabled docker run --rm -e PHP_EXTENSION_BLACKFIRE=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -m | grep blackfire fi # Let's check that the extensions are enabled when composer is run -docker build -t test/composer_with_gd --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/composer +docker $BUILDTOOL -t test/composer_with_gd --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" --platform=${PLATFORM} tests/composer # This should run ok (the sudo disables environment variables but call to composer proxy does not trigger PHP ini file regeneration) docker run --rm test/composer_with_gd sudo composer update @@ -216,9 +217,9 @@ docker rmi test/composer_with_gd ################################# # Let's build the "node" images ################################# -docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node10" . -docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node12" . -docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node14" . -docker build -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node16" . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node10" --platform=${PLATFORM} . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node12" --platform=${PLATFORM} . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node14" --platform=${PLATFORM} . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node16" --platform=${PLATFORM} . echo "Tests passed with success" diff --git a/extensions/core/blackfire/install.sh b/extensions/core/blackfire/install.sh index b76b0739..3e58833b 100755 --- a/extensions/core/blackfire/install.sh +++ b/extensions/core/blackfire/install.sh @@ -5,19 +5,49 @@ set -ex # Install Blackfire version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") -curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version -mkdir -p /tmp/blackfire -tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire -mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so -rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz - -echo "extension=blackfire.so" > /etc/php/${PHP_VERSION}/mods-available/blackfire.ini -# Adding this in the list of Ubuntu extensions because we use that list as a base for the modules list. -# TODO: question: cannot we use /etc/php/mods-available instead??? -touch /var/lib/php/modules/${PHP_VERSION}/registry/blackfire - -# Install Blackfire CLI tool -mkdir -p /tmp/blackfire -curl -A "Docker" -L https://blackfire.io/api/v1/releases/client/linux_static/amd64 | tar zxp -C /tmp/blackfire -mv /tmp/blackfire/blackfire /usr/bin/blackfire -rm -Rf /tmp/blackfire + +if [[ -z "${BLACKFIRE_VERSION}" ]]; then + echo "Blackfire version is not set in the environment variables. Exiting!" + exit 1 +fi + +# Let's make it flexible: for those who want to be safe, the image will be built with v1 +# Now if you build the image yourself, you can build it with v2, this way everyone gets happy :) + +mkdir /tmp/blackfire + +# Todo: Maybe version the Blackfire version by environment variable? :) + +if [ $BLACKFIRE_VERSION == "1" ]; then + echo "Installing Blackfire version 1" + # curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v2/releases/probe/php/linux/amd64/$version + curl -o /tmp/blackfire/blackfire.so "https://packages.blackfire.io/binaries/blackfire-php/1.78.0/blackfire-php-$CONTAINER_OS"_"$CONTAINER_ARCH-php-$version.so" + mv /tmp/blackfire/blackfire.so $(php -r "echo ini_get('extension_dir');")/blackfire.so + echo "extension=blackfire.so" > /etc/php/${PHP_VERSION}/mods-available/blackfire.ini + + # Adding this in the list of Ubuntu extensions because we use that list as a base for the modules list. + # TODO: question: cannot we use /etc/php/mods-available instead??? + touch /var/lib/php/modules/${PHP_VERSION}/registry/blackfire + # curl -A "Docker" -L https://blackfire.io/api/v1/releases/client/linux_static/amd64 | tar zxp -C /tmp/blackfire + curl -o /tmp/blackfire/blackfire "https://packages.blackfire.io/binaries/blackfire-agent/1.50.0/blackfire-cli-$CONTAINER_OS"_"$CONTAINER_ARCH" + chmod +x /tmp/blackfire/blackfire + mv /tmp/blackfire/blackfire /usr/bin/blackfire + rm -Rf /tmp/blackfire + +elif [ $BLACKFIRE_VERSION == "2" ]; then + echo "Installing Blackfire version 2..." + + curl -o /tmp/blackfire/blackfire.so "https://packages.blackfire.io/binaries/blackfire-php/1.78.0/blackfire-php-$CONTAINER_OS"_"$CONTAINER_ARCH-php-$version.so" + mv /tmp/blackfire/blackfire.so $(php -r "echo ini_get('extension_dir');")/blackfire.so + echo "extension=blackfire.so" > /etc/php/${PHP_VERSION}/mods-available/blackfire.ini + touch /var/lib/php/modules/${PHP_VERSION}/registry/blackfire + curl -o /tmp/blackfire-cli.tar.gz "https://packages.blackfire.io/binaries/blackfire/2.10.0/blackfire-"$CONTAINER_OS"_"$CONTAINER_ARCH".tar.gz" + tar zxpf /tmp/blackfire-cli.tar.gz -C /tmp/blackfire + mv /tmp/blackfire/blackfire /usr/bin/blackfire + + rm -Rf /tmp/blackfire +else + echo "Blackfire version in environment variable is either empty or the value is invalid" + echo "Value: '$BLACKFIRE_VERSION'" + exit 1 +fi \ No newline at end of file diff --git a/utils/Dockerfile.blueprint b/utils/Dockerfile.blueprint index 81cbcb08..ebd35a30 100644 --- a/utils/Dockerfile.blueprint +++ b/utils/Dockerfile.blueprint @@ -1,10 +1,19 @@ {{- $variant := .Orbit.variant -}} +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-{{ $variant }} + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-{{ $variant }} + +ONBUILD ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + +ENV CONTAINER_OS=${TARGETOS} +ENV CONTAINER_ARCH=${TARGETARCH} + LABEL authors="Julien Neuhart , David Négrier " diff --git a/utils/Dockerfile.node.blueprint b/utils/Dockerfile.node.blueprint index 548c3fc5..59631cb0 100644 --- a/utils/Dockerfile.node.blueprint +++ b/utils/Dockerfile.node.blueprint @@ -1,14 +1,19 @@ {{- $variant := .Orbit.variant -}} {{- $node_version := .Orbit.node_version -}} +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-{{ $variant }} +ARG TARGETOS TARGETARCH BLACKFIRE_VERSION + +FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-{{ $variant }} LABEL authors="Julien Neuhart , David Négrier " USER root +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} + RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ curl -sL https://deb.nodesource.com/setup_{{ $node_version }}.x | bash - && \ diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index a0c41581..4ebde389 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -1,6 +1,7 @@ {{- $variant := .Orbit.variant -}} +# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM ubuntu:20.04 +FROM --platform=$BUILDPLATFORM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -12,6 +13,11 @@ ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION ENV PHP_VERSION=$PHP_VERSION +ONBUILD ARG TARGETOS TARGETARCH +ARG TARGETOS TARGETARCH + +ARG BLACKFIRE_VERSION=1 +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} # |-------------------------------------------------------------------------- # | Main PHP extensions @@ -304,7 +310,7 @@ ENV IMAGE_VARIANT={{$variant}} # Add Tini (to be able to stop the container with ctrl-c). # See: https://github.com/krallin/tini ENV TINI_VERSION v0.16.1 -ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini +ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini RUN chmod +x /tini COPY utils/generate_cron.php /usr/local/bin/generate_cron.php @@ -380,14 +386,14 @@ ONBUILD RUN sudo -E PHP_EXTENSIONS="$PHP_EXTENSIONS" /usr/local/bin/install_sele # | Supercronic is a drop-in replacement for cron (for containers). # | ENV SUPERCRONIC_OPTIONS= - ONBUILD ARG INSTALL_CRON ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ - SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-linux-amd64 \ - && SUPERCRONIC=supercronic-linux-amd64 \ + SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-$TARGETOS-$TARGETARCH \ + && echo $SUPERCRONIC_URL \ + && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ && curl -fsSLO "$SUPERCRONIC_URL" \ - && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ +# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ && chmod +x "$SUPERCRONIC" \ && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 7bb2b790..ee651d9b 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -644,6 +644,24 @@ You can then test your changes using the `build-and-test.sh` command: PHP_VERSION={{ $image.php_version }} BRANCH=v4 VARIANT=apache ./build-and-test.sh ``` +### Additional environment in build-and-test.sh + +- BUILDER: either build or buildx depending on your configuration. +Defaults to build +- BLACKFIRE_VERSION: defaults to 1. You can install v2 if you're feeling adventurous by specifying 2 as a value. +- PLATFORM: Docker will default to your architecture for building images. However, if you have QEMU set up in your machine, you can try building for another architecture like linux/arm64 + +Only one platform at a time is supported during the build and test script execution. + +*APPLE SILICON CONSIDERATIONS* + +Filesystem management works differently in Apple's macOS, so, if you're trying to build a linux/arm64 image (that is best suited for using in a M1/M2 Mac than a linux/amd64 one), there's a high likelihood that the filesystem user and permissions with busybox are going to fail. + +Although the test fails, when using the built image, everything works as expected. + +Run a virtual machine with linux/arm64 with Docker installed in it and, then, build and test the image. You'll take advantage of the ARM speed and will also be able to run the unit tests properly. + + ### Adding additional images To add a new version (php, node, apache, ...), please edit the following files : From 9fc87b9350386ab3ba9b2ed1ad398671f9aa0da3 Mon Sep 17 00:00:00 2001 From: Sander Marechal Date: Tue, 19 Jul 2022 09:23:46 +0200 Subject: [PATCH 099/162] Use NPM 6.x on Node 10.x in blueprint --- Dockerfile.apache.node10 | 2 +- Dockerfile.cli.node10 | 2 +- Dockerfile.fpm.node10 | 2 +- utils/Dockerfile.node.blueprint | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile.apache.node10 b/Dockerfile.apache.node10 index 123362b2..67a82912 100644 --- a/Dockerfile.apache.node10 +++ b/Dockerfile.apache.node10 @@ -16,7 +16,7 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ + npm install -g npm@^6.14 && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.cli.node10 b/Dockerfile.cli.node10 index 21948881..070e5c4b 100644 --- a/Dockerfile.cli.node10 +++ b/Dockerfile.cli.node10 @@ -16,7 +16,7 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ + npm install -g npm@^6.14 && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.fpm.node10 b/Dockerfile.fpm.node10 index 1942fe0e..4739ffac 100644 --- a/Dockerfile.fpm.node10 +++ b/Dockerfile.fpm.node10 @@ -16,7 +16,7 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ + npm install -g npm@^6.14 && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/utils/Dockerfile.node.blueprint b/utils/Dockerfile.node.blueprint index 548c3fc5..ca1c6cab 100644 --- a/utils/Dockerfile.node.blueprint +++ b/utils/Dockerfile.node.blueprint @@ -18,7 +18,7 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ + npm install -g npm{{ if eq "10" $node_version }}@^6.14{{end}} && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* From 0e39d90ac39d237387ac32443648d41cab471ea4 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Thu, 21 Jul 2022 18:34:35 +0200 Subject: [PATCH 100/162] Add github-ci for multiarch build --- .github/workflows/workflow.yml | 10 +++---- Dockerfile.apache | 8 +++--- Dockerfile.apache.node10 | 5 ++-- Dockerfile.apache.node12 | 5 ++-- Dockerfile.apache.node14 | 5 ++-- Dockerfile.apache.node16 | 5 ++-- Dockerfile.cli | 8 +++--- Dockerfile.cli.node10 | 5 ++-- Dockerfile.cli.node12 | 5 ++-- Dockerfile.cli.node14 | 5 ++-- Dockerfile.cli.node16 | 5 ++-- Dockerfile.fpm | 8 +++--- Dockerfile.fpm.node10 | 5 ++-- Dockerfile.fpm.node12 | 5 ++-- Dockerfile.fpm.node14 | 5 ++-- Dockerfile.fpm.node16 | 5 ++-- Dockerfile.slim.apache | 10 ++++--- Dockerfile.slim.cli | 10 ++++--- Dockerfile.slim.fpm | 10 ++++--- Makefile | 14 +++++----- README.md | 1 + build-and-test.sh | 20 +++++++------- build-load-or-push.sh | 47 +++++++++++++++++++++++++++++++++ orbit.yml | 6 ++++- utils/Dockerfile.blueprint | 8 +++--- utils/Dockerfile.node.blueprint | 5 ++-- utils/Dockerfile.slim.blueprint | 10 ++++--- 27 files changed, 151 insertions(+), 84 deletions(-) create mode 100755 build-load-or-push.sh diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 1cfd04e2..18cb7220 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -54,7 +54,8 @@ jobs: - uses: actions/checkout@v1 - name: Build and test run: | - PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4" VARIANT="${{ matrix.variant }}" ./build-and-test.sh + PLATFORM="linux/amd64" PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4" VARIANT="${{ matrix.variant }}" ./build-and-test.sh + PUSH=0 PLATFORM="linux/arm64" PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4" VARIANT="${{ matrix.variant }}" ./build-load-or-push.sh docker images | grep thecodingmachine/php - name: Login to DockerHub # Merge ~ push. @@ -68,12 +69,7 @@ jobs: if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} run: | BRANCH_VARIANT=`echo "${{ matrix.variant }}" | sed 's/\./-/g'` - docker push thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} - docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT} - docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node10 - docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node12 - docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 - docker push thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node16 + PUSH=1 PLATFORM="linux/amd64,linux/arm64" PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4" VARIANT="${{ matrix.variant }}" ./build-load-or-push.sh # Let's also tag PHP patch releases PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` echo "Tagging patch release $PHP_PATCH_VERSION" diff --git a/Dockerfile.apache b/Dockerfile.apache index e25b23f6..83698d60 100644 --- a/Dockerfile.apache +++ b/Dockerfile.apache @@ -1,5 +1,4 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION @@ -7,11 +6,12 @@ ARG GLOBAL_VERSION FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache -ONBUILD ARG TARGETOS TARGETARCH BLACKFIRE_VERSION -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - +ONBUILD ARG TARGETOS +ONBUILD ARG TARGETARCH +ONBUILD ARG BLACKFIRE_VERSION=1 ENV CONTAINER_OS=${TARGETOS} ENV CONTAINER_ARCH=${TARGETARCH} +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} LABEL authors="Julien Neuhart , David Négrier " diff --git a/Dockerfile.apache.node10 b/Dockerfile.apache.node10 index 38dab181..f015d0c9 100644 --- a/Dockerfile.apache.node10 +++ b/Dockerfile.apache.node10 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache diff --git a/Dockerfile.apache.node12 b/Dockerfile.apache.node12 index bd93797a..d76f0ff5 100644 --- a/Dockerfile.apache.node12 +++ b/Dockerfile.apache.node12 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache diff --git a/Dockerfile.apache.node14 b/Dockerfile.apache.node14 index 0a26db59..b53ef199 100644 --- a/Dockerfile.apache.node14 +++ b/Dockerfile.apache.node14 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache diff --git a/Dockerfile.apache.node16 b/Dockerfile.apache.node16 index 7942d4e1..c6bdf42e 100644 --- a/Dockerfile.apache.node16 +++ b/Dockerfile.apache.node16 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache diff --git a/Dockerfile.cli b/Dockerfile.cli index 36bbb4af..f06b9fe7 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -1,5 +1,4 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION @@ -7,11 +6,12 @@ ARG GLOBAL_VERSION FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli -ONBUILD ARG TARGETOS TARGETARCH BLACKFIRE_VERSION -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - +ONBUILD ARG TARGETOS +ONBUILD ARG TARGETARCH +ONBUILD ARG BLACKFIRE_VERSION=1 ENV CONTAINER_OS=${TARGETOS} ENV CONTAINER_ARCH=${TARGETARCH} +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} LABEL authors="Julien Neuhart , David Négrier " diff --git a/Dockerfile.cli.node10 b/Dockerfile.cli.node10 index 56102f00..7b959a33 100644 --- a/Dockerfile.cli.node10 +++ b/Dockerfile.cli.node10 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli diff --git a/Dockerfile.cli.node12 b/Dockerfile.cli.node12 index c1cc8fda..6af91d1a 100644 --- a/Dockerfile.cli.node12 +++ b/Dockerfile.cli.node12 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli diff --git a/Dockerfile.cli.node14 b/Dockerfile.cli.node14 index 3324f9ef..9eb02fd4 100644 --- a/Dockerfile.cli.node14 +++ b/Dockerfile.cli.node14 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli diff --git a/Dockerfile.cli.node16 b/Dockerfile.cli.node16 index a72f5c00..5d54cc8a 100644 --- a/Dockerfile.cli.node16 +++ b/Dockerfile.cli.node16 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli diff --git a/Dockerfile.fpm b/Dockerfile.fpm index cde8446c..0a45e8eb 100644 --- a/Dockerfile.fpm +++ b/Dockerfile.fpm @@ -1,5 +1,4 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION @@ -7,11 +6,12 @@ ARG GLOBAL_VERSION FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm -ONBUILD ARG TARGETOS TARGETARCH BLACKFIRE_VERSION -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - +ONBUILD ARG TARGETOS +ONBUILD ARG TARGETARCH +ONBUILD ARG BLACKFIRE_VERSION=1 ENV CONTAINER_OS=${TARGETOS} ENV CONTAINER_ARCH=${TARGETARCH} +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} LABEL authors="Julien Neuhart , David Négrier " diff --git a/Dockerfile.fpm.node10 b/Dockerfile.fpm.node10 index ef81bf21..72a233a8 100644 --- a/Dockerfile.fpm.node10 +++ b/Dockerfile.fpm.node10 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm diff --git a/Dockerfile.fpm.node12 b/Dockerfile.fpm.node12 index b8b74c06..5ca1c19c 100644 --- a/Dockerfile.fpm.node12 +++ b/Dockerfile.fpm.node12 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm diff --git a/Dockerfile.fpm.node14 b/Dockerfile.fpm.node14 index 5adce739..be926770 100644 --- a/Dockerfile.fpm.node14 +++ b/Dockerfile.fpm.node14 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm diff --git a/Dockerfile.fpm.node16 b/Dockerfile.fpm.node16 index 8cbdd15e..afd3f4a4 100644 --- a/Dockerfile.fpm.node16 +++ b/Dockerfile.fpm.node16 @@ -1,8 +1,9 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index a27caffc..1c53f6e4 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -1,5 +1,4 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - FROM --platform=$BUILDPLATFORM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -12,10 +11,13 @@ ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION ENV PHP_VERSION=$PHP_VERSION -ONBUILD ARG TARGETOS TARGETARCH -ARG TARGETOS TARGETARCH - +ONBUILD ARG TARGETOS +ONBUILD ARG TARGETARCH +ONBUILD ARG BLACKFIRE_VERSION=1 ARG BLACKFIRE_VERSION=1 +ARG TARGETOS +ARG TARGETARCH + ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} # |-------------------------------------------------------------------------- diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 2cdc18a8..8fc19387 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -1,5 +1,4 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - FROM --platform=$BUILDPLATFORM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -12,10 +11,13 @@ ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION ENV PHP_VERSION=$PHP_VERSION -ONBUILD ARG TARGETOS TARGETARCH -ARG TARGETOS TARGETARCH - +ONBUILD ARG TARGETOS +ONBUILD ARG TARGETARCH +ONBUILD ARG BLACKFIRE_VERSION=1 ARG BLACKFIRE_VERSION=1 +ARG TARGETOS +ARG TARGETARCH + ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} # |-------------------------------------------------------------------------- diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 8b05039c..5ab9ffca 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -1,5 +1,4 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) - FROM --platform=$BUILDPLATFORM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " @@ -12,10 +11,13 @@ ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION ENV PHP_VERSION=$PHP_VERSION -ONBUILD ARG TARGETOS TARGETARCH -ARG TARGETOS TARGETARCH - +ONBUILD ARG TARGETOS +ONBUILD ARG TARGETARCH +ONBUILD ARG BLACKFIRE_VERSION=1 ARG BLACKFIRE_VERSION=1 +ARG TARGETOS +ARG TARGETARCH + ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} # |-------------------------------------------------------------------------- diff --git a/Makefile b/Makefile index d349e98a..e3cef1d5 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,6 @@ blueprint: ## Generate all blueprints file @if ! type orbit >/dev/null 2>&1; then echo "Missing orbit dependency, please install from https://github.com/gulien/orbit/"; exit 1; fi orbit run generate - @sed -i '1i\# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)' Dockerfile.* - @sed -i '1i\[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md)' README.md test-latest: test-8.0 ## Test the latest build only @@ -10,20 +8,20 @@ _test-prerequisites: blueprint docker pull ubuntu:20.04 test-quick: _test-prerequisites ## Test 8.0 and 8.1 quickly - PHP_VERSION=8.0 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) - PHP_VERSION=8.1 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PLATFORM=$$(uname -p) PHP_VERSION=8.0 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PLATFORM=$$(uname -p) PHP_VERSION=8.1 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) notify-send -u critical "Tests passed with success" test-8.1: _test-prerequisites ## Test php8.1 build only docker pull ubuntu:20.04 - PHP_VERSION=8.1 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) - PHP_VERSION=8.1 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PLATFORM=$$(uname -p) PHP_VERSION=8.1 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PLATFORM=$$(uname -p) PHP_VERSION=8.1 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) notify-send -u critical "Tests passed with success" test-8.0: _test-prerequisites ## Test php8.0 build only docker pull ubuntu:20.04 - PHP_VERSION=8.0 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) - PHP_VERSION=8.0 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PLATFORM=$$(uname -p) PHP_VERSION=8.0 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) + PLATFORM=$$(uname -p) PHP_VERSION=8.0 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) notify-send -u critical "Tests passed with success" clean: ## Clean dangles image after build diff --git a/README.md b/README.md index 8150080c..c7d6b7c7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md) ![Docker PHP Images GitHub workflow](https://github.com/thecodingmachine/docker-images-php/workflows/Docker%20PHP%20Images%20GitHub%20workflow/badge.svg) # General purpose PHP images for Docker diff --git a/build-and-test.sh b/build-and-test.sh index c7102d11..89c55c5c 100755 --- a/build-and-test.sh +++ b/build-and-test.sh @@ -10,7 +10,7 @@ failure() { trap 'failure ${LINENO} "$BASH_COMMAND"' ERR # Use either docker's 'build' command or 'buildx ' -export BUILDTOOL="build" +export BUILDTOOL="buildx build --load --platform=${PLATFORM:-linux/amd64}" # Let's replace the "." by a "-" with some bash magic export BRANCH_VARIANT="${VARIANT//./-}" @@ -20,10 +20,10 @@ export DOCKER_BUILDKIT=1 # Force use of BuildKit export BUILDKIT_STEP_LOG_MAX_SIZE=10485760 # output log limit fixed to 10MiB # Let's build the "slim" image. -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" --build-arg BLACKFIRE_VERSION="${BLACKFIRE_VERSION}" -f "Dockerfile.slim.${VARIANT}" --platform=${PLATFORM} . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" --build-arg BLACKFIRE_VERSION="${BLACKFIRE_VERSION}" -f "Dockerfile.slim.${VARIANT}" . # Let's check that the extensions can be built using the "ONBUILD" statement -docker $BUILDTOOL -t test/slim_onbuild --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" --platform=${PLATFORM} tests/slim_onbuild +docker $BUILDTOOL -t test/slim_onbuild --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/slim_onbuild # This should run ok (the sudo disable environment variables but call to composer proxy does not trigger PHP ini file regeneration) docker run --rm test/slim_onbuild php -m | grep sockets docker run --rm test/slim_onbuild php -m | grep pdo_pgsql @@ -31,7 +31,7 @@ docker run --rm test/slim_onbuild php -m | grep pdo_sqlite docker rmi test/slim_onbuild # Let's check that the extensions are available for composer using "ARG PHP_EXTENSIONS" statement: -docker $BUILDTOOL -t test/slim_onbuild_composer --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" --platform=${PLATFORM} tests/slim_onbuild_composer +docker $BUILDTOOL -t test/slim_onbuild_composer --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/slim_onbuild_composer docker rmi test/slim_onbuild_composer echo "Running post-build unit tests" @@ -167,7 +167,7 @@ RESULT="$(docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${ ################################# # Let's build the "fat" image ################################# -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}" --platform=${PLATFORM} . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}" . # Let's check that the crons are actually sending logs in the right place RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo 'foobar')" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=foobar' | head -n1)" @@ -208,7 +208,7 @@ if [[ "${PHP_VERSION}" != "8.1" ]]; then docker run --rm -e PHP_EXTENSION_BLACKFIRE=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -m | grep blackfire fi # Let's check that the extensions are enabled when composer is run -docker $BUILDTOOL -t test/composer_with_gd --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" --platform=${PLATFORM} tests/composer +docker $BUILDTOOL -t test/composer_with_gd --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/composer # This should run ok (the sudo disables environment variables but call to composer proxy does not trigger PHP ini file regeneration) docker run --rm test/composer_with_gd sudo composer update @@ -217,9 +217,9 @@ docker rmi test/composer_with_gd ################################# # Let's build the "node" images ################################# -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node10" --platform=${PLATFORM} . -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node12" --platform=${PLATFORM} . -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node14" --platform=${PLATFORM} . -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node16" --platform=${PLATFORM} . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node10" . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node12" . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node14" . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node16" . echo "Tests passed with success" diff --git a/build-load-or-push.sh b/build-load-or-push.sh new file mode 100755 index 00000000..6b8b6c8d --- /dev/null +++ b/build-load-or-push.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +set -eE -o functrace + +failure() { + local lineno=$1 + local msg=$2 + echo "Failed at $lineno: $msg" +} +trap 'failure ${LINENO} "$BASH_COMMAND"' ERR + +# Use either docker's 'build' command or 'buildx ' +if [ "${PUSH}" == "1" ]; then + export BUILDTOOL="buildx build --push --platform=${PLATFORM:-linux/amd64}" +else + export BUILDTOOL="buildx build --load --platform=${PLATFORM:-linux/amd64}" +fi + +# Let's replace the "." by a "-" with some bash magic +export BRANCH_VARIANT="${VARIANT//./-}" + +# Build with BuildKit https://docs.docker.com/develop/develop-images/build_enhancements/ +export DOCKER_BUILDKIT=1 # Force use of BuildKit +export BUILDKIT_STEP_LOG_MAX_SIZE=10485760 # output log limit fixed to 10MiB + +# Let's build the "slim" image. +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" --build-arg BLACKFIRE_VERSION="${BLACKFIRE_VERSION}" -f "Dockerfile.slim.${VARIANT}" . + +################################# +# Let's build the "fat" image +################################# +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}" . + +################################# +# Let's build the "node" images +################################# +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node10" . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node12" . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node14" . +docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node16" . + + +if [ "${PUSH}" == "1" ]; then + echo "Build and push with success" +else + echo "Build and load with success" +fi diff --git a/orbit.yml b/orbit.yml index 0af583a3..a47ab9b5 100644 --- a/orbit.yml +++ b/orbit.yml @@ -37,4 +37,8 @@ tasks: - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node12 -p "variant,fpm;node_version,12" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node14 -p "variant,fpm;node_version,14" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node16 -p "variant,fpm;node_version,16" - - orbit generate -f utils/README.blueprint.md -o README.md \ No newline at end of file + - orbit generate -f utils/README.blueprint.md -o README.md + - |- + sed -i '1i\# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)' Dockerfile.* + - |- + sed -i '1i\[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md)' README.md \ No newline at end of file diff --git a/utils/Dockerfile.blueprint b/utils/Dockerfile.blueprint index ebd35a30..418b462a 100644 --- a/utils/Dockerfile.blueprint +++ b/utils/Dockerfile.blueprint @@ -1,5 +1,4 @@ {{- $variant := .Orbit.variant -}} -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 @@ -8,11 +7,12 @@ ARG GLOBAL_VERSION FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-{{ $variant }} -ONBUILD ARG TARGETOS TARGETARCH BLACKFIRE_VERSION -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - +ONBUILD ARG TARGETOS +ONBUILD ARG TARGETARCH +ONBUILD ARG BLACKFIRE_VERSION=1 ENV CONTAINER_OS=${TARGETOS} ENV CONTAINER_ARCH=${TARGETARCH} +ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} LABEL authors="Julien Neuhart , David Négrier " diff --git a/utils/Dockerfile.node.blueprint b/utils/Dockerfile.node.blueprint index 59631cb0..44b80133 100644 --- a/utils/Dockerfile.node.blueprint +++ b/utils/Dockerfile.node.blueprint @@ -1,10 +1,11 @@ {{- $variant := .Orbit.variant -}} {{- $node_version := .Orbit.node_version -}} -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG PHP_VERSION ARG GLOBAL_VERSION -ARG TARGETOS TARGETARCH BLACKFIRE_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-{{ $variant }} diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 4ebde389..f295bd12 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -1,5 +1,4 @@ {{- $variant := .Orbit.variant -}} -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) FROM --platform=$BUILDPLATFORM ubuntu:20.04 @@ -13,10 +12,13 @@ ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION ENV PHP_VERSION=$PHP_VERSION -ONBUILD ARG TARGETOS TARGETARCH -ARG TARGETOS TARGETARCH - +ONBUILD ARG TARGETOS +ONBUILD ARG TARGETARCH +ONBUILD ARG BLACKFIRE_VERSION=1 ARG BLACKFIRE_VERSION=1 +ARG TARGETOS +ARG TARGETARCH + ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} # |-------------------------------------------------------------------------- From 9df685fa35f05a570d434471a8b1145a23d6792b Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Fri, 22 Jul 2022 14:37:04 +0200 Subject: [PATCH 101/162] Separate build and test stages (with bake) --- .github/workflows/workflow.yml | 70 +- Makefile | 33 +- build-load-or-push.sh | 47 -- docker-bake.hcl | 1135 ++++++++++++++++++++++++++++ images.yml | 1 - orbit-images.yml | 1 + orbit-payload.yml | 2 +- orbit.yml | 7 +- build-and-test.sh => test-image.sh | 2 +- utils/docker-bake.blueprint.hcl | 83 ++ 10 files changed, 1261 insertions(+), 120 deletions(-) delete mode 100755 build-load-or-push.sh create mode 100644 docker-bake.hcl delete mode 100644 images.yml create mode 100644 orbit-images.yml rename build-and-test.sh => test-image.sh (98%) mode change 100755 => 100644 create mode 100644 utils/docker-bake.blueprint.hcl diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 18cb7220..2b4571e7 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -14,49 +14,23 @@ jobs: build_test_maybe_release: strategy: matrix: - include: - - variant: 'cli' - php_version: '8.1' - - variant: 'apache' - php_version: '8.1' - - variant: 'fpm' - php_version: '8.1' - - variant: 'cli' - php_version: '8.0' - - variant: 'apache' - php_version: '8.0' - - variant: 'fpm' - php_version: '8.0' - - variant: 'cli' - php_version: '7.4' - - variant: 'apache' - php_version: '7.4' - - variant: 'fpm' - php_version: '7.4' - - variant: 'cli' - php_version: '7.3' - - variant: 'apache' - php_version: '7.3' - - variant: 'fpm' - php_version: '7.3' - - variant: 'cli' - php_version: '7.2' - - variant: 'apache' - php_version: '7.2' - - variant: 'fpm' - php_version: '7.2' + variant: ['cli','apache','fpm'] + php_version: ['8.1','8.0','7.4', '7.3','7.2'] runs-on: ubuntu-latest steps: - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - - uses: actions/checkout@v1 - - name: Build and test + - name: Checkout + uses: actions/checkout@v1 + - name: Build run: | - PLATFORM="linux/amd64" PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4" VARIANT="${{ matrix.variant }}" ./build-and-test.sh - PUSH=0 PLATFORM="linux/arm64" PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4" VARIANT="${{ matrix.variant }}" ./build-load-or-push.sh - docker images | grep thecodingmachine/php + PHP_VERSION="${{ matrix.php_version }}" + docker buildx bake --load \ + --platform=${PLATFORM:$(uname -p)}} \ + php${PHP_VERSION//.}-${{ matrix.variant }} + docker images --filter=reference=thecodingmachine/php - name: Login to DockerHub # Merge ~ push. if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} @@ -68,20 +42,10 @@ jobs: # Merge ~ push. if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} run: | - BRANCH_VARIANT=`echo "${{ matrix.variant }}" | sed 's/\./-/g'` - PUSH=1 PLATFORM="linux/amd64,linux/arm64" PHP_VERSION="${{ matrix.php_version }}" BRANCH="v4" VARIANT="${{ matrix.variant }}" ./build-load-or-push.sh - # Let's also tag PHP patch releases - PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` - echo "Tagging patch release $PHP_PATCH_VERSION" - docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-slim-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} - docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT} thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} - docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node10 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 - docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node12 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 - docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node14 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 - docker tag thecodingmachine/php:${{ matrix.php_version }}-v4-${BRANCH_VARIANT}-node16 thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node16 - docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-slim-${BRANCH_VARIANT} - docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT} - docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node10 - docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node12 - docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node14 - docker push thecodingmachine/php:${PHP_PATCH_VERSION}-v4-${BRANCH_VARIANT}-node16 + PHP_VERSION="${{ matrix.php_version }}" + PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` + TAG=${PHP_PATCH_VERSION} docker buildx bake --push \ + --cache-from=type=local,src=/tmp/buildx-cache \ + --cache-to=type=local,dest=/tmp/buildx-cache \ + --platform=${PLATFORM:$(uname -p)}} \ + php${PHP_VERSION//.}-${{ matrix.variant }} diff --git a/Makefile b/Makefile index e3cef1d5..4ee6ee63 100644 --- a/Makefile +++ b/Makefile @@ -2,26 +2,29 @@ blueprint: ## Generate all blueprints file @if ! type orbit >/dev/null 2>&1; then echo "Missing orbit dependency, please install from https://github.com/gulien/orbit/"; exit 1; fi orbit run generate -test-latest: test-8.0 ## Test the latest build only +test-latest: test-8.1 ## Test the latest build only _test-prerequisites: blueprint docker pull ubuntu:20.04 -test-quick: _test-prerequisites ## Test 8.0 and 8.1 quickly - PLATFORM=$$(uname -p) PHP_VERSION=8.0 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) - PLATFORM=$$(uname -p) PHP_VERSION=8.1 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) - notify-send -u critical "Tests passed with success" +test-quick: ## Test 8.0 and 8.1 quickly + PHP_VERSION=8.0 VARIANT=cli $(MAKE) _test-version + PHP_VERSION=8.1 VARIANT=cli $(MAKE) _test-version -test-8.1: _test-prerequisites ## Test php8.1 build only - docker pull ubuntu:20.04 - PLATFORM=$$(uname -p) PHP_VERSION=8.1 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) - PLATFORM=$$(uname -p) PHP_VERSION=8.1 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) - notify-send -u critical "Tests passed with success" +test-8.1: ## Test php8.1 build only + PHP_VERSION=8.1 VARIANT=cli $(MAKE) _test-version + PHP_VERSION=8.1 VARIANT=apache $(MAKE) _test-version -test-8.0: _test-prerequisites ## Test php8.0 build only - docker pull ubuntu:20.04 - PLATFORM=$$(uname -p) PHP_VERSION=8.0 BRANCH=v4 VARIANT=cli ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) - PLATFORM=$$(uname -p) PHP_VERSION=8.0 BRANCH=v4 VARIANT=apache ./build-and-test.sh || (notify-send -u critical "Tests failed" && exit 1) - notify-send -u critical "Tests passed with success" +test-8.0: ## Test php8.0 build only + PHP_VERSION=8.0 VARIANT=cli $(MAKE) _test-version + PHP_VERSION=8.0 VARIANT=apache $(MAKE) _test-version + +_test-version: _test-prerequisites ## Test php build for VERSION="" and VARIANT="" + docker buildx bake --load \ + --platform=${PLATFORM:$(uname -p)}} \ + php${VERSION//.}-cli + PHP_VERSION="$(VERSION)" BRANCH=v4 VARIANT=cli ./test-image.sh || (notify-send -u critical "Tests failed ($(VERSION)-$(VARIANT))" && exit 1) + notify-send -u critical "Tests passed with success ($(VERSION)-$(VARIANT))" clean: ## Clean dangles image after build + rm -rf /tmp/buildx-cache \ No newline at end of file diff --git a/build-load-or-push.sh b/build-load-or-push.sh deleted file mode 100755 index 6b8b6c8d..00000000 --- a/build-load-or-push.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash - -set -eE -o functrace - -failure() { - local lineno=$1 - local msg=$2 - echo "Failed at $lineno: $msg" -} -trap 'failure ${LINENO} "$BASH_COMMAND"' ERR - -# Use either docker's 'build' command or 'buildx ' -if [ "${PUSH}" == "1" ]; then - export BUILDTOOL="buildx build --push --platform=${PLATFORM:-linux/amd64}" -else - export BUILDTOOL="buildx build --load --platform=${PLATFORM:-linux/amd64}" -fi - -# Let's replace the "." by a "-" with some bash magic -export BRANCH_VARIANT="${VARIANT//./-}" - -# Build with BuildKit https://docs.docker.com/develop/develop-images/build_enhancements/ -export DOCKER_BUILDKIT=1 # Force use of BuildKit -export BUILDKIT_STEP_LOG_MAX_SIZE=10485760 # output log limit fixed to 10MiB - -# Let's build the "slim" image. -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" --build-arg BLACKFIRE_VERSION="${BLACKFIRE_VERSION}" -f "Dockerfile.slim.${VARIANT}" . - -################################# -# Let's build the "fat" image -################################# -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}" . - -################################# -# Let's build the "node" images -################################# -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node10" . -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node12" . -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node14" . -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node16" . - - -if [ "${PUSH}" == "1" ]; then - echo "Build and push with success" -else - echo "Build and load with success" -fi diff --git a/docker-bake.hcl b/docker-bake.hcl new file mode 100644 index 00000000..0f3ecd2e --- /dev/null +++ b/docker-bake.hcl @@ -0,0 +1,1135 @@ +# DO NOT EDIT THIS FILE Make yours changes in /utils/docker-bake.blueprint.hcl + +group "default" { + targets = [ + + "php81", + "php80", + "php74", + "php73", + "php72", + ] +} + +group "php81" { + targets = [ + "php81-slim-apache", + "php81-apache", + "php81-apache-node16","php81-apache-node14","php81-apache-node12","php81-apache-node10","php81-slim-fpm", + "php81-fpm", + "php81-fpm-node16","php81-fpm-node14","php81-fpm-node12","php81-fpm-node10","php81-slim-cli", + "php81-cli", + "php81-cli-node16","php81-cli-node14","php81-cli-node12","php81-cli-node10", + ] +} +group "php80" { + targets = [ + "php80-slim-apache", + "php80-apache", + "php80-apache-node16","php80-apache-node14","php80-apache-node12","php80-apache-node10","php80-slim-fpm", + "php80-fpm", + "php80-fpm-node16","php80-fpm-node14","php80-fpm-node12","php80-fpm-node10","php80-slim-cli", + "php80-cli", + "php80-cli-node16","php80-cli-node14","php80-cli-node12","php80-cli-node10", + ] +} +group "php74" { + targets = [ + "php74-slim-apache", + "php74-apache", + "php74-apache-node16","php74-apache-node14","php74-apache-node12","php74-apache-node10","php74-slim-fpm", + "php74-fpm", + "php74-fpm-node16","php74-fpm-node14","php74-fpm-node12","php74-fpm-node10","php74-slim-cli", + "php74-cli", + "php74-cli-node16","php74-cli-node14","php74-cli-node12","php74-cli-node10", + ] +} +group "php73" { + targets = [ + "php73-slim-apache", + "php73-apache", + "php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10","php73-slim-fpm", + "php73-fpm", + "php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10","php73-slim-cli", + "php73-cli", + "php73-cli-node16","php73-cli-node14","php73-cli-node12","php73-cli-node10", + ] +} +group "php72" { + targets = [ + "php72-slim-apache", + "php72-apache", + "php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10","php72-slim-fpm", + "php72-fpm", + "php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10","php72-slim-cli", + "php72-cli", + "php72-cli-node16","php72-cli-node14","php72-cli-node12","php72-cli-node10", + ] +} + +variable "REPO" {default = "thecodingmachine/php"} +variable "TAG" {default = "latest"} +variable "GLOBAL_VERSION" {default = "v4"} + +function "tag" { + params = [PHP_VERSION, VARIANT] + result = [ + "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", + notequal("latest",TAG) ? "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}:${TAG}": "", + ] +} + +target "default" { + context = "." + args = { + GLOBAL_VERSION = "${GLOBAL_VERSION}" + } + platforms = [ + "linux/amd64", + "linux/arm64" + ] + pull = true + #output = ["customDir"] + #output = ["type=tar,dest=myimage.tar"] + output = ["type=docker"] # load in local docker + #output = ["type=registry"] # push + #output = ["type=image"] # push also ? +} + + +########################### +## PHP 8.1 +########################### +# thecodingmachine/php:8.1-v4-slim-apache +target "php81-slim-apache" { + inherits = ["default"] + tags = tag("8.1", "slim-apache") + dockerfile = "Dockerfile.slim.apache" + args = { + PHP_VERSION = "8.1" + VARIANT = "apache" + } +} + +# thecodingmachine/php:8.1-v4-apache +target "php81-apache" { + inherits = ["default"] + tags = tag("8.1", "apache") + dockerfile = "Dockerfile.apache" + args = { + PHP_VERSION = "8.1" + VARIANT = "apache" + } +} + +# thecodingmachine/php:8.1-v4-apache-node16 +target "php81-apache-node16" { + inherits = ["default"] + tags = tag("8.1", "apache-node16") + dockerfile = "Dockerfile.apache.node16" + args = { + PHP_VERSION = "8.1" + VARIANT = "apache-node16" + } +} + +# thecodingmachine/php:8.1-v4-apache-node14 +target "php81-apache-node14" { + inherits = ["default"] + tags = tag("8.1", "apache-node14") + dockerfile = "Dockerfile.apache.node14" + args = { + PHP_VERSION = "8.1" + VARIANT = "apache-node14" + } +} + +# thecodingmachine/php:8.1-v4-apache-node12 +target "php81-apache-node12" { + inherits = ["default"] + tags = tag("8.1", "apache-node12") + dockerfile = "Dockerfile.apache.node12" + args = { + PHP_VERSION = "8.1" + VARIANT = "apache-node12" + } +} + +# thecodingmachine/php:8.1-v4-apache-node10 +target "php81-apache-node10" { + inherits = ["default"] + tags = tag("8.1", "apache-node10") + dockerfile = "Dockerfile.apache.node10" + args = { + PHP_VERSION = "8.1" + VARIANT = "apache-node10" + } +} + +########################### +## PHP 8.1 +########################### +# thecodingmachine/php:8.1-v4-slim-fpm +target "php81-slim-fpm" { + inherits = ["default"] + tags = tag("8.1", "slim-fpm") + dockerfile = "Dockerfile.slim.fpm" + args = { + PHP_VERSION = "8.1" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:8.1-v4-fpm +target "php81-fpm" { + inherits = ["default"] + tags = tag("8.1", "fpm") + dockerfile = "Dockerfile.fpm" + args = { + PHP_VERSION = "8.1" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:8.1-v4-fpm-node16 +target "php81-fpm-node16" { + inherits = ["default"] + tags = tag("8.1", "fpm-node16") + dockerfile = "Dockerfile.fpm.node16" + args = { + PHP_VERSION = "8.1" + VARIANT = "fpm-node16" + } +} + +# thecodingmachine/php:8.1-v4-fpm-node14 +target "php81-fpm-node14" { + inherits = ["default"] + tags = tag("8.1", "fpm-node14") + dockerfile = "Dockerfile.fpm.node14" + args = { + PHP_VERSION = "8.1" + VARIANT = "fpm-node14" + } +} + +# thecodingmachine/php:8.1-v4-fpm-node12 +target "php81-fpm-node12" { + inherits = ["default"] + tags = tag("8.1", "fpm-node12") + dockerfile = "Dockerfile.fpm.node12" + args = { + PHP_VERSION = "8.1" + VARIANT = "fpm-node12" + } +} + +# thecodingmachine/php:8.1-v4-fpm-node10 +target "php81-fpm-node10" { + inherits = ["default"] + tags = tag("8.1", "fpm-node10") + dockerfile = "Dockerfile.fpm.node10" + args = { + PHP_VERSION = "8.1" + VARIANT = "fpm-node10" + } +} + +########################### +## PHP 8.1 +########################### +# thecodingmachine/php:8.1-v4-slim-cli +target "php81-slim-cli" { + inherits = ["default"] + tags = tag("8.1", "slim-cli") + dockerfile = "Dockerfile.slim.cli" + args = { + PHP_VERSION = "8.1" + VARIANT = "cli" + } +} + +# thecodingmachine/php:8.1-v4-cli +target "php81-cli" { + inherits = ["default"] + tags = tag("8.1", "cli") + dockerfile = "Dockerfile.cli" + args = { + PHP_VERSION = "8.1" + VARIANT = "cli" + } +} + +# thecodingmachine/php:8.1-v4-cli-node16 +target "php81-cli-node16" { + inherits = ["default"] + tags = tag("8.1", "cli-node16") + dockerfile = "Dockerfile.cli.node16" + args = { + PHP_VERSION = "8.1" + VARIANT = "cli-node16" + } +} + +# thecodingmachine/php:8.1-v4-cli-node14 +target "php81-cli-node14" { + inherits = ["default"] + tags = tag("8.1", "cli-node14") + dockerfile = "Dockerfile.cli.node14" + args = { + PHP_VERSION = "8.1" + VARIANT = "cli-node14" + } +} + +# thecodingmachine/php:8.1-v4-cli-node12 +target "php81-cli-node12" { + inherits = ["default"] + tags = tag("8.1", "cli-node12") + dockerfile = "Dockerfile.cli.node12" + args = { + PHP_VERSION = "8.1" + VARIANT = "cli-node12" + } +} + +# thecodingmachine/php:8.1-v4-cli-node10 +target "php81-cli-node10" { + inherits = ["default"] + tags = tag("8.1", "cli-node10") + dockerfile = "Dockerfile.cli.node10" + args = { + PHP_VERSION = "8.1" + VARIANT = "cli-node10" + } +} + +########################### +## PHP 8.0 +########################### +# thecodingmachine/php:8.0-v4-slim-apache +target "php80-slim-apache" { + inherits = ["default"] + tags = tag("8.0", "slim-apache") + dockerfile = "Dockerfile.slim.apache" + args = { + PHP_VERSION = "8.0" + VARIANT = "apache" + } +} + +# thecodingmachine/php:8.0-v4-apache +target "php80-apache" { + inherits = ["default"] + tags = tag("8.0", "apache") + dockerfile = "Dockerfile.apache" + args = { + PHP_VERSION = "8.0" + VARIANT = "apache" + } +} + +# thecodingmachine/php:8.0-v4-apache-node16 +target "php80-apache-node16" { + inherits = ["default"] + tags = tag("8.0", "apache-node16") + dockerfile = "Dockerfile.apache.node16" + args = { + PHP_VERSION = "8.0" + VARIANT = "apache-node16" + } +} + +# thecodingmachine/php:8.0-v4-apache-node14 +target "php80-apache-node14" { + inherits = ["default"] + tags = tag("8.0", "apache-node14") + dockerfile = "Dockerfile.apache.node14" + args = { + PHP_VERSION = "8.0" + VARIANT = "apache-node14" + } +} + +# thecodingmachine/php:8.0-v4-apache-node12 +target "php80-apache-node12" { + inherits = ["default"] + tags = tag("8.0", "apache-node12") + dockerfile = "Dockerfile.apache.node12" + args = { + PHP_VERSION = "8.0" + VARIANT = "apache-node12" + } +} + +# thecodingmachine/php:8.0-v4-apache-node10 +target "php80-apache-node10" { + inherits = ["default"] + tags = tag("8.0", "apache-node10") + dockerfile = "Dockerfile.apache.node10" + args = { + PHP_VERSION = "8.0" + VARIANT = "apache-node10" + } +} + +########################### +## PHP 8.0 +########################### +# thecodingmachine/php:8.0-v4-slim-fpm +target "php80-slim-fpm" { + inherits = ["default"] + tags = tag("8.0", "slim-fpm") + dockerfile = "Dockerfile.slim.fpm" + args = { + PHP_VERSION = "8.0" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:8.0-v4-fpm +target "php80-fpm" { + inherits = ["default"] + tags = tag("8.0", "fpm") + dockerfile = "Dockerfile.fpm" + args = { + PHP_VERSION = "8.0" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:8.0-v4-fpm-node16 +target "php80-fpm-node16" { + inherits = ["default"] + tags = tag("8.0", "fpm-node16") + dockerfile = "Dockerfile.fpm.node16" + args = { + PHP_VERSION = "8.0" + VARIANT = "fpm-node16" + } +} + +# thecodingmachine/php:8.0-v4-fpm-node14 +target "php80-fpm-node14" { + inherits = ["default"] + tags = tag("8.0", "fpm-node14") + dockerfile = "Dockerfile.fpm.node14" + args = { + PHP_VERSION = "8.0" + VARIANT = "fpm-node14" + } +} + +# thecodingmachine/php:8.0-v4-fpm-node12 +target "php80-fpm-node12" { + inherits = ["default"] + tags = tag("8.0", "fpm-node12") + dockerfile = "Dockerfile.fpm.node12" + args = { + PHP_VERSION = "8.0" + VARIANT = "fpm-node12" + } +} + +# thecodingmachine/php:8.0-v4-fpm-node10 +target "php80-fpm-node10" { + inherits = ["default"] + tags = tag("8.0", "fpm-node10") + dockerfile = "Dockerfile.fpm.node10" + args = { + PHP_VERSION = "8.0" + VARIANT = "fpm-node10" + } +} + +########################### +## PHP 8.0 +########################### +# thecodingmachine/php:8.0-v4-slim-cli +target "php80-slim-cli" { + inherits = ["default"] + tags = tag("8.0", "slim-cli") + dockerfile = "Dockerfile.slim.cli" + args = { + PHP_VERSION = "8.0" + VARIANT = "cli" + } +} + +# thecodingmachine/php:8.0-v4-cli +target "php80-cli" { + inherits = ["default"] + tags = tag("8.0", "cli") + dockerfile = "Dockerfile.cli" + args = { + PHP_VERSION = "8.0" + VARIANT = "cli" + } +} + +# thecodingmachine/php:8.0-v4-cli-node16 +target "php80-cli-node16" { + inherits = ["default"] + tags = tag("8.0", "cli-node16") + dockerfile = "Dockerfile.cli.node16" + args = { + PHP_VERSION = "8.0" + VARIANT = "cli-node16" + } +} + +# thecodingmachine/php:8.0-v4-cli-node14 +target "php80-cli-node14" { + inherits = ["default"] + tags = tag("8.0", "cli-node14") + dockerfile = "Dockerfile.cli.node14" + args = { + PHP_VERSION = "8.0" + VARIANT = "cli-node14" + } +} + +# thecodingmachine/php:8.0-v4-cli-node12 +target "php80-cli-node12" { + inherits = ["default"] + tags = tag("8.0", "cli-node12") + dockerfile = "Dockerfile.cli.node12" + args = { + PHP_VERSION = "8.0" + VARIANT = "cli-node12" + } +} + +# thecodingmachine/php:8.0-v4-cli-node10 +target "php80-cli-node10" { + inherits = ["default"] + tags = tag("8.0", "cli-node10") + dockerfile = "Dockerfile.cli.node10" + args = { + PHP_VERSION = "8.0" + VARIANT = "cli-node10" + } +} + +########################### +## PHP 7.4 +########################### +# thecodingmachine/php:7.4-v4-slim-apache +target "php74-slim-apache" { + inherits = ["default"] + tags = tag("7.4", "slim-apache") + dockerfile = "Dockerfile.slim.apache" + args = { + PHP_VERSION = "7.4" + VARIANT = "apache" + } +} + +# thecodingmachine/php:7.4-v4-apache +target "php74-apache" { + inherits = ["default"] + tags = tag("7.4", "apache") + dockerfile = "Dockerfile.apache" + args = { + PHP_VERSION = "7.4" + VARIANT = "apache" + } +} + +# thecodingmachine/php:7.4-v4-apache-node16 +target "php74-apache-node16" { + inherits = ["default"] + tags = tag("7.4", "apache-node16") + dockerfile = "Dockerfile.apache.node16" + args = { + PHP_VERSION = "7.4" + VARIANT = "apache-node16" + } +} + +# thecodingmachine/php:7.4-v4-apache-node14 +target "php74-apache-node14" { + inherits = ["default"] + tags = tag("7.4", "apache-node14") + dockerfile = "Dockerfile.apache.node14" + args = { + PHP_VERSION = "7.4" + VARIANT = "apache-node14" + } +} + +# thecodingmachine/php:7.4-v4-apache-node12 +target "php74-apache-node12" { + inherits = ["default"] + tags = tag("7.4", "apache-node12") + dockerfile = "Dockerfile.apache.node12" + args = { + PHP_VERSION = "7.4" + VARIANT = "apache-node12" + } +} + +# thecodingmachine/php:7.4-v4-apache-node10 +target "php74-apache-node10" { + inherits = ["default"] + tags = tag("7.4", "apache-node10") + dockerfile = "Dockerfile.apache.node10" + args = { + PHP_VERSION = "7.4" + VARIANT = "apache-node10" + } +} + +########################### +## PHP 7.4 +########################### +# thecodingmachine/php:7.4-v4-slim-fpm +target "php74-slim-fpm" { + inherits = ["default"] + tags = tag("7.4", "slim-fpm") + dockerfile = "Dockerfile.slim.fpm" + args = { + PHP_VERSION = "7.4" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:7.4-v4-fpm +target "php74-fpm" { + inherits = ["default"] + tags = tag("7.4", "fpm") + dockerfile = "Dockerfile.fpm" + args = { + PHP_VERSION = "7.4" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:7.4-v4-fpm-node16 +target "php74-fpm-node16" { + inherits = ["default"] + tags = tag("7.4", "fpm-node16") + dockerfile = "Dockerfile.fpm.node16" + args = { + PHP_VERSION = "7.4" + VARIANT = "fpm-node16" + } +} + +# thecodingmachine/php:7.4-v4-fpm-node14 +target "php74-fpm-node14" { + inherits = ["default"] + tags = tag("7.4", "fpm-node14") + dockerfile = "Dockerfile.fpm.node14" + args = { + PHP_VERSION = "7.4" + VARIANT = "fpm-node14" + } +} + +# thecodingmachine/php:7.4-v4-fpm-node12 +target "php74-fpm-node12" { + inherits = ["default"] + tags = tag("7.4", "fpm-node12") + dockerfile = "Dockerfile.fpm.node12" + args = { + PHP_VERSION = "7.4" + VARIANT = "fpm-node12" + } +} + +# thecodingmachine/php:7.4-v4-fpm-node10 +target "php74-fpm-node10" { + inherits = ["default"] + tags = tag("7.4", "fpm-node10") + dockerfile = "Dockerfile.fpm.node10" + args = { + PHP_VERSION = "7.4" + VARIANT = "fpm-node10" + } +} + +########################### +## PHP 7.4 +########################### +# thecodingmachine/php:7.4-v4-slim-cli +target "php74-slim-cli" { + inherits = ["default"] + tags = tag("7.4", "slim-cli") + dockerfile = "Dockerfile.slim.cli" + args = { + PHP_VERSION = "7.4" + VARIANT = "cli" + } +} + +# thecodingmachine/php:7.4-v4-cli +target "php74-cli" { + inherits = ["default"] + tags = tag("7.4", "cli") + dockerfile = "Dockerfile.cli" + args = { + PHP_VERSION = "7.4" + VARIANT = "cli" + } +} + +# thecodingmachine/php:7.4-v4-cli-node16 +target "php74-cli-node16" { + inherits = ["default"] + tags = tag("7.4", "cli-node16") + dockerfile = "Dockerfile.cli.node16" + args = { + PHP_VERSION = "7.4" + VARIANT = "cli-node16" + } +} + +# thecodingmachine/php:7.4-v4-cli-node14 +target "php74-cli-node14" { + inherits = ["default"] + tags = tag("7.4", "cli-node14") + dockerfile = "Dockerfile.cli.node14" + args = { + PHP_VERSION = "7.4" + VARIANT = "cli-node14" + } +} + +# thecodingmachine/php:7.4-v4-cli-node12 +target "php74-cli-node12" { + inherits = ["default"] + tags = tag("7.4", "cli-node12") + dockerfile = "Dockerfile.cli.node12" + args = { + PHP_VERSION = "7.4" + VARIANT = "cli-node12" + } +} + +# thecodingmachine/php:7.4-v4-cli-node10 +target "php74-cli-node10" { + inherits = ["default"] + tags = tag("7.4", "cli-node10") + dockerfile = "Dockerfile.cli.node10" + args = { + PHP_VERSION = "7.4" + VARIANT = "cli-node10" + } +} + +########################### +## PHP 7.3 +########################### +# thecodingmachine/php:7.3-v4-slim-apache +target "php73-slim-apache" { + inherits = ["default"] + tags = tag("7.3", "slim-apache") + dockerfile = "Dockerfile.slim.apache" + args = { + PHP_VERSION = "7.3" + VARIANT = "apache" + } +} + +# thecodingmachine/php:7.3-v4-apache +target "php73-apache" { + inherits = ["default"] + tags = tag("7.3", "apache") + dockerfile = "Dockerfile.apache" + args = { + PHP_VERSION = "7.3" + VARIANT = "apache" + } +} + +# thecodingmachine/php:7.3-v4-apache-node16 +target "php73-apache-node16" { + inherits = ["default"] + tags = tag("7.3", "apache-node16") + dockerfile = "Dockerfile.apache.node16" + args = { + PHP_VERSION = "7.3" + VARIANT = "apache-node16" + } +} + +# thecodingmachine/php:7.3-v4-apache-node14 +target "php73-apache-node14" { + inherits = ["default"] + tags = tag("7.3", "apache-node14") + dockerfile = "Dockerfile.apache.node14" + args = { + PHP_VERSION = "7.3" + VARIANT = "apache-node14" + } +} + +# thecodingmachine/php:7.3-v4-apache-node12 +target "php73-apache-node12" { + inherits = ["default"] + tags = tag("7.3", "apache-node12") + dockerfile = "Dockerfile.apache.node12" + args = { + PHP_VERSION = "7.3" + VARIANT = "apache-node12" + } +} + +# thecodingmachine/php:7.3-v4-apache-node10 +target "php73-apache-node10" { + inherits = ["default"] + tags = tag("7.3", "apache-node10") + dockerfile = "Dockerfile.apache.node10" + args = { + PHP_VERSION = "7.3" + VARIANT = "apache-node10" + } +} + +########################### +## PHP 7.3 +########################### +# thecodingmachine/php:7.3-v4-slim-fpm +target "php73-slim-fpm" { + inherits = ["default"] + tags = tag("7.3", "slim-fpm") + dockerfile = "Dockerfile.slim.fpm" + args = { + PHP_VERSION = "7.3" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:7.3-v4-fpm +target "php73-fpm" { + inherits = ["default"] + tags = tag("7.3", "fpm") + dockerfile = "Dockerfile.fpm" + args = { + PHP_VERSION = "7.3" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:7.3-v4-fpm-node16 +target "php73-fpm-node16" { + inherits = ["default"] + tags = tag("7.3", "fpm-node16") + dockerfile = "Dockerfile.fpm.node16" + args = { + PHP_VERSION = "7.3" + VARIANT = "fpm-node16" + } +} + +# thecodingmachine/php:7.3-v4-fpm-node14 +target "php73-fpm-node14" { + inherits = ["default"] + tags = tag("7.3", "fpm-node14") + dockerfile = "Dockerfile.fpm.node14" + args = { + PHP_VERSION = "7.3" + VARIANT = "fpm-node14" + } +} + +# thecodingmachine/php:7.3-v4-fpm-node12 +target "php73-fpm-node12" { + inherits = ["default"] + tags = tag("7.3", "fpm-node12") + dockerfile = "Dockerfile.fpm.node12" + args = { + PHP_VERSION = "7.3" + VARIANT = "fpm-node12" + } +} + +# thecodingmachine/php:7.3-v4-fpm-node10 +target "php73-fpm-node10" { + inherits = ["default"] + tags = tag("7.3", "fpm-node10") + dockerfile = "Dockerfile.fpm.node10" + args = { + PHP_VERSION = "7.3" + VARIANT = "fpm-node10" + } +} + +########################### +## PHP 7.3 +########################### +# thecodingmachine/php:7.3-v4-slim-cli +target "php73-slim-cli" { + inherits = ["default"] + tags = tag("7.3", "slim-cli") + dockerfile = "Dockerfile.slim.cli" + args = { + PHP_VERSION = "7.3" + VARIANT = "cli" + } +} + +# thecodingmachine/php:7.3-v4-cli +target "php73-cli" { + inherits = ["default"] + tags = tag("7.3", "cli") + dockerfile = "Dockerfile.cli" + args = { + PHP_VERSION = "7.3" + VARIANT = "cli" + } +} + +# thecodingmachine/php:7.3-v4-cli-node16 +target "php73-cli-node16" { + inherits = ["default"] + tags = tag("7.3", "cli-node16") + dockerfile = "Dockerfile.cli.node16" + args = { + PHP_VERSION = "7.3" + VARIANT = "cli-node16" + } +} + +# thecodingmachine/php:7.3-v4-cli-node14 +target "php73-cli-node14" { + inherits = ["default"] + tags = tag("7.3", "cli-node14") + dockerfile = "Dockerfile.cli.node14" + args = { + PHP_VERSION = "7.3" + VARIANT = "cli-node14" + } +} + +# thecodingmachine/php:7.3-v4-cli-node12 +target "php73-cli-node12" { + inherits = ["default"] + tags = tag("7.3", "cli-node12") + dockerfile = "Dockerfile.cli.node12" + args = { + PHP_VERSION = "7.3" + VARIANT = "cli-node12" + } +} + +# thecodingmachine/php:7.3-v4-cli-node10 +target "php73-cli-node10" { + inherits = ["default"] + tags = tag("7.3", "cli-node10") + dockerfile = "Dockerfile.cli.node10" + args = { + PHP_VERSION = "7.3" + VARIANT = "cli-node10" + } +} + +########################### +## PHP 7.2 +########################### +# thecodingmachine/php:7.2-v4-slim-apache +target "php72-slim-apache" { + inherits = ["default"] + tags = tag("7.2", "slim-apache") + dockerfile = "Dockerfile.slim.apache" + args = { + PHP_VERSION = "7.2" + VARIANT = "apache" + } +} + +# thecodingmachine/php:7.2-v4-apache +target "php72-apache" { + inherits = ["default"] + tags = tag("7.2", "apache") + dockerfile = "Dockerfile.apache" + args = { + PHP_VERSION = "7.2" + VARIANT = "apache" + } +} + +# thecodingmachine/php:7.2-v4-apache-node16 +target "php72-apache-node16" { + inherits = ["default"] + tags = tag("7.2", "apache-node16") + dockerfile = "Dockerfile.apache.node16" + args = { + PHP_VERSION = "7.2" + VARIANT = "apache-node16" + } +} + +# thecodingmachine/php:7.2-v4-apache-node14 +target "php72-apache-node14" { + inherits = ["default"] + tags = tag("7.2", "apache-node14") + dockerfile = "Dockerfile.apache.node14" + args = { + PHP_VERSION = "7.2" + VARIANT = "apache-node14" + } +} + +# thecodingmachine/php:7.2-v4-apache-node12 +target "php72-apache-node12" { + inherits = ["default"] + tags = tag("7.2", "apache-node12") + dockerfile = "Dockerfile.apache.node12" + args = { + PHP_VERSION = "7.2" + VARIANT = "apache-node12" + } +} + +# thecodingmachine/php:7.2-v4-apache-node10 +target "php72-apache-node10" { + inherits = ["default"] + tags = tag("7.2", "apache-node10") + dockerfile = "Dockerfile.apache.node10" + args = { + PHP_VERSION = "7.2" + VARIANT = "apache-node10" + } +} + +########################### +## PHP 7.2 +########################### +# thecodingmachine/php:7.2-v4-slim-fpm +target "php72-slim-fpm" { + inherits = ["default"] + tags = tag("7.2", "slim-fpm") + dockerfile = "Dockerfile.slim.fpm" + args = { + PHP_VERSION = "7.2" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:7.2-v4-fpm +target "php72-fpm" { + inherits = ["default"] + tags = tag("7.2", "fpm") + dockerfile = "Dockerfile.fpm" + args = { + PHP_VERSION = "7.2" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:7.2-v4-fpm-node16 +target "php72-fpm-node16" { + inherits = ["default"] + tags = tag("7.2", "fpm-node16") + dockerfile = "Dockerfile.fpm.node16" + args = { + PHP_VERSION = "7.2" + VARIANT = "fpm-node16" + } +} + +# thecodingmachine/php:7.2-v4-fpm-node14 +target "php72-fpm-node14" { + inherits = ["default"] + tags = tag("7.2", "fpm-node14") + dockerfile = "Dockerfile.fpm.node14" + args = { + PHP_VERSION = "7.2" + VARIANT = "fpm-node14" + } +} + +# thecodingmachine/php:7.2-v4-fpm-node12 +target "php72-fpm-node12" { + inherits = ["default"] + tags = tag("7.2", "fpm-node12") + dockerfile = "Dockerfile.fpm.node12" + args = { + PHP_VERSION = "7.2" + VARIANT = "fpm-node12" + } +} + +# thecodingmachine/php:7.2-v4-fpm-node10 +target "php72-fpm-node10" { + inherits = ["default"] + tags = tag("7.2", "fpm-node10") + dockerfile = "Dockerfile.fpm.node10" + args = { + PHP_VERSION = "7.2" + VARIANT = "fpm-node10" + } +} + +########################### +## PHP 7.2 +########################### +# thecodingmachine/php:7.2-v4-slim-cli +target "php72-slim-cli" { + inherits = ["default"] + tags = tag("7.2", "slim-cli") + dockerfile = "Dockerfile.slim.cli" + args = { + PHP_VERSION = "7.2" + VARIANT = "cli" + } +} + +# thecodingmachine/php:7.2-v4-cli +target "php72-cli" { + inherits = ["default"] + tags = tag("7.2", "cli") + dockerfile = "Dockerfile.cli" + args = { + PHP_VERSION = "7.2" + VARIANT = "cli" + } +} + +# thecodingmachine/php:7.2-v4-cli-node16 +target "php72-cli-node16" { + inherits = ["default"] + tags = tag("7.2", "cli-node16") + dockerfile = "Dockerfile.cli.node16" + args = { + PHP_VERSION = "7.2" + VARIANT = "cli-node16" + } +} + +# thecodingmachine/php:7.2-v4-cli-node14 +target "php72-cli-node14" { + inherits = ["default"] + tags = tag("7.2", "cli-node14") + dockerfile = "Dockerfile.cli.node14" + args = { + PHP_VERSION = "7.2" + VARIANT = "cli-node14" + } +} + +# thecodingmachine/php:7.2-v4-cli-node12 +target "php72-cli-node12" { + inherits = ["default"] + tags = tag("7.2", "cli-node12") + dockerfile = "Dockerfile.cli.node12" + args = { + PHP_VERSION = "7.2" + VARIANT = "cli-node12" + } +} + +# thecodingmachine/php:7.2-v4-cli-node10 +target "php72-cli-node10" { + inherits = ["default"] + tags = tag("7.2", "cli-node10") + dockerfile = "Dockerfile.cli.node10" + args = { + PHP_VERSION = "7.2" + VARIANT = "cli-node10" + } +} + + diff --git a/images.yml b/images.yml deleted file mode 100644 index e9826d24..00000000 --- a/images.yml +++ /dev/null @@ -1 +0,0 @@ -php_version: "8.0" diff --git a/orbit-images.yml b/orbit-images.yml new file mode 100644 index 00000000..44e9f54c --- /dev/null +++ b/orbit-images.yml @@ -0,0 +1 @@ +php_version: "8.1" diff --git a/orbit-payload.yml b/orbit-payload.yml index a9564dcb..c051f31e 100644 --- a/orbit-payload.yml +++ b/orbit-payload.yml @@ -1,4 +1,4 @@ payload: - key: Images - value: images.yml \ No newline at end of file + value: orbit-images.yml \ No newline at end of file diff --git a/orbit.yml b/orbit.yml index a47ab9b5..d55d70f8 100644 --- a/orbit.yml +++ b/orbit.yml @@ -37,8 +37,11 @@ tasks: - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node12 -p "variant,fpm;node_version,12" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node14 -p "variant,fpm;node_version,14" - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node16 -p "variant,fpm;node_version,16" - - orbit generate -f utils/README.blueprint.md -o README.md - |- sed -i '1i\# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)' Dockerfile.* + - orbit generate -f utils/README.blueprint.md -o README.md + - |- + sed -i '1i\[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md)' README.md + - orbit generate -f utils/docker-bake.blueprint.hcl -o docker-bake.hcl - |- - sed -i '1i\[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md)' README.md \ No newline at end of file + sed -i '1i\# DO NOT EDIT THIS FILE Make yours changes in /utils/docker-bake.blueprint.hcl' docker-bake.hcl \ No newline at end of file diff --git a/build-and-test.sh b/test-image.sh old mode 100755 new mode 100644 similarity index 98% rename from build-and-test.sh rename to test-image.sh index 89c55c5c..3ca75d30 --- a/build-and-test.sh +++ b/test-image.sh @@ -10,7 +10,7 @@ failure() { trap 'failure ${LINENO} "$BASH_COMMAND"' ERR # Use either docker's 'build' command or 'buildx ' -export BUILDTOOL="buildx build --load --platform=${PLATFORM:-linux/amd64}" +export BUILDTOOL="buildx build --load --cache-from=type=local,src=/tmp/buildx-cache --cache-to=type=local,dest=/tmp/buildx-cache --platform=${PLATFORM:$(uname -p)}}" # Let's replace the "." by a "-" with some bash magic export BRANCH_VARIANT="${VARIANT//./-}" diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl new file mode 100644 index 00000000..7f3f07e4 --- /dev/null +++ b/utils/docker-bake.blueprint.hcl @@ -0,0 +1,83 @@ +{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "16" "14" "12" "10" }} +group "default" { + targets = [ + {{range $phpV := $versions}} + "php{{ $phpV | replace "." "" }}",{{end}} + ] +} +{{range $phpV := $versions}} +group "php{{ $phpV | replace "." "" }}" { + targets = [ + {{range $variant := $variants}}"php{{ $phpV | replace "." "" }}-slim-{{ $variant }}", + "php{{ $phpV | replace "." "" }}-{{ $variant }}", + {{range $nodeV := $nodeVersions}}"php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}",{{end}}{{end}} + ] +}{{end}} + +variable "REPO" {default = "thecodingmachine/php"} +variable "TAG" {default = "latest"} +variable "GLOBAL_VERSION" {default = "v4"} + +function "tag" { + params = [PHP_VERSION, VARIANT] + result = [ + "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", + notequal("latest",TAG) ? "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}:${TAG}": "", + ] +} + +target "default" { + context = "." + args = { + GLOBAL_VERSION = "${GLOBAL_VERSION}" + } + platforms = [ + "linux/amd64", + "linux/arm64" + ] + pull = true + #output = ["customDir"] + #output = ["type=tar,dest=myimage.tar"] + output = ["type=docker"] # load in local docker + #output = ["type=registry"] # push + #output = ["type=image"] # push also ? +} + +{{range $phpV := $versions}}{{range $variant := $variants}} +########################### +## PHP {{ $phpV }} +########################### +# thecodingmachine/php:{{ $phpV }}-v4-slim-{{ $variant }} +target "php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" { + inherits = ["default"] + tags = tag("{{ $phpV }}", "slim-{{ $variant }}") + dockerfile = "Dockerfile.slim.{{ $variant }}" + args = { + PHP_VERSION = "{{ $phpV }}" + VARIANT = "{{ $variant }}" + } +} + +# thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }} +target "php{{ $phpV | replace "." "" }}-{{ $variant }}" { + inherits = ["default"] + tags = tag("{{ $phpV }}", "{{ $variant }}") + dockerfile = "Dockerfile.{{ $variant }}" + args = { + PHP_VERSION = "{{ $phpV }}" + VARIANT = "{{ $variant }}" + } +} +{{range $nodeV := $nodeVersions}} +# thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }}-node{{ $nodeV }} +target "php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}" { + inherits = ["default"] + tags = tag("{{ $phpV }}", "{{ $variant }}-node{{ $nodeV }}") + dockerfile = "Dockerfile.{{ $variant }}.node{{ $nodeV }}" + args = { + PHP_VERSION = "{{ $phpV }}" + VARIANT = "{{ $variant }}-node{{ $nodeV }}" + } +} +{{ end }}{{ end }}{{ end }} + From 676dabb20b62402fca74fee979bc836ed7742dc7 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Fri, 22 Jul 2022 15:55:59 +0200 Subject: [PATCH 102/162] Separate build and test stages (with bake) --- .github/workflows/workflow.yml | 9 ++---- Makefile | 18 ++++++------ README.md | 52 +++++++++++++++++----------------- test-image.sh | 2 +- 4 files changed, 40 insertions(+), 41 deletions(-) mode change 100644 => 100755 test-image.sh diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 2b4571e7..4ae4ca46 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -24,11 +24,11 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Checkout uses: actions/checkout@v1 - - name: Build + - name: Build locally run: | PHP_VERSION="${{ matrix.php_version }}" docker buildx bake --load \ - --platform=${PLATFORM:$(uname -p)}} \ + --set "*.platform=$(uname -p)" \ php${PHP_VERSION//.}-${{ matrix.variant }} docker images --filter=reference=thecodingmachine/php - name: Login to DockerHub @@ -38,14 +38,11 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Release + - name: Build and push to repository # Merge ~ push. if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} run: | PHP_VERSION="${{ matrix.php_version }}" PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` TAG=${PHP_PATCH_VERSION} docker buildx bake --push \ - --cache-from=type=local,src=/tmp/buildx-cache \ - --cache-to=type=local,dest=/tmp/buildx-cache \ - --platform=${PLATFORM:$(uname -p)}} \ php${PHP_VERSION//.}-${{ matrix.variant }} diff --git a/Makefile b/Makefile index 4ee6ee63..71f16929 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +SHELL=/bin/bash + blueprint: ## Generate all blueprints file @if ! type orbit >/dev/null 2>&1; then echo "Missing orbit dependency, please install from https://github.com/gulien/orbit/"; exit 1; fi orbit run generate @@ -8,21 +10,21 @@ _test-prerequisites: blueprint docker pull ubuntu:20.04 test-quick: ## Test 8.0 and 8.1 quickly - PHP_VERSION=8.0 VARIANT=cli $(MAKE) _test-version - PHP_VERSION=8.1 VARIANT=cli $(MAKE) _test-version + VERSION=8.0 VARIANT=cli $(MAKE) _test-version + VERSION=8.1 VARIANT=cli $(MAKE) _test-version test-8.1: ## Test php8.1 build only - PHP_VERSION=8.1 VARIANT=cli $(MAKE) _test-version - PHP_VERSION=8.1 VARIANT=apache $(MAKE) _test-version + VERSION=8.1 VARIANT=cli $(MAKE) _test-version + VERSION=8.1 VARIANT=apache $(MAKE) _test-version test-8.0: ## Test php8.0 build only - PHP_VERSION=8.0 VARIANT=cli $(MAKE) _test-version - PHP_VERSION=8.0 VARIANT=apache $(MAKE) _test-version + VERSION=8.0 VARIANT=cli $(MAKE) _test-version + VERSION=8.0 VARIANT=apache $(MAKE) _test-version _test-version: _test-prerequisites ## Test php build for VERSION="" and VARIANT="" docker buildx bake --load \ - --platform=${PLATFORM:$(uname -p)}} \ - php${VERSION//.}-cli + --set "*.platform=$$(uname -p)" \ + php$${VERSION//.}-cli PHP_VERSION="$(VERSION)" BRANCH=v4 VARIANT=cli ./test-image.sh || (notify-send -u critical "Tests failed ($(VERSION)-$(VARIANT))" && exit 1) notify-send -u critical "Tests passed with success ($(VERSION)-$(VARIANT))" diff --git a/README.md b/README.md index c7d6b7c7..4301d32d 100644 --- a/README.md +++ b/README.md @@ -132,26 +132,26 @@ These images are based on the [official PHP image](https://hub.docker.com/_/php/ Example with CLI: ```bash -$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:8.0-v4-cli php your-script.php +$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:8.1-v4-cli php your-script.php ``` Example with Apache: ```bash -$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:8.0-v4-apache +$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:8.1-v4-apache ``` Example with PHP-FPM: ```bash -$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:8.0-v4-fpm +$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:8.1-v4-fpm ``` Example with Apache + Node 14.x in a Dockerfile: **Dockerfile** ```Dockerfile -FROM thecodingmachine/php:8.0-v4-apache-node14 +FROM thecodingmachine/php:8.1-v4-apache-node14 COPY src/ /var/www/html/ RUN composer install @@ -165,7 +165,7 @@ This image comes with 2 "types": the *slim* and the **fat** image. These extensions are enabled by default in slim image: `calendar` `ctype` `curl` `date` `dom` `exif` `fileinfo` `filter` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `openssl` `pcntl` `pcre` `PDO` `Phar` `posix` `readline` `shmop` `Reflection` `session` `shmop` `SimpleXML` `sockets` `sodium` `SPL` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `xml` `xmlreader` `xmlwriter` `xsl` `zip` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.0-v4-slim-cli php -m` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.1-v4-slim-cli php -m` The slim image provides a simple way to install the other extensions. You would typically use the "slim" image in a `Dockerfile` when building your own custom image. @@ -179,7 +179,7 @@ Below is a list of extensions available in this image: **Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.0-v4-cli php -m` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.1-v4-cli php -m` **Note**: @@ -199,7 +199,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:8.0-v4-apache-node16 + image: thecodingmachine/php:8.1-v4-apache-node16 environment: # Enable the PostgreSQL extension PHP_EXTENSION_PGSQL: 1 @@ -219,7 +219,7 @@ If you are using the slim image, you can automatically compile the extensions us ```Dockerfile ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql redis soap" -FROM thecodingmachine/php:8.0-v4-slim-apache +FROM thecodingmachine/php:8.1-v4-slim-apache # The build will automatically trigger the download and compilation # of the extensions (thanks to a ONBUILD hook in the slim image) ``` @@ -235,7 +235,7 @@ first FROM): # The PHP_EXTENSIONS ARG will apply to the "slim" image ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql soap" -FROM thecodingmachine/php:8.0-v4-apache-node16 AS builder +FROM thecodingmachine/php:8.1-v4-apache-node16 AS builder COPY --chown=docker:docker sources/web . RUN composer install &&\ @@ -256,7 +256,7 @@ not contain Node, and contains only required extensions. ## Setting parameters in php.ini -By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-8.0/php.ini-development) file that comes with PHP. +By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-8.1/php.ini-development) file that comes with PHP. You can use the production `php.ini` file using the `TEMPLATE_PHP_INI` environment variable: @@ -271,7 +271,7 @@ You can override parameters in `php.ini` using the PHP_INI_XXX environment varia version: '3' services: my_app: - image: thecodingmachine/php:8.0-v4-apache-node16 + image: thecodingmachine/php:8.1-v4-apache-node16 environment: # set the parameter memory_limit=1g PHP_INI_MEMORY_LIMIT: 1g @@ -333,7 +333,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:8.0-v4-apache-node16 + image: thecodingmachine/php:8.1-v4-apache-node16 environment: # Enable the DAV extension for Apache APACHE_EXTENSION_DAV: 1 @@ -351,7 +351,7 @@ APACHE_EXTENSIONS="dav ssl" **Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `brotli` `buffer` `cache` `cache_disk` `cache_socache` `cern_meta` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `http2` `ident` `imagemap` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `md` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php8.0 (depend of your active version)` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_hcheck` `proxy_html` `proxy_http` `proxy_http2` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_redis` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.0-v4-slim-apache a2enmod` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.1-v4-slim-apache a2enmod` ## Debugging @@ -386,7 +386,7 @@ If you use the *slim* images, you can install a NodeJS version with a simple ARG ```Dockerfile ARG NODE_VERSION=14 -FROM thecodingmachine/php:8.0-v4-slim-apache +FROM thecodingmachine/php:8.1-v4-slim-apache # The build will automatically trigger the download of Node 14 # (thanks to a ONBUILD hook in the slim image) ``` @@ -439,7 +439,7 @@ This can be done easily: **Dockerfile** ```Dockerfile -FROM thecodingmachine/php:8.0-v4-apache +FROM thecodingmachine/php:8.1-v4-apache # ... @@ -483,7 +483,7 @@ a single argument before the "FROM" clause in your Dockerfile: ```Dockerfile ARG INSTALL_CRON=1 -FROM thecodingmachine/php:8.0-v4-slim-apache +FROM thecodingmachine/php:8.1-v4-slim-apache # The build triggers automatically the installation of Cron ``` @@ -536,12 +536,12 @@ If such a file is mounted in the image, it will be executed on container startup ```bash docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp \ - -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:8.0-v4-cli php your-script.php + -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:8.1-v4-cli php your-script.php ``` ## Using the CLI variant -The CLI images (thecodingmachine/php:8.0-v4-cli) expect a command to be passed in parameter. +The CLI images (thecodingmachine/php:8.1-v4-cli) expect a command to be passed in parameter. You should override the Docker "command". Important! You should not override the Docker "entrypoint". @@ -549,7 +549,7 @@ Important! You should not override the Docker "entrypoint". **Usage in a Dockerfile:** ```Dockerfile -FROM thecodingmachine/php:8.0-v4-cli +FROM thecodingmachine/php:8.1-v4-cli CMD ["php", "myprogram.php", "some_param"] ``` @@ -561,7 +561,7 @@ CMD ["php", "myprogram.php", "some_param"] version: '3' services: my_app: - image: thecodingmachine/php:8.0-v4-cli + image: thecodingmachine/php:8.1-v4-cli command: php myprogram.php some_param ``` @@ -581,7 +581,7 @@ This option is the easiest way to go if you are using the image on a development version: '3' services: my_app: - image: thecodingmachine/php:8.0-v4-apache-node16 + image: thecodingmachine/php:8.1-v4-apache-node16 volumes: - ~/.ssh:/home/docker/.ssh ``` @@ -602,7 +602,7 @@ Now, let's write a Dockerfile. **Dockerfile** ```yml -FROM thecodingmachine/php:8.0-v4-apache +FROM thecodingmachine/php:8.1-v4-apache ARG SSH_PRIVATE_KEY ARG SSH_KNOWN_HOSTS @@ -640,7 +640,7 @@ kind: Pod spec: containers: - name: foobar - image: thecodingmachine/php:8.0-v4-apache + image: thecodingmachine/php:8.1-v4-apache securityContext: allowPrivilegeEscalation: true # never use "false" here. ``` @@ -662,7 +662,7 @@ Your `docker-compose.yml` file will typically look like this: version: '3.3' services: php: - image: thecodingmachine/php:8.0-v4-apache + image: thecodingmachine/php:8.1-v4-apache ports: - "80:80" environment: @@ -688,7 +688,7 @@ If for some reason, the container name is not "blackfire", you can customize the version: '3.3' services: php: - image: thecodingmachine/php:8.0-v4-apache + image: thecodingmachine/php:8.1-v4-apache environment: PHP_EXTENSION_BLACKFIRE: 1 BLACKFIRE_AGENT: myblackfire @@ -723,7 +723,7 @@ This command will generate all the files from the "blueprint" templates. You can then test your changes using the `build-and-test.sh` command: ```bash -PHP_VERSION=8.0 BRANCH=v4 VARIANT=apache ./build-and-test.sh +PHP_VERSION=8.1 BRANCH=v4 VARIANT=apache ./build-and-test.sh ``` ### Additional environment in build-and-test.sh diff --git a/test-image.sh b/test-image.sh old mode 100644 new mode 100755 index 3ca75d30..18f73328 --- a/test-image.sh +++ b/test-image.sh @@ -10,7 +10,7 @@ failure() { trap 'failure ${LINENO} "$BASH_COMMAND"' ERR # Use either docker's 'build' command or 'buildx ' -export BUILDTOOL="buildx build --load --cache-from=type=local,src=/tmp/buildx-cache --cache-to=type=local,dest=/tmp/buildx-cache --platform=${PLATFORM:$(uname -p)}}" +export BUILDTOOL="buildx build --load --platform=${PLATFORM:-$(uname -p)}" # Let's replace the "." by a "-" with some bash magic export BRANCH_VARIANT="${VARIANT//./-}" From 124d49c7dc2440fdeea7d6ca1ed7c326b6a27536 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 25 Jul 2022 16:39:30 +0200 Subject: [PATCH 103/162] Hotfix : gitlab-ci --- .github/workflows/workflow.yml | 10 +- docker-bake.hcl | 191 ++++++++++++++++---------------- utils/docker-bake.blueprint.hcl | 17 ++- 3 files changed, 107 insertions(+), 111 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 4ae4ca46..c0934796 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -27,8 +27,8 @@ jobs: - name: Build locally run: | PHP_VERSION="${{ matrix.php_version }}" - docker buildx bake --load \ - --set "*.platform=$(uname -p)" \ + docker buildx bake --pull --load \ + --set "*.platform=linux/amd64" \ php${PHP_VERSION//.}-${{ matrix.variant }} docker images --filter=reference=thecodingmachine/php - name: Login to DockerHub @@ -43,6 +43,8 @@ jobs: if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} run: | PHP_VERSION="${{ matrix.php_version }}" - PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${BRANCH_VARIANT} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` - TAG=${PHP_PATCH_VERSION} docker buildx bake --push \ + PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` + PHP_MINOR="${PHP_PATCH_VERSION}" docker buildx bake --pull \ + --set "*.platform=linux/amd64,linux/arm64" \ + --set=*.output=type=registry \ php${PHP_VERSION//.}-${{ matrix.variant }} diff --git a/docker-bake.hcl b/docker-bake.hcl index 0f3ecd2e..2cd4b95c 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -68,14 +68,14 @@ group "php72" { } variable "REPO" {default = "thecodingmachine/php"} -variable "TAG" {default = "latest"} +variable "PHP_PATCH_MINOR" {default = ""} variable "GLOBAL_VERSION" {default = "v4"} function "tag" { - params = [PHP_VERSION, VARIANT] + params = [PHP_VERSION, VARIANT, PHP_MINOR] result = [ "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", - notequal("latest",TAG) ? "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}:${TAG}": "", + notequal("",PHP_MINOR) ? "${REPO}:${PHP_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "", ] } @@ -84,10 +84,7 @@ target "default" { args = { GLOBAL_VERSION = "${GLOBAL_VERSION}" } - platforms = [ - "linux/amd64", - "linux/arm64" - ] + platforms = ["linux/amd64"] pull = true #output = ["customDir"] #output = ["type=tar,dest=myimage.tar"] @@ -103,7 +100,7 @@ target "default" { # thecodingmachine/php:8.1-v4-slim-apache target "php81-slim-apache" { inherits = ["default"] - tags = tag("8.1", "slim-apache") + tags = tag("8.1", "slim-apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "8.1" @@ -114,7 +111,7 @@ target "php81-slim-apache" { # thecodingmachine/php:8.1-v4-apache target "php81-apache" { inherits = ["default"] - tags = tag("8.1", "apache") + tags = tag("8.1", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.1" @@ -125,7 +122,7 @@ target "php81-apache" { # thecodingmachine/php:8.1-v4-apache-node16 target "php81-apache-node16" { inherits = ["default"] - tags = tag("8.1", "apache-node16") + tags = tag("8.1", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" args = { PHP_VERSION = "8.1" @@ -136,7 +133,7 @@ target "php81-apache-node16" { # thecodingmachine/php:8.1-v4-apache-node14 target "php81-apache-node14" { inherits = ["default"] - tags = tag("8.1", "apache-node14") + tags = tag("8.1", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" args = { PHP_VERSION = "8.1" @@ -147,7 +144,7 @@ target "php81-apache-node14" { # thecodingmachine/php:8.1-v4-apache-node12 target "php81-apache-node12" { inherits = ["default"] - tags = tag("8.1", "apache-node12") + tags = tag("8.1", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" args = { PHP_VERSION = "8.1" @@ -158,7 +155,7 @@ target "php81-apache-node12" { # thecodingmachine/php:8.1-v4-apache-node10 target "php81-apache-node10" { inherits = ["default"] - tags = tag("8.1", "apache-node10") + tags = tag("8.1", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" args = { PHP_VERSION = "8.1" @@ -172,7 +169,7 @@ target "php81-apache-node10" { # thecodingmachine/php:8.1-v4-slim-fpm target "php81-slim-fpm" { inherits = ["default"] - tags = tag("8.1", "slim-fpm") + tags = tag("8.1", "slim-fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "8.1" @@ -183,7 +180,7 @@ target "php81-slim-fpm" { # thecodingmachine/php:8.1-v4-fpm target "php81-fpm" { inherits = ["default"] - tags = tag("8.1", "fpm") + tags = tag("8.1", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.1" @@ -194,7 +191,7 @@ target "php81-fpm" { # thecodingmachine/php:8.1-v4-fpm-node16 target "php81-fpm-node16" { inherits = ["default"] - tags = tag("8.1", "fpm-node16") + tags = tag("8.1", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" args = { PHP_VERSION = "8.1" @@ -205,7 +202,7 @@ target "php81-fpm-node16" { # thecodingmachine/php:8.1-v4-fpm-node14 target "php81-fpm-node14" { inherits = ["default"] - tags = tag("8.1", "fpm-node14") + tags = tag("8.1", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" args = { PHP_VERSION = "8.1" @@ -216,7 +213,7 @@ target "php81-fpm-node14" { # thecodingmachine/php:8.1-v4-fpm-node12 target "php81-fpm-node12" { inherits = ["default"] - tags = tag("8.1", "fpm-node12") + tags = tag("8.1", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" args = { PHP_VERSION = "8.1" @@ -227,7 +224,7 @@ target "php81-fpm-node12" { # thecodingmachine/php:8.1-v4-fpm-node10 target "php81-fpm-node10" { inherits = ["default"] - tags = tag("8.1", "fpm-node10") + tags = tag("8.1", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" args = { PHP_VERSION = "8.1" @@ -241,7 +238,7 @@ target "php81-fpm-node10" { # thecodingmachine/php:8.1-v4-slim-cli target "php81-slim-cli" { inherits = ["default"] - tags = tag("8.1", "slim-cli") + tags = tag("8.1", "slim-cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "8.1" @@ -252,7 +249,7 @@ target "php81-slim-cli" { # thecodingmachine/php:8.1-v4-cli target "php81-cli" { inherits = ["default"] - tags = tag("8.1", "cli") + tags = tag("8.1", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.1" @@ -263,7 +260,7 @@ target "php81-cli" { # thecodingmachine/php:8.1-v4-cli-node16 target "php81-cli-node16" { inherits = ["default"] - tags = tag("8.1", "cli-node16") + tags = tag("8.1", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" args = { PHP_VERSION = "8.1" @@ -274,7 +271,7 @@ target "php81-cli-node16" { # thecodingmachine/php:8.1-v4-cli-node14 target "php81-cli-node14" { inherits = ["default"] - tags = tag("8.1", "cli-node14") + tags = tag("8.1", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" args = { PHP_VERSION = "8.1" @@ -285,7 +282,7 @@ target "php81-cli-node14" { # thecodingmachine/php:8.1-v4-cli-node12 target "php81-cli-node12" { inherits = ["default"] - tags = tag("8.1", "cli-node12") + tags = tag("8.1", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" args = { PHP_VERSION = "8.1" @@ -296,7 +293,7 @@ target "php81-cli-node12" { # thecodingmachine/php:8.1-v4-cli-node10 target "php81-cli-node10" { inherits = ["default"] - tags = tag("8.1", "cli-node10") + tags = tag("8.1", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" args = { PHP_VERSION = "8.1" @@ -310,7 +307,7 @@ target "php81-cli-node10" { # thecodingmachine/php:8.0-v4-slim-apache target "php80-slim-apache" { inherits = ["default"] - tags = tag("8.0", "slim-apache") + tags = tag("8.0", "slim-apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "8.0" @@ -321,7 +318,7 @@ target "php80-slim-apache" { # thecodingmachine/php:8.0-v4-apache target "php80-apache" { inherits = ["default"] - tags = tag("8.0", "apache") + tags = tag("8.0", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.0" @@ -332,7 +329,7 @@ target "php80-apache" { # thecodingmachine/php:8.0-v4-apache-node16 target "php80-apache-node16" { inherits = ["default"] - tags = tag("8.0", "apache-node16") + tags = tag("8.0", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" args = { PHP_VERSION = "8.0" @@ -343,7 +340,7 @@ target "php80-apache-node16" { # thecodingmachine/php:8.0-v4-apache-node14 target "php80-apache-node14" { inherits = ["default"] - tags = tag("8.0", "apache-node14") + tags = tag("8.0", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" args = { PHP_VERSION = "8.0" @@ -354,7 +351,7 @@ target "php80-apache-node14" { # thecodingmachine/php:8.0-v4-apache-node12 target "php80-apache-node12" { inherits = ["default"] - tags = tag("8.0", "apache-node12") + tags = tag("8.0", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" args = { PHP_VERSION = "8.0" @@ -365,7 +362,7 @@ target "php80-apache-node12" { # thecodingmachine/php:8.0-v4-apache-node10 target "php80-apache-node10" { inherits = ["default"] - tags = tag("8.0", "apache-node10") + tags = tag("8.0", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" args = { PHP_VERSION = "8.0" @@ -379,7 +376,7 @@ target "php80-apache-node10" { # thecodingmachine/php:8.0-v4-slim-fpm target "php80-slim-fpm" { inherits = ["default"] - tags = tag("8.0", "slim-fpm") + tags = tag("8.0", "slim-fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "8.0" @@ -390,7 +387,7 @@ target "php80-slim-fpm" { # thecodingmachine/php:8.0-v4-fpm target "php80-fpm" { inherits = ["default"] - tags = tag("8.0", "fpm") + tags = tag("8.0", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.0" @@ -401,7 +398,7 @@ target "php80-fpm" { # thecodingmachine/php:8.0-v4-fpm-node16 target "php80-fpm-node16" { inherits = ["default"] - tags = tag("8.0", "fpm-node16") + tags = tag("8.0", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" args = { PHP_VERSION = "8.0" @@ -412,7 +409,7 @@ target "php80-fpm-node16" { # thecodingmachine/php:8.0-v4-fpm-node14 target "php80-fpm-node14" { inherits = ["default"] - tags = tag("8.0", "fpm-node14") + tags = tag("8.0", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" args = { PHP_VERSION = "8.0" @@ -423,7 +420,7 @@ target "php80-fpm-node14" { # thecodingmachine/php:8.0-v4-fpm-node12 target "php80-fpm-node12" { inherits = ["default"] - tags = tag("8.0", "fpm-node12") + tags = tag("8.0", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" args = { PHP_VERSION = "8.0" @@ -434,7 +431,7 @@ target "php80-fpm-node12" { # thecodingmachine/php:8.0-v4-fpm-node10 target "php80-fpm-node10" { inherits = ["default"] - tags = tag("8.0", "fpm-node10") + tags = tag("8.0", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" args = { PHP_VERSION = "8.0" @@ -448,7 +445,7 @@ target "php80-fpm-node10" { # thecodingmachine/php:8.0-v4-slim-cli target "php80-slim-cli" { inherits = ["default"] - tags = tag("8.0", "slim-cli") + tags = tag("8.0", "slim-cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "8.0" @@ -459,7 +456,7 @@ target "php80-slim-cli" { # thecodingmachine/php:8.0-v4-cli target "php80-cli" { inherits = ["default"] - tags = tag("8.0", "cli") + tags = tag("8.0", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.0" @@ -470,7 +467,7 @@ target "php80-cli" { # thecodingmachine/php:8.0-v4-cli-node16 target "php80-cli-node16" { inherits = ["default"] - tags = tag("8.0", "cli-node16") + tags = tag("8.0", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" args = { PHP_VERSION = "8.0" @@ -481,7 +478,7 @@ target "php80-cli-node16" { # thecodingmachine/php:8.0-v4-cli-node14 target "php80-cli-node14" { inherits = ["default"] - tags = tag("8.0", "cli-node14") + tags = tag("8.0", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" args = { PHP_VERSION = "8.0" @@ -492,7 +489,7 @@ target "php80-cli-node14" { # thecodingmachine/php:8.0-v4-cli-node12 target "php80-cli-node12" { inherits = ["default"] - tags = tag("8.0", "cli-node12") + tags = tag("8.0", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" args = { PHP_VERSION = "8.0" @@ -503,7 +500,7 @@ target "php80-cli-node12" { # thecodingmachine/php:8.0-v4-cli-node10 target "php80-cli-node10" { inherits = ["default"] - tags = tag("8.0", "cli-node10") + tags = tag("8.0", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" args = { PHP_VERSION = "8.0" @@ -517,7 +514,7 @@ target "php80-cli-node10" { # thecodingmachine/php:7.4-v4-slim-apache target "php74-slim-apache" { inherits = ["default"] - tags = tag("7.4", "slim-apache") + tags = tag("7.4", "slim-apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "7.4" @@ -528,7 +525,7 @@ target "php74-slim-apache" { # thecodingmachine/php:7.4-v4-apache target "php74-apache" { inherits = ["default"] - tags = tag("7.4", "apache") + tags = tag("7.4", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.4" @@ -539,7 +536,7 @@ target "php74-apache" { # thecodingmachine/php:7.4-v4-apache-node16 target "php74-apache-node16" { inherits = ["default"] - tags = tag("7.4", "apache-node16") + tags = tag("7.4", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" args = { PHP_VERSION = "7.4" @@ -550,7 +547,7 @@ target "php74-apache-node16" { # thecodingmachine/php:7.4-v4-apache-node14 target "php74-apache-node14" { inherits = ["default"] - tags = tag("7.4", "apache-node14") + tags = tag("7.4", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" args = { PHP_VERSION = "7.4" @@ -561,7 +558,7 @@ target "php74-apache-node14" { # thecodingmachine/php:7.4-v4-apache-node12 target "php74-apache-node12" { inherits = ["default"] - tags = tag("7.4", "apache-node12") + tags = tag("7.4", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" args = { PHP_VERSION = "7.4" @@ -572,7 +569,7 @@ target "php74-apache-node12" { # thecodingmachine/php:7.4-v4-apache-node10 target "php74-apache-node10" { inherits = ["default"] - tags = tag("7.4", "apache-node10") + tags = tag("7.4", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" args = { PHP_VERSION = "7.4" @@ -586,7 +583,7 @@ target "php74-apache-node10" { # thecodingmachine/php:7.4-v4-slim-fpm target "php74-slim-fpm" { inherits = ["default"] - tags = tag("7.4", "slim-fpm") + tags = tag("7.4", "slim-fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "7.4" @@ -597,7 +594,7 @@ target "php74-slim-fpm" { # thecodingmachine/php:7.4-v4-fpm target "php74-fpm" { inherits = ["default"] - tags = tag("7.4", "fpm") + tags = tag("7.4", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.4" @@ -608,7 +605,7 @@ target "php74-fpm" { # thecodingmachine/php:7.4-v4-fpm-node16 target "php74-fpm-node16" { inherits = ["default"] - tags = tag("7.4", "fpm-node16") + tags = tag("7.4", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" args = { PHP_VERSION = "7.4" @@ -619,7 +616,7 @@ target "php74-fpm-node16" { # thecodingmachine/php:7.4-v4-fpm-node14 target "php74-fpm-node14" { inherits = ["default"] - tags = tag("7.4", "fpm-node14") + tags = tag("7.4", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" args = { PHP_VERSION = "7.4" @@ -630,7 +627,7 @@ target "php74-fpm-node14" { # thecodingmachine/php:7.4-v4-fpm-node12 target "php74-fpm-node12" { inherits = ["default"] - tags = tag("7.4", "fpm-node12") + tags = tag("7.4", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" args = { PHP_VERSION = "7.4" @@ -641,7 +638,7 @@ target "php74-fpm-node12" { # thecodingmachine/php:7.4-v4-fpm-node10 target "php74-fpm-node10" { inherits = ["default"] - tags = tag("7.4", "fpm-node10") + tags = tag("7.4", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" args = { PHP_VERSION = "7.4" @@ -655,7 +652,7 @@ target "php74-fpm-node10" { # thecodingmachine/php:7.4-v4-slim-cli target "php74-slim-cli" { inherits = ["default"] - tags = tag("7.4", "slim-cli") + tags = tag("7.4", "slim-cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "7.4" @@ -666,7 +663,7 @@ target "php74-slim-cli" { # thecodingmachine/php:7.4-v4-cli target "php74-cli" { inherits = ["default"] - tags = tag("7.4", "cli") + tags = tag("7.4", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.4" @@ -677,7 +674,7 @@ target "php74-cli" { # thecodingmachine/php:7.4-v4-cli-node16 target "php74-cli-node16" { inherits = ["default"] - tags = tag("7.4", "cli-node16") + tags = tag("7.4", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" args = { PHP_VERSION = "7.4" @@ -688,7 +685,7 @@ target "php74-cli-node16" { # thecodingmachine/php:7.4-v4-cli-node14 target "php74-cli-node14" { inherits = ["default"] - tags = tag("7.4", "cli-node14") + tags = tag("7.4", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" args = { PHP_VERSION = "7.4" @@ -699,7 +696,7 @@ target "php74-cli-node14" { # thecodingmachine/php:7.4-v4-cli-node12 target "php74-cli-node12" { inherits = ["default"] - tags = tag("7.4", "cli-node12") + tags = tag("7.4", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" args = { PHP_VERSION = "7.4" @@ -710,7 +707,7 @@ target "php74-cli-node12" { # thecodingmachine/php:7.4-v4-cli-node10 target "php74-cli-node10" { inherits = ["default"] - tags = tag("7.4", "cli-node10") + tags = tag("7.4", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" args = { PHP_VERSION = "7.4" @@ -724,7 +721,7 @@ target "php74-cli-node10" { # thecodingmachine/php:7.3-v4-slim-apache target "php73-slim-apache" { inherits = ["default"] - tags = tag("7.3", "slim-apache") + tags = tag("7.3", "slim-apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "7.3" @@ -735,7 +732,7 @@ target "php73-slim-apache" { # thecodingmachine/php:7.3-v4-apache target "php73-apache" { inherits = ["default"] - tags = tag("7.3", "apache") + tags = tag("7.3", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.3" @@ -746,7 +743,7 @@ target "php73-apache" { # thecodingmachine/php:7.3-v4-apache-node16 target "php73-apache-node16" { inherits = ["default"] - tags = tag("7.3", "apache-node16") + tags = tag("7.3", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" args = { PHP_VERSION = "7.3" @@ -757,7 +754,7 @@ target "php73-apache-node16" { # thecodingmachine/php:7.3-v4-apache-node14 target "php73-apache-node14" { inherits = ["default"] - tags = tag("7.3", "apache-node14") + tags = tag("7.3", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" args = { PHP_VERSION = "7.3" @@ -768,7 +765,7 @@ target "php73-apache-node14" { # thecodingmachine/php:7.3-v4-apache-node12 target "php73-apache-node12" { inherits = ["default"] - tags = tag("7.3", "apache-node12") + tags = tag("7.3", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" args = { PHP_VERSION = "7.3" @@ -779,7 +776,7 @@ target "php73-apache-node12" { # thecodingmachine/php:7.3-v4-apache-node10 target "php73-apache-node10" { inherits = ["default"] - tags = tag("7.3", "apache-node10") + tags = tag("7.3", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" args = { PHP_VERSION = "7.3" @@ -793,7 +790,7 @@ target "php73-apache-node10" { # thecodingmachine/php:7.3-v4-slim-fpm target "php73-slim-fpm" { inherits = ["default"] - tags = tag("7.3", "slim-fpm") + tags = tag("7.3", "slim-fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "7.3" @@ -804,7 +801,7 @@ target "php73-slim-fpm" { # thecodingmachine/php:7.3-v4-fpm target "php73-fpm" { inherits = ["default"] - tags = tag("7.3", "fpm") + tags = tag("7.3", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.3" @@ -815,7 +812,7 @@ target "php73-fpm" { # thecodingmachine/php:7.3-v4-fpm-node16 target "php73-fpm-node16" { inherits = ["default"] - tags = tag("7.3", "fpm-node16") + tags = tag("7.3", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" args = { PHP_VERSION = "7.3" @@ -826,7 +823,7 @@ target "php73-fpm-node16" { # thecodingmachine/php:7.3-v4-fpm-node14 target "php73-fpm-node14" { inherits = ["default"] - tags = tag("7.3", "fpm-node14") + tags = tag("7.3", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" args = { PHP_VERSION = "7.3" @@ -837,7 +834,7 @@ target "php73-fpm-node14" { # thecodingmachine/php:7.3-v4-fpm-node12 target "php73-fpm-node12" { inherits = ["default"] - tags = tag("7.3", "fpm-node12") + tags = tag("7.3", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" args = { PHP_VERSION = "7.3" @@ -848,7 +845,7 @@ target "php73-fpm-node12" { # thecodingmachine/php:7.3-v4-fpm-node10 target "php73-fpm-node10" { inherits = ["default"] - tags = tag("7.3", "fpm-node10") + tags = tag("7.3", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" args = { PHP_VERSION = "7.3" @@ -862,7 +859,7 @@ target "php73-fpm-node10" { # thecodingmachine/php:7.3-v4-slim-cli target "php73-slim-cli" { inherits = ["default"] - tags = tag("7.3", "slim-cli") + tags = tag("7.3", "slim-cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "7.3" @@ -873,7 +870,7 @@ target "php73-slim-cli" { # thecodingmachine/php:7.3-v4-cli target "php73-cli" { inherits = ["default"] - tags = tag("7.3", "cli") + tags = tag("7.3", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.3" @@ -884,7 +881,7 @@ target "php73-cli" { # thecodingmachine/php:7.3-v4-cli-node16 target "php73-cli-node16" { inherits = ["default"] - tags = tag("7.3", "cli-node16") + tags = tag("7.3", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" args = { PHP_VERSION = "7.3" @@ -895,7 +892,7 @@ target "php73-cli-node16" { # thecodingmachine/php:7.3-v4-cli-node14 target "php73-cli-node14" { inherits = ["default"] - tags = tag("7.3", "cli-node14") + tags = tag("7.3", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" args = { PHP_VERSION = "7.3" @@ -906,7 +903,7 @@ target "php73-cli-node14" { # thecodingmachine/php:7.3-v4-cli-node12 target "php73-cli-node12" { inherits = ["default"] - tags = tag("7.3", "cli-node12") + tags = tag("7.3", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" args = { PHP_VERSION = "7.3" @@ -917,7 +914,7 @@ target "php73-cli-node12" { # thecodingmachine/php:7.3-v4-cli-node10 target "php73-cli-node10" { inherits = ["default"] - tags = tag("7.3", "cli-node10") + tags = tag("7.3", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" args = { PHP_VERSION = "7.3" @@ -931,7 +928,7 @@ target "php73-cli-node10" { # thecodingmachine/php:7.2-v4-slim-apache target "php72-slim-apache" { inherits = ["default"] - tags = tag("7.2", "slim-apache") + tags = tag("7.2", "slim-apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "7.2" @@ -942,7 +939,7 @@ target "php72-slim-apache" { # thecodingmachine/php:7.2-v4-apache target "php72-apache" { inherits = ["default"] - tags = tag("7.2", "apache") + tags = tag("7.2", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.2" @@ -953,7 +950,7 @@ target "php72-apache" { # thecodingmachine/php:7.2-v4-apache-node16 target "php72-apache-node16" { inherits = ["default"] - tags = tag("7.2", "apache-node16") + tags = tag("7.2", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" args = { PHP_VERSION = "7.2" @@ -964,7 +961,7 @@ target "php72-apache-node16" { # thecodingmachine/php:7.2-v4-apache-node14 target "php72-apache-node14" { inherits = ["default"] - tags = tag("7.2", "apache-node14") + tags = tag("7.2", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" args = { PHP_VERSION = "7.2" @@ -975,7 +972,7 @@ target "php72-apache-node14" { # thecodingmachine/php:7.2-v4-apache-node12 target "php72-apache-node12" { inherits = ["default"] - tags = tag("7.2", "apache-node12") + tags = tag("7.2", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" args = { PHP_VERSION = "7.2" @@ -986,7 +983,7 @@ target "php72-apache-node12" { # thecodingmachine/php:7.2-v4-apache-node10 target "php72-apache-node10" { inherits = ["default"] - tags = tag("7.2", "apache-node10") + tags = tag("7.2", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" args = { PHP_VERSION = "7.2" @@ -1000,7 +997,7 @@ target "php72-apache-node10" { # thecodingmachine/php:7.2-v4-slim-fpm target "php72-slim-fpm" { inherits = ["default"] - tags = tag("7.2", "slim-fpm") + tags = tag("7.2", "slim-fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "7.2" @@ -1011,7 +1008,7 @@ target "php72-slim-fpm" { # thecodingmachine/php:7.2-v4-fpm target "php72-fpm" { inherits = ["default"] - tags = tag("7.2", "fpm") + tags = tag("7.2", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.2" @@ -1022,7 +1019,7 @@ target "php72-fpm" { # thecodingmachine/php:7.2-v4-fpm-node16 target "php72-fpm-node16" { inherits = ["default"] - tags = tag("7.2", "fpm-node16") + tags = tag("7.2", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" args = { PHP_VERSION = "7.2" @@ -1033,7 +1030,7 @@ target "php72-fpm-node16" { # thecodingmachine/php:7.2-v4-fpm-node14 target "php72-fpm-node14" { inherits = ["default"] - tags = tag("7.2", "fpm-node14") + tags = tag("7.2", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" args = { PHP_VERSION = "7.2" @@ -1044,7 +1041,7 @@ target "php72-fpm-node14" { # thecodingmachine/php:7.2-v4-fpm-node12 target "php72-fpm-node12" { inherits = ["default"] - tags = tag("7.2", "fpm-node12") + tags = tag("7.2", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" args = { PHP_VERSION = "7.2" @@ -1055,7 +1052,7 @@ target "php72-fpm-node12" { # thecodingmachine/php:7.2-v4-fpm-node10 target "php72-fpm-node10" { inherits = ["default"] - tags = tag("7.2", "fpm-node10") + tags = tag("7.2", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" args = { PHP_VERSION = "7.2" @@ -1069,7 +1066,7 @@ target "php72-fpm-node10" { # thecodingmachine/php:7.2-v4-slim-cli target "php72-slim-cli" { inherits = ["default"] - tags = tag("7.2", "slim-cli") + tags = tag("7.2", "slim-cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "7.2" @@ -1080,7 +1077,7 @@ target "php72-slim-cli" { # thecodingmachine/php:7.2-v4-cli target "php72-cli" { inherits = ["default"] - tags = tag("7.2", "cli") + tags = tag("7.2", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.2" @@ -1091,7 +1088,7 @@ target "php72-cli" { # thecodingmachine/php:7.2-v4-cli-node16 target "php72-cli-node16" { inherits = ["default"] - tags = tag("7.2", "cli-node16") + tags = tag("7.2", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" args = { PHP_VERSION = "7.2" @@ -1102,7 +1099,7 @@ target "php72-cli-node16" { # thecodingmachine/php:7.2-v4-cli-node14 target "php72-cli-node14" { inherits = ["default"] - tags = tag("7.2", "cli-node14") + tags = tag("7.2", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" args = { PHP_VERSION = "7.2" @@ -1113,7 +1110,7 @@ target "php72-cli-node14" { # thecodingmachine/php:7.2-v4-cli-node12 target "php72-cli-node12" { inherits = ["default"] - tags = tag("7.2", "cli-node12") + tags = tag("7.2", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" args = { PHP_VERSION = "7.2" @@ -1124,7 +1121,7 @@ target "php72-cli-node12" { # thecodingmachine/php:7.2-v4-cli-node10 target "php72-cli-node10" { inherits = ["default"] - tags = tag("7.2", "cli-node10") + tags = tag("7.2", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" args = { PHP_VERSION = "7.2" diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 7f3f07e4..050ed677 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -15,14 +15,14 @@ group "php{{ $phpV | replace "." "" }}" { }{{end}} variable "REPO" {default = "thecodingmachine/php"} -variable "TAG" {default = "latest"} +variable "PHP_PATCH_MINOR" {default = ""} variable "GLOBAL_VERSION" {default = "v4"} function "tag" { - params = [PHP_VERSION, VARIANT] + params = [PHP_VERSION, VARIANT, PHP_MINOR] result = [ "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", - notequal("latest",TAG) ? "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}:${TAG}": "", + notequal("",PHP_MINOR) ? "${REPO}:${PHP_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "", ] } @@ -31,10 +31,7 @@ target "default" { args = { GLOBAL_VERSION = "${GLOBAL_VERSION}" } - platforms = [ - "linux/amd64", - "linux/arm64" - ] + platforms = ["linux/amd64"] pull = true #output = ["customDir"] #output = ["type=tar,dest=myimage.tar"] @@ -50,7 +47,7 @@ target "default" { # thecodingmachine/php:{{ $phpV }}-v4-slim-{{ $variant }} target "php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" { inherits = ["default"] - tags = tag("{{ $phpV }}", "slim-{{ $variant }}") + tags = tag("{{ $phpV }}", "slim-{{ $variant }}", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.slim.{{ $variant }}" args = { PHP_VERSION = "{{ $phpV }}" @@ -61,7 +58,7 @@ target "php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" { # thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }} target "php{{ $phpV | replace "." "" }}-{{ $variant }}" { inherits = ["default"] - tags = tag("{{ $phpV }}", "{{ $variant }}") + tags = tag("{{ $phpV }}", "{{ $variant }}", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.{{ $variant }}" args = { PHP_VERSION = "{{ $phpV }}" @@ -72,7 +69,7 @@ target "php{{ $phpV | replace "." "" }}-{{ $variant }}" { # thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }}-node{{ $nodeV }} target "php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}" { inherits = ["default"] - tags = tag("{{ $phpV }}", "{{ $variant }}-node{{ $nodeV }}") + tags = tag("{{ $phpV }}", "{{ $variant }}-node{{ $nodeV }}", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.{{ $variant }}.node{{ $nodeV }}" args = { PHP_VERSION = "{{ $phpV }}" From a258b8ebbfe7e90308a0242f64f98775dd0234be Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 25 Jul 2022 18:58:40 +0200 Subject: [PATCH 104/162] Hotfix : Send also php minor version tag to registry --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index c0934796..58c8b31e 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -44,7 +44,7 @@ jobs: run: | PHP_VERSION="${{ matrix.php_version }}" PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` - PHP_MINOR="${PHP_PATCH_VERSION}" docker buildx bake --pull \ + PHP_PATCH_MINOR="${PHP_PATCH_VERSION}" docker buildx bake --pull \ --set "*.platform=linux/amd64,linux/arm64" \ --set=*.output=type=registry \ php${PHP_VERSION//.}-${{ matrix.variant }} From 4d2d966adadee9dd83fe62274f42b0e78b937aa0 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 29 Aug 2022 18:19:16 +0200 Subject: [PATCH 105/162] Fixe multiarch arm64 support --- .github/workflows/workflow.yml | 11 +- Dockerfile.apache | 15 +- Dockerfile.apache.node10 | 9 +- Dockerfile.apache.node12 | 9 +- Dockerfile.apache.node14 | 9 +- Dockerfile.apache.node16 | 9 +- Dockerfile.cli | 15 +- Dockerfile.cli.node10 | 9 +- Dockerfile.cli.node12 | 9 +- Dockerfile.cli.node14 | 9 +- Dockerfile.cli.node16 | 9 +- Dockerfile.fpm | 15 +- Dockerfile.fpm.node10 | 9 +- Dockerfile.fpm.node12 | 9 +- Dockerfile.fpm.node14 | 9 +- Dockerfile.fpm.node16 | 9 +- Dockerfile.slim.apache | 20 +-- Dockerfile.slim.cli | 20 +-- Dockerfile.slim.fpm | 20 +-- docker-bake.hcl | 225 ++++++++++++++++++++++++++++++ extensions/core/docker-install.sh | 1 + utils/Dockerfile.blueprint | 17 +-- utils/Dockerfile.node.blueprint | 14 +- utils/Dockerfile.slim.blueprint | 46 +++--- utils/docker-bake.blueprint.hcl | 6 + 25 files changed, 358 insertions(+), 175 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 58c8b31e..03a3ec94 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -27,7 +27,7 @@ jobs: - name: Build locally run: | PHP_VERSION="${{ matrix.php_version }}" - docker buildx bake --pull --load \ + docker buildx bake --load \ --set "*.platform=linux/amd64" \ php${PHP_VERSION//.}-${{ matrix.variant }} docker images --filter=reference=thecodingmachine/php @@ -42,9 +42,10 @@ jobs: # Merge ~ push. if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} run: | - PHP_VERSION="${{ matrix.php_version }}" - PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` - PHP_PATCH_MINOR="${PHP_PATCH_VERSION}" docker buildx bake --pull \ + PHP_VERSION="${{ matrix.php_version }}" \ + PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` \ + PHP_PATCH_MINOR="${PHP_PATCH_VERSION}" \ + docker buildx bake \ --set "*.platform=linux/amd64,linux/arm64" \ - --set=*.output=type=registry \ + --set "*.output=type=registry" \ php${PHP_VERSION//.}-${{ matrix.variant }} diff --git a/Dockerfile.apache b/Dockerfile.apache index 83698d60..05196e97 100644 --- a/Dockerfile.apache +++ b/Dockerfile.apache @@ -4,18 +4,13 @@ ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache - -ONBUILD ARG TARGETOS -ONBUILD ARG TARGETARCH -ONBUILD ARG BLACKFIRE_VERSION=1 -ENV CONTAINER_OS=${TARGETOS} -ENV CONTAINER_ARCH=${TARGETARCH} -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - - +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache as baseapp LABEL authors="Julien Neuhart , David Négrier " +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 + # |-------------------------------------------------------------------------- # | Main PHP extensions # |-------------------------------------------------------------------------- diff --git a/Dockerfile.apache.node10 b/Dockerfile.apache.node10 index b6304551..a3752a81 100644 --- a/Dockerfile.apache.node10 +++ b/Dockerfile.apache.node10 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.apache.node12 b/Dockerfile.apache.node12 index d76f0ff5..22df0156 100644 --- a/Dockerfile.apache.node12 +++ b/Dockerfile.apache.node12 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.apache.node14 b/Dockerfile.apache.node14 index b53ef199..49a006f8 100644 --- a/Dockerfile.apache.node14 +++ b/Dockerfile.apache.node14 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.apache.node16 b/Dockerfile.apache.node16 index c6bdf42e..8bf14ef2 100644 --- a/Dockerfile.apache.node16 +++ b/Dockerfile.apache.node16 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.cli b/Dockerfile.cli index f06b9fe7..1d64507a 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -4,18 +4,13 @@ ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli - -ONBUILD ARG TARGETOS -ONBUILD ARG TARGETARCH -ONBUILD ARG BLACKFIRE_VERSION=1 -ENV CONTAINER_OS=${TARGETOS} -ENV CONTAINER_ARCH=${TARGETARCH} -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - - +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli as baseapp LABEL authors="Julien Neuhart , David Négrier " +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 + # |-------------------------------------------------------------------------- # | Main PHP extensions # |-------------------------------------------------------------------------- diff --git a/Dockerfile.cli.node10 b/Dockerfile.cli.node10 index a3b432ba..b4c7fd15 100644 --- a/Dockerfile.cli.node10 +++ b/Dockerfile.cli.node10 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.cli.node12 b/Dockerfile.cli.node12 index 6af91d1a..52fe4208 100644 --- a/Dockerfile.cli.node12 +++ b/Dockerfile.cli.node12 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.cli.node14 b/Dockerfile.cli.node14 index 9eb02fd4..2be12c05 100644 --- a/Dockerfile.cli.node14 +++ b/Dockerfile.cli.node14 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.cli.node16 b/Dockerfile.cli.node16 index 5d54cc8a..bcb17561 100644 --- a/Dockerfile.cli.node16 +++ b/Dockerfile.cli.node16 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.fpm b/Dockerfile.fpm index 0a45e8eb..f139b82c 100644 --- a/Dockerfile.fpm +++ b/Dockerfile.fpm @@ -4,18 +4,13 @@ ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm - -ONBUILD ARG TARGETOS -ONBUILD ARG TARGETARCH -ONBUILD ARG BLACKFIRE_VERSION=1 -ENV CONTAINER_OS=${TARGETOS} -ENV CONTAINER_ARCH=${TARGETARCH} -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - - +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm as baseapp LABEL authors="Julien Neuhart , David Négrier " +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 + # |-------------------------------------------------------------------------- # | Main PHP extensions # |-------------------------------------------------------------------------- diff --git a/Dockerfile.fpm.node10 b/Dockerfile.fpm.node10 index 83ee2f42..c3bf8634 100644 --- a/Dockerfile.fpm.node10 +++ b/Dockerfile.fpm.node10 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.fpm.node12 b/Dockerfile.fpm.node12 index 5ca1c19c..76414521 100644 --- a/Dockerfile.fpm.node12 +++ b/Dockerfile.fpm.node12 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.fpm.node14 b/Dockerfile.fpm.node14 index be926770..459a6639 100644 --- a/Dockerfile.fpm.node14 +++ b/Dockerfile.fpm.node14 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.fpm.node16 b/Dockerfile.fpm.node16 index afd3f4a4..ff34925f 100644 --- a/Dockerfile.fpm.node16 +++ b/Dockerfile.fpm.node16 @@ -1,14 +1,11 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -ARG PHP_VERSION -ARG GLOBAL_VERSION +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp +LABEL authors="Julien Neuhart , David Négrier " + ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 1c53f6e4..78f32a1d 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -1,6 +1,5 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM --platform=$BUILDPLATFORM ubuntu:20.04 - +FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " # Fixes some weird terminal issues such as broken clear / CTRL+L @@ -10,15 +9,17 @@ LABEL authors="Julien Neuhart , David Négrier < ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION -ENV PHP_VERSION=$PHP_VERSION -ONBUILD ARG TARGETOS -ONBUILD ARG TARGETARCH -ONBUILD ARG BLACKFIRE_VERSION=1 -ARG BLACKFIRE_VERSION=1 ARG TARGETOS ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 +ONBUILD ARG TARGETOS=${TARGETOS} +ONBUILD ARG TARGETARCH=${TARGETARCH} +ONBUILD ARG BLACKFIRE_VERSION=${BLACKFIRE_VERSION} +ENV TARGETOS=${TARGETOS} +ENV TARGETARCH=${TARGETARCH} ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} +ENV PHP_VERSION=${PHP_VERSION} # |-------------------------------------------------------------------------- # | Main PHP extensions @@ -363,8 +364,11 @@ ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ && echo $SUPERCRONIC_URL \ && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ + && if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ + elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ + else echo "Target arch '$TARGETARCH' is not supported"; fi; \ && curl -fsSLO "$SUPERCRONIC_URL" \ -# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ + && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ && chmod +x "$SUPERCRONIC" \ && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 8fc19387..a896705a 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -1,6 +1,5 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM --platform=$BUILDPLATFORM ubuntu:20.04 - +FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " # Fixes some weird terminal issues such as broken clear / CTRL+L @@ -10,15 +9,17 @@ LABEL authors="Julien Neuhart , David Négrier < ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION -ENV PHP_VERSION=$PHP_VERSION -ONBUILD ARG TARGETOS -ONBUILD ARG TARGETARCH -ONBUILD ARG BLACKFIRE_VERSION=1 -ARG BLACKFIRE_VERSION=1 ARG TARGETOS ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 +ONBUILD ARG TARGETOS=${TARGETOS} +ONBUILD ARG TARGETARCH=${TARGETARCH} +ONBUILD ARG BLACKFIRE_VERSION=${BLACKFIRE_VERSION} +ENV TARGETOS=${TARGETOS} +ENV TARGETARCH=${TARGETARCH} ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} +ENV PHP_VERSION=${PHP_VERSION} # |-------------------------------------------------------------------------- # | Main PHP extensions @@ -268,8 +269,11 @@ ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ && echo $SUPERCRONIC_URL \ && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ + && if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ + elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ + else echo "Target arch '$TARGETARCH' is not supported"; fi; \ && curl -fsSLO "$SUPERCRONIC_URL" \ -# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ + && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ && chmod +x "$SUPERCRONIC" \ && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 5ab9ffca..2ca98a65 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -1,6 +1,5 @@ # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM --platform=$BUILDPLATFORM ubuntu:20.04 - +FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " # Fixes some weird terminal issues such as broken clear / CTRL+L @@ -10,15 +9,17 @@ LABEL authors="Julien Neuhart , David Négrier < ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION -ENV PHP_VERSION=$PHP_VERSION -ONBUILD ARG TARGETOS -ONBUILD ARG TARGETARCH -ONBUILD ARG BLACKFIRE_VERSION=1 -ARG BLACKFIRE_VERSION=1 ARG TARGETOS ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 +ONBUILD ARG TARGETOS=${TARGETOS} +ONBUILD ARG TARGETARCH=${TARGETARCH} +ONBUILD ARG BLACKFIRE_VERSION=${BLACKFIRE_VERSION} +ENV TARGETOS=${TARGETOS} +ENV TARGETARCH=${TARGETARCH} ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} +ENV PHP_VERSION=${PHP_VERSION} # |-------------------------------------------------------------------------- # | Main PHP extensions @@ -291,8 +292,11 @@ ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ && echo $SUPERCRONIC_URL \ && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ + && if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ + elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ + else echo "Target arch '$TARGETARCH' is not supported"; fi; \ && curl -fsSLO "$SUPERCRONIC_URL" \ -# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ + && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ && chmod +x "$SUPERCRONIC" \ && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ diff --git a/docker-bake.hcl b/docker-bake.hcl index 2cd4b95c..0deadf60 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -110,6 +110,9 @@ target "php81-slim-apache" { # thecodingmachine/php:8.1-v4-apache target "php81-apache" { + contexts = { + baseapp = "target:php81-slim-apache" + } inherits = ["default"] tags = tag("8.1", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" @@ -121,6 +124,9 @@ target "php81-apache" { # thecodingmachine/php:8.1-v4-apache-node16 target "php81-apache-node16" { + contexts = { + baseapp = "target:php81-apache" + } inherits = ["default"] tags = tag("8.1", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" @@ -132,6 +138,9 @@ target "php81-apache-node16" { # thecodingmachine/php:8.1-v4-apache-node14 target "php81-apache-node14" { + contexts = { + baseapp = "target:php81-apache" + } inherits = ["default"] tags = tag("8.1", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" @@ -143,6 +152,9 @@ target "php81-apache-node14" { # thecodingmachine/php:8.1-v4-apache-node12 target "php81-apache-node12" { + contexts = { + baseapp = "target:php81-apache" + } inherits = ["default"] tags = tag("8.1", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" @@ -154,6 +166,9 @@ target "php81-apache-node12" { # thecodingmachine/php:8.1-v4-apache-node10 target "php81-apache-node10" { + contexts = { + baseapp = "target:php81-apache" + } inherits = ["default"] tags = tag("8.1", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" @@ -179,6 +194,9 @@ target "php81-slim-fpm" { # thecodingmachine/php:8.1-v4-fpm target "php81-fpm" { + contexts = { + baseapp = "target:php81-slim-fpm" + } inherits = ["default"] tags = tag("8.1", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" @@ -190,6 +208,9 @@ target "php81-fpm" { # thecodingmachine/php:8.1-v4-fpm-node16 target "php81-fpm-node16" { + contexts = { + baseapp = "target:php81-fpm" + } inherits = ["default"] tags = tag("8.1", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" @@ -201,6 +222,9 @@ target "php81-fpm-node16" { # thecodingmachine/php:8.1-v4-fpm-node14 target "php81-fpm-node14" { + contexts = { + baseapp = "target:php81-fpm" + } inherits = ["default"] tags = tag("8.1", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" @@ -212,6 +236,9 @@ target "php81-fpm-node14" { # thecodingmachine/php:8.1-v4-fpm-node12 target "php81-fpm-node12" { + contexts = { + baseapp = "target:php81-fpm" + } inherits = ["default"] tags = tag("8.1", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" @@ -223,6 +250,9 @@ target "php81-fpm-node12" { # thecodingmachine/php:8.1-v4-fpm-node10 target "php81-fpm-node10" { + contexts = { + baseapp = "target:php81-fpm" + } inherits = ["default"] tags = tag("8.1", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" @@ -248,6 +278,9 @@ target "php81-slim-cli" { # thecodingmachine/php:8.1-v4-cli target "php81-cli" { + contexts = { + baseapp = "target:php81-slim-cli" + } inherits = ["default"] tags = tag("8.1", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" @@ -259,6 +292,9 @@ target "php81-cli" { # thecodingmachine/php:8.1-v4-cli-node16 target "php81-cli-node16" { + contexts = { + baseapp = "target:php81-cli" + } inherits = ["default"] tags = tag("8.1", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" @@ -270,6 +306,9 @@ target "php81-cli-node16" { # thecodingmachine/php:8.1-v4-cli-node14 target "php81-cli-node14" { + contexts = { + baseapp = "target:php81-cli" + } inherits = ["default"] tags = tag("8.1", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" @@ -281,6 +320,9 @@ target "php81-cli-node14" { # thecodingmachine/php:8.1-v4-cli-node12 target "php81-cli-node12" { + contexts = { + baseapp = "target:php81-cli" + } inherits = ["default"] tags = tag("8.1", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" @@ -292,6 +334,9 @@ target "php81-cli-node12" { # thecodingmachine/php:8.1-v4-cli-node10 target "php81-cli-node10" { + contexts = { + baseapp = "target:php81-cli" + } inherits = ["default"] tags = tag("8.1", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" @@ -317,6 +362,9 @@ target "php80-slim-apache" { # thecodingmachine/php:8.0-v4-apache target "php80-apache" { + contexts = { + baseapp = "target:php80-slim-apache" + } inherits = ["default"] tags = tag("8.0", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" @@ -328,6 +376,9 @@ target "php80-apache" { # thecodingmachine/php:8.0-v4-apache-node16 target "php80-apache-node16" { + contexts = { + baseapp = "target:php80-apache" + } inherits = ["default"] tags = tag("8.0", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" @@ -339,6 +390,9 @@ target "php80-apache-node16" { # thecodingmachine/php:8.0-v4-apache-node14 target "php80-apache-node14" { + contexts = { + baseapp = "target:php80-apache" + } inherits = ["default"] tags = tag("8.0", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" @@ -350,6 +404,9 @@ target "php80-apache-node14" { # thecodingmachine/php:8.0-v4-apache-node12 target "php80-apache-node12" { + contexts = { + baseapp = "target:php80-apache" + } inherits = ["default"] tags = tag("8.0", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" @@ -361,6 +418,9 @@ target "php80-apache-node12" { # thecodingmachine/php:8.0-v4-apache-node10 target "php80-apache-node10" { + contexts = { + baseapp = "target:php80-apache" + } inherits = ["default"] tags = tag("8.0", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" @@ -386,6 +446,9 @@ target "php80-slim-fpm" { # thecodingmachine/php:8.0-v4-fpm target "php80-fpm" { + contexts = { + baseapp = "target:php80-slim-fpm" + } inherits = ["default"] tags = tag("8.0", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" @@ -397,6 +460,9 @@ target "php80-fpm" { # thecodingmachine/php:8.0-v4-fpm-node16 target "php80-fpm-node16" { + contexts = { + baseapp = "target:php80-fpm" + } inherits = ["default"] tags = tag("8.0", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" @@ -408,6 +474,9 @@ target "php80-fpm-node16" { # thecodingmachine/php:8.0-v4-fpm-node14 target "php80-fpm-node14" { + contexts = { + baseapp = "target:php80-fpm" + } inherits = ["default"] tags = tag("8.0", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" @@ -419,6 +488,9 @@ target "php80-fpm-node14" { # thecodingmachine/php:8.0-v4-fpm-node12 target "php80-fpm-node12" { + contexts = { + baseapp = "target:php80-fpm" + } inherits = ["default"] tags = tag("8.0", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" @@ -430,6 +502,9 @@ target "php80-fpm-node12" { # thecodingmachine/php:8.0-v4-fpm-node10 target "php80-fpm-node10" { + contexts = { + baseapp = "target:php80-fpm" + } inherits = ["default"] tags = tag("8.0", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" @@ -455,6 +530,9 @@ target "php80-slim-cli" { # thecodingmachine/php:8.0-v4-cli target "php80-cli" { + contexts = { + baseapp = "target:php80-slim-cli" + } inherits = ["default"] tags = tag("8.0", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" @@ -466,6 +544,9 @@ target "php80-cli" { # thecodingmachine/php:8.0-v4-cli-node16 target "php80-cli-node16" { + contexts = { + baseapp = "target:php80-cli" + } inherits = ["default"] tags = tag("8.0", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" @@ -477,6 +558,9 @@ target "php80-cli-node16" { # thecodingmachine/php:8.0-v4-cli-node14 target "php80-cli-node14" { + contexts = { + baseapp = "target:php80-cli" + } inherits = ["default"] tags = tag("8.0", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" @@ -488,6 +572,9 @@ target "php80-cli-node14" { # thecodingmachine/php:8.0-v4-cli-node12 target "php80-cli-node12" { + contexts = { + baseapp = "target:php80-cli" + } inherits = ["default"] tags = tag("8.0", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" @@ -499,6 +586,9 @@ target "php80-cli-node12" { # thecodingmachine/php:8.0-v4-cli-node10 target "php80-cli-node10" { + contexts = { + baseapp = "target:php80-cli" + } inherits = ["default"] tags = tag("8.0", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" @@ -524,6 +614,9 @@ target "php74-slim-apache" { # thecodingmachine/php:7.4-v4-apache target "php74-apache" { + contexts = { + baseapp = "target:php74-slim-apache" + } inherits = ["default"] tags = tag("7.4", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" @@ -535,6 +628,9 @@ target "php74-apache" { # thecodingmachine/php:7.4-v4-apache-node16 target "php74-apache-node16" { + contexts = { + baseapp = "target:php74-apache" + } inherits = ["default"] tags = tag("7.4", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" @@ -546,6 +642,9 @@ target "php74-apache-node16" { # thecodingmachine/php:7.4-v4-apache-node14 target "php74-apache-node14" { + contexts = { + baseapp = "target:php74-apache" + } inherits = ["default"] tags = tag("7.4", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" @@ -557,6 +656,9 @@ target "php74-apache-node14" { # thecodingmachine/php:7.4-v4-apache-node12 target "php74-apache-node12" { + contexts = { + baseapp = "target:php74-apache" + } inherits = ["default"] tags = tag("7.4", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" @@ -568,6 +670,9 @@ target "php74-apache-node12" { # thecodingmachine/php:7.4-v4-apache-node10 target "php74-apache-node10" { + contexts = { + baseapp = "target:php74-apache" + } inherits = ["default"] tags = tag("7.4", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" @@ -593,6 +698,9 @@ target "php74-slim-fpm" { # thecodingmachine/php:7.4-v4-fpm target "php74-fpm" { + contexts = { + baseapp = "target:php74-slim-fpm" + } inherits = ["default"] tags = tag("7.4", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" @@ -604,6 +712,9 @@ target "php74-fpm" { # thecodingmachine/php:7.4-v4-fpm-node16 target "php74-fpm-node16" { + contexts = { + baseapp = "target:php74-fpm" + } inherits = ["default"] tags = tag("7.4", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" @@ -615,6 +726,9 @@ target "php74-fpm-node16" { # thecodingmachine/php:7.4-v4-fpm-node14 target "php74-fpm-node14" { + contexts = { + baseapp = "target:php74-fpm" + } inherits = ["default"] tags = tag("7.4", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" @@ -626,6 +740,9 @@ target "php74-fpm-node14" { # thecodingmachine/php:7.4-v4-fpm-node12 target "php74-fpm-node12" { + contexts = { + baseapp = "target:php74-fpm" + } inherits = ["default"] tags = tag("7.4", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" @@ -637,6 +754,9 @@ target "php74-fpm-node12" { # thecodingmachine/php:7.4-v4-fpm-node10 target "php74-fpm-node10" { + contexts = { + baseapp = "target:php74-fpm" + } inherits = ["default"] tags = tag("7.4", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" @@ -662,6 +782,9 @@ target "php74-slim-cli" { # thecodingmachine/php:7.4-v4-cli target "php74-cli" { + contexts = { + baseapp = "target:php74-slim-cli" + } inherits = ["default"] tags = tag("7.4", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" @@ -673,6 +796,9 @@ target "php74-cli" { # thecodingmachine/php:7.4-v4-cli-node16 target "php74-cli-node16" { + contexts = { + baseapp = "target:php74-cli" + } inherits = ["default"] tags = tag("7.4", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" @@ -684,6 +810,9 @@ target "php74-cli-node16" { # thecodingmachine/php:7.4-v4-cli-node14 target "php74-cli-node14" { + contexts = { + baseapp = "target:php74-cli" + } inherits = ["default"] tags = tag("7.4", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" @@ -695,6 +824,9 @@ target "php74-cli-node14" { # thecodingmachine/php:7.4-v4-cli-node12 target "php74-cli-node12" { + contexts = { + baseapp = "target:php74-cli" + } inherits = ["default"] tags = tag("7.4", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" @@ -706,6 +838,9 @@ target "php74-cli-node12" { # thecodingmachine/php:7.4-v4-cli-node10 target "php74-cli-node10" { + contexts = { + baseapp = "target:php74-cli" + } inherits = ["default"] tags = tag("7.4", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" @@ -731,6 +866,9 @@ target "php73-slim-apache" { # thecodingmachine/php:7.3-v4-apache target "php73-apache" { + contexts = { + baseapp = "target:php73-slim-apache" + } inherits = ["default"] tags = tag("7.3", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" @@ -742,6 +880,9 @@ target "php73-apache" { # thecodingmachine/php:7.3-v4-apache-node16 target "php73-apache-node16" { + contexts = { + baseapp = "target:php73-apache" + } inherits = ["default"] tags = tag("7.3", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" @@ -753,6 +894,9 @@ target "php73-apache-node16" { # thecodingmachine/php:7.3-v4-apache-node14 target "php73-apache-node14" { + contexts = { + baseapp = "target:php73-apache" + } inherits = ["default"] tags = tag("7.3", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" @@ -764,6 +908,9 @@ target "php73-apache-node14" { # thecodingmachine/php:7.3-v4-apache-node12 target "php73-apache-node12" { + contexts = { + baseapp = "target:php73-apache" + } inherits = ["default"] tags = tag("7.3", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" @@ -775,6 +922,9 @@ target "php73-apache-node12" { # thecodingmachine/php:7.3-v4-apache-node10 target "php73-apache-node10" { + contexts = { + baseapp = "target:php73-apache" + } inherits = ["default"] tags = tag("7.3", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" @@ -800,6 +950,9 @@ target "php73-slim-fpm" { # thecodingmachine/php:7.3-v4-fpm target "php73-fpm" { + contexts = { + baseapp = "target:php73-slim-fpm" + } inherits = ["default"] tags = tag("7.3", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" @@ -811,6 +964,9 @@ target "php73-fpm" { # thecodingmachine/php:7.3-v4-fpm-node16 target "php73-fpm-node16" { + contexts = { + baseapp = "target:php73-fpm" + } inherits = ["default"] tags = tag("7.3", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" @@ -822,6 +978,9 @@ target "php73-fpm-node16" { # thecodingmachine/php:7.3-v4-fpm-node14 target "php73-fpm-node14" { + contexts = { + baseapp = "target:php73-fpm" + } inherits = ["default"] tags = tag("7.3", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" @@ -833,6 +992,9 @@ target "php73-fpm-node14" { # thecodingmachine/php:7.3-v4-fpm-node12 target "php73-fpm-node12" { + contexts = { + baseapp = "target:php73-fpm" + } inherits = ["default"] tags = tag("7.3", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" @@ -844,6 +1006,9 @@ target "php73-fpm-node12" { # thecodingmachine/php:7.3-v4-fpm-node10 target "php73-fpm-node10" { + contexts = { + baseapp = "target:php73-fpm" + } inherits = ["default"] tags = tag("7.3", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" @@ -869,6 +1034,9 @@ target "php73-slim-cli" { # thecodingmachine/php:7.3-v4-cli target "php73-cli" { + contexts = { + baseapp = "target:php73-slim-cli" + } inherits = ["default"] tags = tag("7.3", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" @@ -880,6 +1048,9 @@ target "php73-cli" { # thecodingmachine/php:7.3-v4-cli-node16 target "php73-cli-node16" { + contexts = { + baseapp = "target:php73-cli" + } inherits = ["default"] tags = tag("7.3", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" @@ -891,6 +1062,9 @@ target "php73-cli-node16" { # thecodingmachine/php:7.3-v4-cli-node14 target "php73-cli-node14" { + contexts = { + baseapp = "target:php73-cli" + } inherits = ["default"] tags = tag("7.3", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" @@ -902,6 +1076,9 @@ target "php73-cli-node14" { # thecodingmachine/php:7.3-v4-cli-node12 target "php73-cli-node12" { + contexts = { + baseapp = "target:php73-cli" + } inherits = ["default"] tags = tag("7.3", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" @@ -913,6 +1090,9 @@ target "php73-cli-node12" { # thecodingmachine/php:7.3-v4-cli-node10 target "php73-cli-node10" { + contexts = { + baseapp = "target:php73-cli" + } inherits = ["default"] tags = tag("7.3", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" @@ -938,6 +1118,9 @@ target "php72-slim-apache" { # thecodingmachine/php:7.2-v4-apache target "php72-apache" { + contexts = { + baseapp = "target:php72-slim-apache" + } inherits = ["default"] tags = tag("7.2", "apache", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache" @@ -949,6 +1132,9 @@ target "php72-apache" { # thecodingmachine/php:7.2-v4-apache-node16 target "php72-apache-node16" { + contexts = { + baseapp = "target:php72-apache" + } inherits = ["default"] tags = tag("7.2", "apache-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node16" @@ -960,6 +1146,9 @@ target "php72-apache-node16" { # thecodingmachine/php:7.2-v4-apache-node14 target "php72-apache-node14" { + contexts = { + baseapp = "target:php72-apache" + } inherits = ["default"] tags = tag("7.2", "apache-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node14" @@ -971,6 +1160,9 @@ target "php72-apache-node14" { # thecodingmachine/php:7.2-v4-apache-node12 target "php72-apache-node12" { + contexts = { + baseapp = "target:php72-apache" + } inherits = ["default"] tags = tag("7.2", "apache-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node12" @@ -982,6 +1174,9 @@ target "php72-apache-node12" { # thecodingmachine/php:7.2-v4-apache-node10 target "php72-apache-node10" { + contexts = { + baseapp = "target:php72-apache" + } inherits = ["default"] tags = tag("7.2", "apache-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.apache.node10" @@ -1007,6 +1202,9 @@ target "php72-slim-fpm" { # thecodingmachine/php:7.2-v4-fpm target "php72-fpm" { + contexts = { + baseapp = "target:php72-slim-fpm" + } inherits = ["default"] tags = tag("7.2", "fpm", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm" @@ -1018,6 +1216,9 @@ target "php72-fpm" { # thecodingmachine/php:7.2-v4-fpm-node16 target "php72-fpm-node16" { + contexts = { + baseapp = "target:php72-fpm" + } inherits = ["default"] tags = tag("7.2", "fpm-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node16" @@ -1029,6 +1230,9 @@ target "php72-fpm-node16" { # thecodingmachine/php:7.2-v4-fpm-node14 target "php72-fpm-node14" { + contexts = { + baseapp = "target:php72-fpm" + } inherits = ["default"] tags = tag("7.2", "fpm-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node14" @@ -1040,6 +1244,9 @@ target "php72-fpm-node14" { # thecodingmachine/php:7.2-v4-fpm-node12 target "php72-fpm-node12" { + contexts = { + baseapp = "target:php72-fpm" + } inherits = ["default"] tags = tag("7.2", "fpm-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node12" @@ -1051,6 +1258,9 @@ target "php72-fpm-node12" { # thecodingmachine/php:7.2-v4-fpm-node10 target "php72-fpm-node10" { + contexts = { + baseapp = "target:php72-fpm" + } inherits = ["default"] tags = tag("7.2", "fpm-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.fpm.node10" @@ -1076,6 +1286,9 @@ target "php72-slim-cli" { # thecodingmachine/php:7.2-v4-cli target "php72-cli" { + contexts = { + baseapp = "target:php72-slim-cli" + } inherits = ["default"] tags = tag("7.2", "cli", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli" @@ -1087,6 +1300,9 @@ target "php72-cli" { # thecodingmachine/php:7.2-v4-cli-node16 target "php72-cli-node16" { + contexts = { + baseapp = "target:php72-cli" + } inherits = ["default"] tags = tag("7.2", "cli-node16", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node16" @@ -1098,6 +1314,9 @@ target "php72-cli-node16" { # thecodingmachine/php:7.2-v4-cli-node14 target "php72-cli-node14" { + contexts = { + baseapp = "target:php72-cli" + } inherits = ["default"] tags = tag("7.2", "cli-node14", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node14" @@ -1109,6 +1328,9 @@ target "php72-cli-node14" { # thecodingmachine/php:7.2-v4-cli-node12 target "php72-cli-node12" { + contexts = { + baseapp = "target:php72-cli" + } inherits = ["default"] tags = tag("7.2", "cli-node12", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node12" @@ -1120,6 +1342,9 @@ target "php72-cli-node12" { # thecodingmachine/php:7.2-v4-cli-node10 target "php72-cli-node10" { + contexts = { + baseapp = "target:php72-cli" + } inherits = ["default"] tags = tag("7.2", "cli-node10", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.cli.node10" diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 170bfd4d..5970ae9a 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -38,6 +38,7 @@ if [ -n "$PECL_EXTENSION" ]; then fi if [ -n "$USE_PECL" ]; then + pecl channel-update pecl.php.net && pecl channel-update pear.php.net pecl install $PECL_EXTENSION else pickle install $PECL_EXTENSION diff --git a/utils/Dockerfile.blueprint b/utils/Dockerfile.blueprint index 418b462a..8034526f 100644 --- a/utils/Dockerfile.blueprint +++ b/utils/Dockerfile.blueprint @@ -1,22 +1,15 @@ -{{- $variant := .Orbit.variant -}} - ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-{{ $variant }} - -ONBUILD ARG TARGETOS -ONBUILD ARG TARGETARCH -ONBUILD ARG BLACKFIRE_VERSION=1 -ENV CONTAINER_OS=${TARGETOS} -ENV CONTAINER_ARCH=${TARGETARCH} -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - - +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-{{ .Orbit.variant }} as baseapp LABEL authors="Julien Neuhart , David Négrier " +ARG TARGETOS +ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 + # |-------------------------------------------------------------------------- # | Main PHP extensions # |-------------------------------------------------------------------------- diff --git a/utils/Dockerfile.node.blueprint b/utils/Dockerfile.node.blueprint index 1519dfbb..2f959b1d 100644 --- a/utils/Dockerfile.node.blueprint +++ b/utils/Dockerfile.node.blueprint @@ -1,30 +1,24 @@ -{{- $variant := .Orbit.variant -}} -{{- $node_version := .Orbit.node_version -}} +FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-{{ .Orbit.variant }} as baseapp +LABEL authors="Julien Neuhart , David Négrier " -ARG PHP_VERSION -ARG GLOBAL_VERSION ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 -FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-{{ $variant }} - -LABEL authors="Julien Neuhart , David Négrier " - USER root ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_{{ $node_version }}.x | bash - && \ + curl -sL https://deb.nodesource.com/setup_{{ .Orbit.node_version }}.x | bash - && \ apt-get update && \ apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm{{ if eq "10" $node_version }}@^6.14{{end}} && \ + npm install -g npm{{ if eq "10" .Orbit.node_version }}@^6.14{{end}} && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index f295bd12..21f6874d 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -1,7 +1,4 @@ -{{- $variant := .Orbit.variant -}} - -FROM --platform=$BUILDPLATFORM ubuntu:20.04 - +FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " # Fixes some weird terminal issues such as broken clear / CTRL+L @@ -11,15 +8,17 @@ LABEL authors="Julien Neuhart , David Négrier < ENV DEBIAN_FRONTEND=noninteractive ARG PHP_VERSION -ENV PHP_VERSION=$PHP_VERSION -ONBUILD ARG TARGETOS -ONBUILD ARG TARGETARCH -ONBUILD ARG BLACKFIRE_VERSION=1 -ARG BLACKFIRE_VERSION=1 ARG TARGETOS ARG TARGETARCH +ARG BLACKFIRE_VERSION=1 +ONBUILD ARG TARGETOS=${TARGETOS} +ONBUILD ARG TARGETARCH=${TARGETARCH} +ONBUILD ARG BLACKFIRE_VERSION=${BLACKFIRE_VERSION} +ENV TARGETOS=${TARGETOS} +ENV TARGETARCH=${TARGETARCH} ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} +ENV PHP_VERSION=${PHP_VERSION} # |-------------------------------------------------------------------------- # | Main PHP extensions @@ -150,7 +149,7 @@ RUN composer global require bamarni/symfony-console-autocomplete && \ USER root -{{if eq $variant "apache" }} +{{if eq .Orbit.variant "apache" }} ENV APACHE_CONFDIR /etc/apache2 ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars @@ -226,7 +225,7 @@ RUN rm /etc/php/${PHP_VERSION}/apache2/php.ini RUN a2enmod rewrite {{end}} -{{if eq $variant "fpm" }} +{{if eq .Orbit.variant "fpm" }} RUN apt-get update \ && apt-get install -y --no-install-recommends php${PHP_VERSION}-fpm \ && apt-get clean \ @@ -240,14 +239,14 @@ COPY utils/fpm-zz-docker.conf /etc/php/${PHP_VERSION}/fpm/pool.d/zz-docker.conf {{end}} -{{if eq $variant "cli" }} +{{if eq .Orbit.variant "cli" }} RUN mkdir -p /usr/src/app && chown docker:docker /usr/src/app WORKDIR /usr/src/app {{end}} -{{if eq $variant "fpm" }} +{{if eq .Orbit.variant "fpm" }} RUN mkdir -p /var/www/html && chown -R docker: /var/www {{end}} -{{if or (eq $variant "apache") (eq $variant "fpm") }} +{{if or (eq .Orbit.variant "apache") (eq .Orbit.variant "fpm") }} RUN chown docker:docker /var/www/html WORKDIR /var/www/html {{end}} @@ -307,7 +306,7 @@ RUN sed -i 's#/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin#/usr/ # | Defines the entrypoint. # | -ENV IMAGE_VARIANT={{$variant}} +ENV IMAGE_VARIANT={{ .Orbit.variant }} # Add Tini (to be able to stop the container with ctrl-c). # See: https://github.com/krallin/tini @@ -317,7 +316,7 @@ RUN chmod +x /tini COPY utils/generate_cron.php /usr/local/bin/generate_cron.php COPY utils/startup_commands.php /usr/local/bin/startup_commands.php -{{if eq $variant "apache" }} +{{if eq .Orbit.variant "apache" }} COPY utils/enable_apache_mods.php /usr/local/bin/enable_apache_mods.php COPY utils/apache-expose-envvars.sh /usr/local/bin/apache-expose-envvars.sh {{end}} @@ -329,7 +328,7 @@ RUN ln -s ${PHP_VERSION} /usr/local/lib/thecodingmachine-php/extensions/current ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] -{{if eq $variant "apache" }} +{{if eq .Orbit.variant "apache" }} # Let's register a servername to remove the message "apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message" RUN echo "ServerName localhost" > /etc/apache2/conf-available/servername.conf RUN a2enconf servername @@ -348,19 +347,19 @@ CMD ["apache2-foreground"] ENV APACHE_RUN_USER=docker \ APACHE_RUN_GROUP=docker {{end}} -{{if eq $variant "cli" }} +{{if eq .Orbit.variant "cli" }} CMD ["php", "-v"] {{end}} -{{if eq $variant "fpm" }} +{{if eq .Orbit.variant "fpm" }} CMD ["php-fpm"] {{end}} RUN touch /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini && ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${PHP_VERSION}/cli/conf.d/generated_conf.ini -{{if eq $variant "apache" }} +{{if eq .Orbit.variant "apache" }} RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${PHP_VERSION}/apache2/conf.d/generated_conf.ini {{end}} -{{if eq $variant "fpm" }} +{{if eq .Orbit.variant "fpm" }} RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${PHP_VERSION}/fpm/conf.d/generated_conf.ini && \ sed -i 's/^user = www-data/;user = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i 's/^group = www-data/;group = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ @@ -394,8 +393,11 @@ ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ && echo $SUPERCRONIC_URL \ && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ + && if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ + elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ + else echo "Target arch '$TARGETARCH' is not supported"; fi; \ && curl -fsSLO "$SUPERCRONIC_URL" \ -# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ + && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ && chmod +x "$SUPERCRONIC" \ && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 050ed677..ed7ef268 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -57,6 +57,9 @@ target "php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" { # thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }} target "php{{ $phpV | replace "." "" }}-{{ $variant }}" { + contexts = { + baseapp = "target:php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" + } inherits = ["default"] tags = tag("{{ $phpV }}", "{{ $variant }}", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.{{ $variant }}" @@ -68,6 +71,9 @@ target "php{{ $phpV | replace "." "" }}-{{ $variant }}" { {{range $nodeV := $nodeVersions}} # thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }}-node{{ $nodeV }} target "php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}" { + contexts = { + baseapp = "target:php{{ $phpV | replace "." "" }}-{{ $variant }}" + } inherits = ["default"] tags = tag("{{ $phpV }}", "{{ $variant }}-node{{ $nodeV }}", "${PHP_PATCH_MINOR}") dockerfile = "Dockerfile.{{ $variant }}.node{{ $nodeV }}" From 799d10e35583d8e374dd3c6f9199300a4ae86719 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Tue, 30 Aug 2022 11:56:49 +0200 Subject: [PATCH 106/162] Hotfix push patched --- .github/workflows/workflow.yml | 38 +++++++++---- docker-bake.hcl | 97 ++++++++++++++++++++++++++++----- utils/docker-bake.blueprint.hcl | 13 +++-- 3 files changed, 117 insertions(+), 31 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 03a3ec94..feeb621e 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -14,8 +14,8 @@ jobs: build_test_maybe_release: strategy: matrix: - variant: ['cli','apache','fpm'] php_version: ['8.1','8.0','7.4', '7.3','7.2'] + variant: ['apache','cli','fpm'] runs-on: ubuntu-latest steps: - name: Set up QEMU @@ -24,13 +24,23 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Checkout uses: actions/checkout@v1 - - name: Build locally - run: | - PHP_VERSION="${{ matrix.php_version }}" - docker buildx bake --load \ - --set "*.platform=linux/amd64" \ - php${PHP_VERSION//.}-${{ matrix.variant }} - docker images --filter=reference=thecodingmachine/php +# - name: Build locally +# run: | +# PHP_VERSION="${{ matrix.php_version }}" +# docker buildx bake --load \ +# --set "*.platform=linux/amd64" \ +# php${PHP_VERSION//.}-slim-${{ matrix.variant }} +# docker buildx bake --load \ +# --set "*.platform=linux/amd64" \ +# php${PHP_VERSION//.}-${{ matrix.variant }}-all +# PHP_VERSION_MINOR=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-cli php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` +# echo "PHP_VERSION_MINOR=${PHP_VERSION_MINOR}" >> $GITHUB_ENV +# echo "PHP Version : ${PHP_VERSION_MINOR}" >> $GITHUB_STEP_SUMMARY +# docker images --filter=reference=thecodingmachine/php >> $GITHUB_STEP_SUMMARY +# - name: Test ${{ matrix.variant }} +# run: | +# PHP_VERSION="${{ matrix.php_version }}" BRANCH=v4 VARIANT=${{ matrix.variant }} ./test-image.sh +# echo "${{ matrix.variant }} variant OK" >> $GITHUB_STEP_SUMMARY - name: Login to DockerHub # Merge ~ push. if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} @@ -42,10 +52,14 @@ jobs: # Merge ~ push. if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} run: | - PHP_VERSION="${{ matrix.php_version }}" \ - PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` \ - PHP_PATCH_MINOR="${PHP_PATCH_VERSION}" \ + PHP_VERSION="${{ matrix.php_version }}" + docker buildx bake \ + --set "*.platform=linux/amd64,linux/arm64" \ + --set "*.output=type=registry" \ + php${PHP_VERSION//.}-slim-${{ matrix.variant }} + PHP_PATCH_MINOR=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-cli php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` \ docker buildx bake \ --set "*.platform=linux/amd64,linux/arm64" \ --set "*.output=type=registry" \ - php${PHP_VERSION//.}-${{ matrix.variant }} + php${PHP_VERSION//.}-${{ matrix.variant }}-all + docker images --filter=reference=thecodingmachine/php >> $GITHUB_STEP_SUMMARY diff --git a/docker-bake.hcl b/docker-bake.hcl index 0deadf60..138030f8 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -11,62 +11,129 @@ group "default" { ] } -group "php81" { +group "php81-apache-all" { targets = [ "php81-slim-apache", "php81-apache", - "php81-apache-node16","php81-apache-node14","php81-apache-node12","php81-apache-node10","php81-slim-fpm", + "php81-apache-node16","php81-apache-node14","php81-apache-node12","php81-apache-node10", + ] +} +group "php81-fpm-all" { + targets = [ + "php81-slim-fpm", "php81-fpm", - "php81-fpm-node16","php81-fpm-node14","php81-fpm-node12","php81-fpm-node10","php81-slim-cli", + "php81-fpm-node16","php81-fpm-node14","php81-fpm-node12","php81-fpm-node10", + ] +} +group "php81-cli-all" { + targets = [ + "php81-slim-cli", "php81-cli", "php81-cli-node16","php81-cli-node14","php81-cli-node12","php81-cli-node10", ] } -group "php80" { +group "php80-apache-all" { targets = [ "php80-slim-apache", "php80-apache", - "php80-apache-node16","php80-apache-node14","php80-apache-node12","php80-apache-node10","php80-slim-fpm", + "php80-apache-node16","php80-apache-node14","php80-apache-node12","php80-apache-node10", + ] +} +group "php80-fpm-all" { + targets = [ + "php80-slim-fpm", "php80-fpm", - "php80-fpm-node16","php80-fpm-node14","php80-fpm-node12","php80-fpm-node10","php80-slim-cli", + "php80-fpm-node16","php80-fpm-node14","php80-fpm-node12","php80-fpm-node10", + ] +} +group "php80-cli-all" { + targets = [ + "php80-slim-cli", "php80-cli", "php80-cli-node16","php80-cli-node14","php80-cli-node12","php80-cli-node10", ] } -group "php74" { +group "php74-apache-all" { targets = [ "php74-slim-apache", "php74-apache", - "php74-apache-node16","php74-apache-node14","php74-apache-node12","php74-apache-node10","php74-slim-fpm", + "php74-apache-node16","php74-apache-node14","php74-apache-node12","php74-apache-node10", + ] +} +group "php74-fpm-all" { + targets = [ + "php74-slim-fpm", "php74-fpm", - "php74-fpm-node16","php74-fpm-node14","php74-fpm-node12","php74-fpm-node10","php74-slim-cli", + "php74-fpm-node16","php74-fpm-node14","php74-fpm-node12","php74-fpm-node10", + ] +} +group "php74-cli-all" { + targets = [ + "php74-slim-cli", "php74-cli", "php74-cli-node16","php74-cli-node14","php74-cli-node12","php74-cli-node10", ] } -group "php73" { +group "php73-apache-all" { targets = [ "php73-slim-apache", "php73-apache", - "php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10","php73-slim-fpm", + "php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10", + ] +} +group "php73-fpm-all" { + targets = [ + "php73-slim-fpm", "php73-fpm", - "php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10","php73-slim-cli", + "php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10", + ] +} +group "php73-cli-all" { + targets = [ + "php73-slim-cli", "php73-cli", "php73-cli-node16","php73-cli-node14","php73-cli-node12","php73-cli-node10", ] } -group "php72" { +group "php72-apache-all" { targets = [ "php72-slim-apache", "php72-apache", - "php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10","php72-slim-fpm", + "php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10", + ] +} +group "php72-fpm-all" { + targets = [ + "php72-slim-fpm", "php72-fpm", - "php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10","php72-slim-cli", + "php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10", + ] +} +group "php72-cli-all" { + targets = [ + "php72-slim-cli", "php72-cli", "php72-cli-node16","php72-cli-node14","php72-cli-node12","php72-cli-node10", ] } + +group "php81" { + targets = ["php81-apache-all","php81-fpm-all","php81-cli-all",] +} +group "php80" { + targets = ["php80-apache-all","php80-fpm-all","php80-cli-all",] +} +group "php74" { + targets = ["php74-apache-all","php74-fpm-all","php74-cli-all",] +} +group "php73" { + targets = ["php73-apache-all","php73-fpm-all","php73-cli-all",] +} +group "php72" { + targets = ["php72-apache-all","php72-fpm-all","php72-cli-all",] +} + variable "REPO" {default = "thecodingmachine/php"} variable "PHP_PATCH_MINOR" {default = ""} variable "GLOBAL_VERSION" {default = "v4"} diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index ed7ef268..616bb200 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -5,13 +5,18 @@ group "default" { "php{{ $phpV | replace "." "" }}",{{end}} ] } -{{range $phpV := $versions}} -group "php{{ $phpV | replace "." "" }}" { +{{range $phpV := $versions}}{{range $variant := $variants}} +group "php{{ $phpV | replace "." "" }}-{{ $variant }}-all" { targets = [ - {{range $variant := $variants}}"php{{ $phpV | replace "." "" }}-slim-{{ $variant }}", + "php{{ $phpV | replace "." "" }}-slim-{{ $variant }}", "php{{ $phpV | replace "." "" }}-{{ $variant }}", - {{range $nodeV := $nodeVersions}}"php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}",{{end}}{{end}} + {{range $nodeV := $nodeVersions}}"php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}",{{end}} ] +}{{end}}{{end}} + +{{range $phpV := $versions}} +group "php{{ $phpV | replace "." "" }}" { + targets = [{{range $variant := $variants}}"php{{ $phpV | replace "." "" }}-{{ $variant }}-all",{{end}}] }{{end}} variable "REPO" {default = "thecodingmachine/php"} From 4f33616c7d03d307f81e63325773ea5fee485cb3 Mon Sep 17 00:00:00 2001 From: Mistral Oz <2956113+mistraloz@users.noreply.github.com> Date: Sat, 3 Sep 2022 19:16:23 +0200 Subject: [PATCH 107/162] Disable schedule action --- .github/workflows/workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index feeb621e..120fcdab 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -7,8 +7,8 @@ on: push: branches: - 'v4' - schedule: - - cron: '42 3 * * 0' +# schedule: +# - cron: '42 3 * * 0' jobs: build_test_maybe_release: From 02ab01bb2bf1cec5a587b0820e0e0c7fd6682d32 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:24:22 +0200 Subject: [PATCH 108/162] Implement test with bash_unit --- .gitignore | 3 +- Makefile | 6 +- test-image.sh | 225 --------- tests-suite/README.md | 25 + .../assets}/apache/echo_memory_limit.php | 0 .../assets/apache/htaccess}/.htaccess | 0 .../assets/apache/htaccess}/test.php | 0 .../assets/apache/index.php | 0 .../assets}/composer/Dockerfile | 4 +- .../assets}/composer/composer.json | 0 {tests => tests-suite/assets/php-ini}/php.ini | 0 {tests => tests-suite/assets}/startup.sh | 0 tests-suite/bash_unit | 469 ++++++++++++++++++ tests-suite/config | 37 ++ tests-suite/onbuild.sh | 65 +++ tests-suite/php-blackfire.sh | 21 + tests-suite/php-extensions.sh | 36 ++ tests-suite/php-ini.sh | 58 +++ tests-suite/php-xdebug.sh | 23 + tests-suite/tool-startup-command.sh | 27 + tests-suite/tool-supercronic.sh | 38 ++ tests-suite/users-rights.sh | 68 +++ tests-suite/variant-apache.sh | 71 +++ tests-suite/variant-fpm.sh | 24 + tests/apache/composer.json | 7 - tests/slim_onbuild/Dockerfile | 6 - tests/slim_onbuild_composer/Dockerfile | 11 - tests/slim_onbuild_composer/composer.json | 5 - 28 files changed, 970 insertions(+), 259 deletions(-) delete mode 100755 test-image.sh create mode 100644 tests-suite/README.md rename {tests => tests-suite/assets}/apache/echo_memory_limit.php (100%) rename {tests/testHtAccess => tests-suite/assets/apache/htaccess}/.htaccess (100%) rename {tests/testHtAccess => tests-suite/assets/apache/htaccess}/test.php (100%) rename tests/test.php => tests-suite/assets/apache/index.php (100%) rename {tests => tests-suite/assets}/composer/Dockerfile (65%) rename {tests => tests-suite/assets}/composer/composer.json (100%) rename {tests => tests-suite/assets/php-ini}/php.ini (100%) rename {tests => tests-suite/assets}/startup.sh (100%) create mode 100755 tests-suite/bash_unit create mode 100755 tests-suite/config create mode 100755 tests-suite/onbuild.sh create mode 100755 tests-suite/php-blackfire.sh create mode 100755 tests-suite/php-extensions.sh create mode 100755 tests-suite/php-ini.sh create mode 100755 tests-suite/php-xdebug.sh create mode 100755 tests-suite/tool-startup-command.sh create mode 100755 tests-suite/tool-supercronic.sh create mode 100755 tests-suite/users-rights.sh create mode 100755 tests-suite/variant-apache.sh create mode 100755 tests-suite/variant-fpm.sh delete mode 100644 tests/apache/composer.json delete mode 100644 tests/slim_onbuild/Dockerfile delete mode 100644 tests/slim_onbuild_composer/Dockerfile delete mode 100644 tests/slim_onbuild_composer/composer.json diff --git a/.gitignore b/.gitignore index 48e1dca8..723ef36f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -.idea -tmp \ No newline at end of file +.idea \ No newline at end of file diff --git a/Makefile b/Makefile index 71f16929..e672b4dc 100644 --- a/Makefile +++ b/Makefile @@ -16,16 +16,18 @@ test-quick: ## Test 8.0 and 8.1 quickly test-8.1: ## Test php8.1 build only VERSION=8.1 VARIANT=cli $(MAKE) _test-version VERSION=8.1 VARIANT=apache $(MAKE) _test-version + VERSION=8.1 VARIANT=fpm $(MAKE) _test-version test-8.0: ## Test php8.0 build only VERSION=8.0 VARIANT=cli $(MAKE) _test-version VERSION=8.0 VARIANT=apache $(MAKE) _test-version + VERSION=8.0 VARIANT=fpm $(MAKE) _test-version _test-version: _test-prerequisites ## Test php build for VERSION="" and VARIANT="" docker buildx bake --load \ --set "*.platform=$$(uname -p)" \ - php$${VERSION//.}-cli - PHP_VERSION="$(VERSION)" BRANCH=v4 VARIANT=cli ./test-image.sh || (notify-send -u critical "Tests failed ($(VERSION)-$(VARIANT))" && exit 1) + php$${VERSION//.}-$(VARIANT)-all + PHP_VERSION="$(VERSION)" BRANCH=v4 VARIANT=$(VARIANT) ./tests-suite/bash_unit -f tap ./tests-suite/*.sh || (notify-send -u critical "Tests failed ($(VERSION)-$(VARIANT))" && exit 1) notify-send -u critical "Tests passed with success ($(VERSION)-$(VARIANT))" clean: ## Clean dangles image after build diff --git a/test-image.sh b/test-image.sh deleted file mode 100755 index 18f73328..00000000 --- a/test-image.sh +++ /dev/null @@ -1,225 +0,0 @@ -#!/usr/bin/env bash - -set -eE -o functrace - -failure() { - local lineno=$1 - local msg=$2 - echo "Failed at $lineno: $msg" -} -trap 'failure ${LINENO} "$BASH_COMMAND"' ERR - -# Use either docker's 'build' command or 'buildx ' -export BUILDTOOL="buildx build --load --platform=${PLATFORM:-$(uname -p)}" - -# Let's replace the "." by a "-" with some bash magic -export BRANCH_VARIANT="${VARIANT//./-}" - -# Build with BuildKit https://docs.docker.com/develop/develop-images/build_enhancements/ -export DOCKER_BUILDKIT=1 # Force use of BuildKit -export BUILDKIT_STEP_LOG_MAX_SIZE=10485760 # output log limit fixed to 10MiB - -# Let's build the "slim" image. -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" --build-arg BLACKFIRE_VERSION="${BLACKFIRE_VERSION}" -f "Dockerfile.slim.${VARIANT}" . - -# Let's check that the extensions can be built using the "ONBUILD" statement -docker $BUILDTOOL -t test/slim_onbuild --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/slim_onbuild -# This should run ok (the sudo disable environment variables but call to composer proxy does not trigger PHP ini file regeneration) -docker run --rm test/slim_onbuild php -m | grep sockets -docker run --rm test/slim_onbuild php -m | grep pdo_pgsql -docker run --rm test/slim_onbuild php -m | grep pdo_sqlite -docker rmi test/slim_onbuild - -# Let's check that the extensions are available for composer using "ARG PHP_EXTENSIONS" statement: -docker $BUILDTOOL -t test/slim_onbuild_composer --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/slim_onbuild_composer -docker rmi test/slim_onbuild_composer - -echo "Running post-build unit tests" -# Post build unit tests -if [[ $VARIANT == cli* ]]; then CONTAINER_CWD=/usr/src/app; else CONTAINER_CWD=/var/www/html; fi -# Default user is 1000 -RESULT="$(docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" id -ur)" -[[ "$RESULT" == "1000" ]] - -# If mounted, default user has the id of the mount directory -mkdir user1999 && docker run --rm -v "$(pwd)":/mnt busybox chown 1999:1999 /mnt/user1999 -ls -al user1999 -RESULT="$(docker run --rm -v "$(pwd)"/user1999:$CONTAINER_CWD "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" id -ur)" -[[ "$RESULT" == "1999" ]] - -# Also, the default user can write on stdout and stderr -docker run --rm -v "$(pwd)"/user1999:$CONTAINER_CWD "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" bash -c "echo TEST > /proc/self/fd/2" - -rm -rf user1999 - -# and it also works for users with existing IDs in the container -mkdir -p user33 -cp tests/apache/composer.json user33/ -docker run --rm -v "$(pwd)":/mnt busybox chown -R 33:33 /mnt/user33 -ls -al user33 -RESULT="$(docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" id -ur)" -[[ "$RESULT" == "33" ]] -RESULT="$(docker run --rm -v "$(pwd)"/user33:$CONTAINER_CWD "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" composer update -vvv)" -docker run --rm -v "$(pwd)":/mnt busybox rm -rf /mnt/user33 - -#Let's check that mbstring is enabled by default (they are compiled in PHP) -docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep mbstring -docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep PDO -# SQLite is disabled -# docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep pdo_sqlite - -if [[ $VARIANT == apache* ]]; then - # Test if environment variables are passed to PHP - DOCKER_CID="$(docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" - # Let's wait for Apache to start - sleep 5 - - RESULT="$(curl http://localhost:81/tests/test.php)" - [[ "$RESULT" == "foo" ]] - docker stop "$DOCKER_CID" - - # Test Apache document root (relative) - DOCKER_CID="$(docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html -e APACHE_DOCUMENT_ROOT=tests "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" - # Let's wait for Apache to start - sleep 5 - RESULT="$(curl http://localhost:81/test.php)" - [[ "$RESULT" == "foo" ]] - docker stop "$DOCKER_CID" - - # Test Apache document root (absolute) - DOCKER_CID="$(docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/foo -e APACHE_DOCUMENT_ROOT=/var/www/foo/tests "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" - # Let's wait for Apache to start - sleep 5 - RESULT="$(curl http://localhost:81/test.php)" - [[ "$RESULT" == "foo" ]] - docker stop "$DOCKER_CID" - - # Test Apache HtAccess - DOCKER_CID="$(docker run --rm -p "81:80" -d -v "$(pwd)"/tests/testHtAccess:/foo -e APACHE_DOCUMENT_ROOT=/foo "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" - # Let's wait for Apache to start - sleep 5 - RESULT="$(curl http://localhost:81/)" - [[ "$RESULT" == "foo" ]] - docker stop "$DOCKER_CID" - - # Test PHP_INI_... variables are correctly handled by apache - DOCKER_CID="$(docker run --rm -e MYVAR=foo -p "81:80" -d -v "$(pwd)":/var/www/html -e PHP_INI_MEMORY_LIMIT=2G "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" - # Let's wait for Apache to start - sleep 5 - RESULT="$(curl http://localhost:81/tests/apache/echo_memory_limit.php)" - [[ "$RESULT" == "2G" ]] - docker stop "$DOCKER_CID" -fi - -if [[ $VARIANT == fpm* ]]; then - # Test if environment starts without errors - DOCKER_CID="$(docker run --rm -p "9000:9000" -d -v "$(pwd)":/var/www/html "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}")" - - # Let's wait for FPM to start - sleep 5 - - # If the container is still up, it will not fail when stopping. - docker stop "$DOCKER_CID" -fi - -# Let's check that the access to cron will fail with a message -set +e -RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo 'foobar')" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -o 'Cron is not available in this image')" -set -e -[[ "$RESULT" == "Cron is not available in this image" ]] - -# Let's check that the configuration is loaded from the correct php.ini (development, production or imported in the image) -RESULT="$(docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" -[[ "$RESULT" == "error_reporting => 32767 => 32767" ]] - -RESULT="$(docker run --rm -e TEMPLATE_PHP_INI=production "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" -[[ "$RESULT" == "error_reporting => 22527 => 22527" ]] - -RESULT="$(docker run --rm -v "$(pwd)/tests/php.ini:/etc/php/${PHP_VERSION}/cli/php.ini" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" -[[ "$RESULT" == "error_reporting => 24575 => 24575" ]] - -RESULT="$(docker run --rm -e PHP_INI_ERROR_REPORTING="E_ERROR | E_WARNING" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" -[[ "$RESULT" == "error_reporting => 3 => 3" ]] - -# Tests that environment variables with an equal sign are correctly handled -RESULT="$(docker run --rm -e PHP_INI_SESSION__SAVE_PATH="tcp://localhost?auth=yourverycomplex\"passwordhere" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep "session.save_path")" -[[ "$RESULT" == "session.save_path => tcp://localhost?auth=yourverycomplex\"passwordhere => tcp://localhost?auth=yourverycomplex\"passwordhere" ]] - -# Tests that the SMTP parameter is set in uppercase -RESULT="$(docker run --rm -e PHP_INI_SMTP="192.168.0.1" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep "^SMTP")" -[[ "$RESULT" == "SMTP => 192.168.0.1 => 192.168.0.1" ]] - -# Tests that environment variables are passed to startup scripts when UID is set -RESULT="$(docker run --rm -e FOO="bar" -e STARTUP_COMMAND_1="env" -e UID=0 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" sleep 1 | grep "FOO")" -[[ "$RESULT" == "FOO=bar" ]] - -# Tests that multi-commands are correctly executed when UID is set -RESULT="$(docker run --rm -e STARTUP_COMMAND_1="cd / && whoami" -e UID=0 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" sleep 1)" -[[ "$RESULT" == "root" ]] - -# Tests that startup.sh is correctly executed -docker run --rm -v "$(pwd)"/tests/startup.sh:/etc/container/startup.sh "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | grep "startup.sh executed" - -# Tests that disable_functions is commented in php.ini cli -RESULT="$(docker run --rm "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep "disable_functions")" -[[ "$RESULT" == "disable_functions => no value => no value" ]] - -################################# -# Let's build the "fat" image -################################# -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}" . - -# Let's check that the crons are actually sending logs in the right place -RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo 'foobar')" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=foobar' | head -n1)" -[[ "$RESULT" == "msg=foobar" ]] - -RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&2 echo 'error')" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=error' | head -n1)" -[[ "$RESULT" == "msg=error" ]] - -# Let's check that the cron with a user different from root is actually run. -RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami" -e CRON_USER_1="docker" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=docker' | head -n1)" -[[ "$RESULT" == "msg=docker" ]] - -# Let's check that 2 commands split with a ; are run by the same user. -RESULT="$(docker run --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami;whoami" -e CRON_USER_1="docker" "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=docker' | wc -l)" -[[ "$RESULT" -gt "1" ]] - -# Let's check that mbstring cannot extension cannot be disabled -# Disabled because no more used in setup_extensions.php -#set +e -#docker run --rm -e PHP_EXTENSION_MBSTRING=0 thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} php -i -#[[ "$?" = "1" ]] -#set -e - -# Let's check that the "xdebug.client_host" contains a value different from "no value" -docker run --rm -e PHP_EXTENSION_XDEBUG=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -i | grep xdebug.client_host | grep -v "no value" - -# Let's check that "xdebug.mode" is set to "debug" by default -docker run --rm -e PHP_EXTENSION_XDEBUG=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -i | grep xdebug.mode | grep "debug" - -# Let's check that "xdebug.mode" is properly overridden -docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_INI_XDEBUG__MODE=debug,coverage "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -i | grep xdebug.mode | grep "debug,coverage" - -if [[ "${PHP_VERSION}" != "8.1" ]]; then - # Tests that blackfire + xdebug will output an error - RESULT="$(docker run --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_EXTENSION_BLACKFIRE=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -v 2>&1 | grep 'WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire.')" - [[ "$RESULT" == "WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire." ]] - # Check that blackfire can be enabled - docker run --rm -e PHP_EXTENSION_BLACKFIRE=1 "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -m | grep blackfire -fi -# Let's check that the extensions are enabled when composer is run -docker $BUILDTOOL -t test/composer_with_gd --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" tests/composer - -# This should run ok (the sudo disables environment variables but call to composer proxy does not trigger PHP ini file regeneration) -docker run --rm test/composer_with_gd sudo composer update -docker rmi test/composer_with_gd - -################################# -# Let's build the "node" images -################################# -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node10" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node10" . -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node12" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node12" . -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node14" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node14" . -docker $BUILDTOOL -t "thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node16" --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg GLOBAL_VERSION="${BRANCH}" -f "Dockerfile.${VARIANT}.node16" . - -echo "Tests passed with success" diff --git a/tests-suite/README.md b/tests-suite/README.md new file mode 100644 index 00000000..46aa9f81 --- /dev/null +++ b/tests-suite/README.md @@ -0,0 +1,25 @@ +# Test suite + +These tests use bash_unit to allow a clean visualisation of tests. +This file describe some features used here. + +## `./config` file + +This file allow the test suite to have some variables / command already set. You can customize. + +## Setup/teardown + +Like any regular test unit process, you can play command at initialisation of the test, and other at this end. It's used to generate fake directories or start docker commands. The teardown allow to clean directory/started container but if any fatal error happens (or `ctrl+c`), the tear down if not played. So you can have unwanted container started (you need to clean them manually, but it's not require to clean to re-execute because port/name/directory are random and uniq for each test suite). + +## Pipe to `/dev/null` + +Lot of command display result, error, warning. All are forward to /dev/null when it's not relevant (only the exit code is used `$?`). It's maybe usefull to provide a full log on these cases if it's possible to find a solution for that. + +## Uncommon command `tail -n +1` + +When there is comparaison with grep, it's required to prefix by ` | tail -n +1`. It's do nothing at all (only display from the first line to the end) but avoid this warning "write /dev/stdout: broken pipe" if command make too long time for response (required for arm64 testing). + +## `[[ $VARIANT != apache* ]]` + +Some part of the test is not depend on variant of image. Per example here, apache. It's maybe useful to find another way to just ignore the test instead of `exit 0` the full file (bash unit do not manage that currently). + diff --git a/tests/apache/echo_memory_limit.php b/tests-suite/assets/apache/echo_memory_limit.php similarity index 100% rename from tests/apache/echo_memory_limit.php rename to tests-suite/assets/apache/echo_memory_limit.php diff --git a/tests/testHtAccess/.htaccess b/tests-suite/assets/apache/htaccess/.htaccess similarity index 100% rename from tests/testHtAccess/.htaccess rename to tests-suite/assets/apache/htaccess/.htaccess diff --git a/tests/testHtAccess/test.php b/tests-suite/assets/apache/htaccess/test.php similarity index 100% rename from tests/testHtAccess/test.php rename to tests-suite/assets/apache/htaccess/test.php diff --git a/tests/test.php b/tests-suite/assets/apache/index.php similarity index 100% rename from tests/test.php rename to tests-suite/assets/apache/index.php diff --git a/tests/composer/Dockerfile b/tests-suite/assets/composer/Dockerfile similarity index 65% rename from tests/composer/Dockerfile rename to tests-suite/assets/composer/Dockerfile index 6675e180..e33e0a18 100644 --- a/tests/composer/Dockerfile +++ b/tests-suite/assets/composer/Dockerfile @@ -1,8 +1,10 @@ ARG BRANCH ARG BRANCH_VARIANT ARG PHP_VERSION +ARG REPO +ARG TAG_PREFIX -FROM thecodingmachine/php:${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} +FROM ${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT} ENV PHP_EXTENSION_GD=1 diff --git a/tests/composer/composer.json b/tests-suite/assets/composer/composer.json similarity index 100% rename from tests/composer/composer.json rename to tests-suite/assets/composer/composer.json diff --git a/tests/php.ini b/tests-suite/assets/php-ini/php.ini similarity index 100% rename from tests/php.ini rename to tests-suite/assets/php-ini/php.ini diff --git a/tests/startup.sh b/tests-suite/assets/startup.sh similarity index 100% rename from tests/startup.sh rename to tests-suite/assets/startup.sh diff --git a/tests-suite/bash_unit b/tests-suite/bash_unit new file mode 100755 index 00000000..b465dbf4 --- /dev/null +++ b/tests-suite/bash_unit @@ -0,0 +1,469 @@ +#!/usr/bin/env bash +# +# bash unit testing enterprise edition framework for professionals +# Copyright (C) 2011-2016 Pascal Grange +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +# https://github.com/pgrange/bash_unit + +VERSION=v2.0.0 + +ESCAPE=$(printf "\033") +NOCOLOR="${ESCAPE}[0m" +RED="${ESCAPE}[91m" +GREEN="${ESCAPE}[92m" +YELLOW="${ESCAPE}[93m" +BLUE="${ESCAPE}[94m" + +# Make bash_unit immune to some basic unix commands faking +CAT="$(which cat)" +SED="$(which sed)" +GREP="$(which grep)" +RM="$(which rm)" +SHUF="$(which shuf)" + +fail() { + local message=${1:-} + local stdout=${2:-} + local stderr=${3:-} + + notify_test_failed "$__bash_unit_current_test__" "$message" + [[ ! -z $stdout ]] && [ -s "$stdout" ] && notify_stdout < "$stdout" + [[ ! -z $stderr ]] && [ -s "$stderr" ] && notify_stderr < "$stderr" + + stacktrace | notify_stack + exit 1 +} + +assert() { + local assertion=$1 + local message=${2:-} + + _assert_expression \ + "$assertion" \ + "[ \$status == 0 ]" \ + "\"$message\"" +} + +assert_fails() { + local assertion=$1 + local message=${2:-} + + _assert_expression \ + "$assertion" \ + "[ \$status != 0 ]" \ + "\"$message\"" +} + +assert_fail() { + #deprecated, use assert_fails instead + assert_fails "$@" +} + +assert_status_code() { + local expected_status=$1 + local assertion="$2" + local message="${3:-}" + + _assert_expression \ + "$assertion" \ + "[ \$status == $expected_status ]" \ + "\"$message\" expected status code $expected_status but was \$status" +} + +_assert_expression() { + local assertion=$1 + local condition=$2 + local message=$3 + ( + local stdout=$(mktemp) + local stderr=$(mktemp) + trap "$RM -f \"$stdout\" \"$stderr\"" EXIT + + local status + eval "($assertion)" >"$stdout" 2>"$stderr" && status=$? || status=$? + if ! eval "$condition" + then + fail "$(eval echo $message)" "$stdout" "$stderr" + fi + ) || exit $? +} + +assert_equals() { + local expected=$1 + local actual=$2 + local message=${3:-} + [[ -z $message ]] || message="$message\n" + + if [ "$expected" != "$actual" ] + then + fail "$message expected [$expected] but was [$actual]" + fi +} + +assert_not_equals() { + local unexpected=$1 + local actual=$2 + local message=${3:-} + [[ -z $message ]] || message="$message\n" + + [ "$unexpected" != "$actual" ] || \ + fail "$message expected different value than [$unexpected] but was the same" +} + +assert_matches() { + local expected=$1 + local actual=$2 + local message=${3:-} + [[ -z $message ]] || message="$message\n" + + if [[ ! "${actual}" =~ ${expected} ]]; then + fail "$message expected regex [$expected] to match [$actual]" + fi +} + +assert_not_matches() { + local unexpected=$1 + local actual=$2 + local message=${3:-} + [[ -z $message ]] || message="$message\n" + + if [[ "${actual}" =~ ${unexpected} ]]; then + fail "$message expected regex [$unexpected] should not match but matched [$actual]" + fi +} + +assert_no_diff() { + local expected=$1 + local actual=$2 + local message=${3:-} + [[ -z $message ]] || message="$message\n" + + diff -u "${expected}" "${actual}" >/dev/null || \ + fail "$message expected '${actual}' to be identical to '${expected}' but was different" +} + +fake() { + local command=$1 + shift + if [ $# -gt 0 ] + then + eval "function $command() { export FAKE_PARAMS=(\"\$@\") ; $@ ; }" + else + eval "function $command() { echo \"$($CAT)\" ; }" + fi + export -f $command +} + +stacktrace() { + local i=1 + while ! [ -z "${BASH_SOURCE[$i]:-}" ] + do + echo ${BASH_SOURCE[$i]}:${BASH_LINENO[$((i-1))]}:${FUNCNAME[$i]}\(\) + i=$((i + 1)) + done | "$GREP" -v "^$BASH_SOURCE" +} + +run_test_suite() { + local failure=0 + + if run_setup_suite + then + run_tests || failure=$? + else + failure=$? + fi + run_teardown_suite + + return $failure +} + +run_setup_suite() { + if declare -F | "$GREP" ' setup_suite$' >/dev/null + then + setup_suite + fi +} + +maybe_shuffle() { + ((randomise)) && $SHUF || $CAT +} + +run_tests() { + local failure=0 + + for pending_test in $(set | "$GREP" -E '^(pending|todo).* \(\)' | "$GREP" -E "$test_pattern" | "$SED" -e 's: .*::') + do + notify_test_starting "$pending_test" + notify_test_pending "$pending_test" + done + + + for test in $(set | "$GREP" -E '^test.* \(\)' | "$GREP" -E "$test_pattern" | "$SED" -e 's: .*::' | maybe_shuffle) + do + ( + local status=0 + declare -F | "$GREP" ' setup$' >/dev/null && setup + (__bash_unit_current_test__="$test" run_test) || status=$? + declare -F | "$GREP" ' teardown$' >/dev/null && teardown + exit $status + ) + failure=$(( $? || failure)) + done + return $failure +} + +run_test() { + set -e + notify_test_starting "$__bash_unit_current_test__" + "$__bash_unit_current_test__" && notify_test_succeeded "$__bash_unit_current_test__" +} + +run_teardown_suite() { + if declare -F | "$GREP" ' teardown_suite$' >/dev/null + then + teardown_suite + fi +} + +usage() { + echo "$1" >&2 + echo "$0 [-f ] [-p ] [-p ] [-r] ... ..." >&2 + echo >&2 + echo "Runs tests in test files that match s" >&2 + echo " is optional only supported value is tap" >&2 + echo "-r to execute test cases in random order" >&2 + echo "-v to get current version information" >&2 + echo "See https://github.com/pgrange/bash_unit" >&2 + exit 1 +} + +# Formating + +pretty_success() { + pretty_format "$GREEN" "\u2713" "${1:-}" +} + +pretty_warning() { + pretty_format "$YELLOW" "\u2717" "$1" +} + +pretty_failure() { + pretty_format "$RED" "\u2717" "${1:-}" +} + +pretty_format() { + local color="$1" + local pretty_symbol="$2" + local alt_symbol="${3:-}" + local term_utf8=false +#env + if is_terminal && [[ "${LANG:-}" =~ .*UTF-8.* ]] + then + term_utf8=true + fi + ( + $CAT + if $term_utf8 + then + echo -en " $pretty_symbol " + else + [[ ! -z "$alt_symbol" ]] && echo -en " $alt_symbol " + fi + ) | color "$color" +} + +color() { + _start_color() { + if is_terminal ; then echo -en "$color" ; fi + } + _stop_color() { + if is_terminal ; then echo -en "$NOCOLOR" ; fi + } + local color=$1 + shift + _start_color + if [ $# -gt 0 ] + then + echo $* + else + $CAT + fi + _stop_color +} + +is_terminal() { + [ -t 1 ] || [[ "${FORCE_COLOR:-}" == true ]] +} + +text_format() { + notify_suite_starting() { + local test_file="$1" + echo "Running tests in $test_file" + } + notify_test_starting() { + local test="$1" + echo -e -n "\tRunning $test ... " | color "$BLUE" + } + notify_test_pending() { + echo -n "PENDING" | pretty_warning + echo + } + + notify_test_succeeded() { + echo -n "SUCCESS" | pretty_success + echo + } + notify_test_failed() { + local message="$2" + echo -n "FAILURE" | pretty_failure + echo + [[ -z $message ]] || printf -- "$message\n" + } + notify_stdout() { + "$SED" 's:^:out> :' | color "$GREEN" + } + notify_stderr() { + "$SED" 's:^:err> :' | color "$RED" + } + notify_stack() { + color "$YELLOW" + } + notify_suites_succeded() { + echo -n "Overall result: SUCCESS" | pretty_success + echo + } + notify_suites_failed() { + echo -n "Overall result: FAILURE" | pretty_failure + echo + } +} + +tap_format() { + notify_suite_starting() { + local test_file="$1" + echo "# Running tests in $test_file" + } + notify_test_starting() { + : + } + notify_test_pending() { + local test="$1" + echo -n "ok" | pretty_warning - + echo -n "$test" | color "$BLUE" + echo " # skip test to be written" | color "$YELLOW" + } + notify_test_succeeded() { + local test="$1" + echo -n "ok" | pretty_success - + echo "$test" | color "$BLUE" + } + notify_test_failed() { + local test="$1" + local message="$2" + echo -n "not ok" | pretty_failure - + echo "$test" | color "$BLUE" + [[ -z $message ]] || printf -- "$message\n" | "$SED" -u -e 's/^/# /' + } + notify_stdout() { + "$SED" 's:^:# out> :' | color "$GREEN" + } + notify_stderr() { + "$SED" 's:^:# err> :' | color "$RED" + } + notify_stack() { + "$SED" 's:^:# :' | color "$YELLOW" + } + notify_suites_succeded() { + : + } + notify_suites_failed() { + : + } +} + +output_format=text +test_pattern="" +separator="" +randomise=0 +while getopts "vp:f:r" option +do + case "$option" in + p) + test_pattern="${test_pattern}${separator}${OPTARG}" + separator="|" + ;; + f) + output_format="${OPTARG}" + ;; + r) + randomise=1 + ;; + v) + echo "bash_unit $VERSION" + exit + ;; + ?|:) + usage + ;; + esac +done +shift $((OPTIND-1)) + +for test_file in "$@" +do + test -e "$test_file" || usage "file does not exist: $test_file" + test -r "$test_file" || usage "can not read file: $test_file" +done + +case "$output_format" in + text) + text_format + ;; + tap) + tap_format + ;; + *) + usage "unsupported output format: $output_format" + ;; +esac + +#run tests received as parameters +failure=0 +for test_file in "$@" +do + notify_suite_starting "$test_file" + ( + set -e # Ensure bash_unit will exit with failure + # in case of syntax error. + if [[ "${STICK_TO_CWD}" != true ]] + then + cd "$(dirname "$test_file")" + source "$(basename "$test_file")" + else + source "$test_file" + fi + set +e + run_test_suite + ) + failure=$(( $? || failure)) +done + +if ((failure)) +then + notify_suites_failed +else + notify_suites_succeded +fi + +exit $failure diff --git a/tests-suite/config b/tests-suite/config new file mode 100755 index 00000000..b99db27a --- /dev/null +++ b/tests-suite/config @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +export PLATFORM="${PLATFORM:-$(uname -p)}" +export BUILDTOOL="build --platform=${PLATFORM}" +export RUN_OPTIONS="--platform=${PLATFORM}" +export PHP_VERSION=${PHP_VERSION:-8.1} +export BRANCH=${BRANCH:-v4} +export VARIANT=${VARIANT:-apache} +export BRANCH_VARIANT="${VARIANT//./-}" +export REPO="${REPO:-thecodingmachine/php}" +export TAG_PREFIX="${TAG_PREFIX:-}" +export SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +function unused_port() { + N=${1:-1} + comm -23 \ + <(seq "1025" "65535" | sort) \ + <(ss -Htan | + awk '{print $4}' | + cut -d':' -f2 | + sort -u) | + shuf | + head -n "$N" +} + +function waitfor() { + URL=${1} + TIMEOUT=${2:-60} + while ! curl -sq "${URL}" > /dev/null 2>&1; do + TIMEOUT=$((TIMEOUT-=1)) + if [[ "${TIMEOUT}" -lt "1" ]]; then + >&2 echo "Can not fetch ${URL}" + return 1 + fi + sleep 1 + done + return 0 +} \ No newline at end of file diff --git a/tests-suite/onbuild.sh b/tests-suite/onbuild.sh new file mode 100755 index 00000000..57f9af69 --- /dev/null +++ b/tests-suite/onbuild.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +. ./config + +############################################################ +## Let's check that the extensions can be built +## using the "ONBUILD" statement +############################################################ +test_onbluidBase() { + assert 'onbluidBase' "Image build failed" + # This should run ok (the sudo disable environment variables but call to composer proxy does not trigger PHP ini file regeneration) + assert 'onbluidBaseExtensionIsPresent sockets' "Extension sockets not found" + assert 'onbluidBaseExtensionIsPresent pdo_pgsql' "Extension pdo_pgsql not found" + assert 'onbluidBaseExtensionIsPresent pdo_sqlite' "Extension pdo_sqlite not found" +} +onbluidBase() { + docker ${BUILDTOOL} -t ${DOCKER1_NAME} - < "${TMP_DIR}/composer.json" + { + "require": { + "ext-gd": "*" + } + } +EOF + cat < "${TMP_DIR}/Dockerfile" + ARG PHP_EXTENSIONS="gd" + FROM ${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} + + COPY composer.json composer.json + + # Let's check that GD is available. + RUN composer install +EOF + docker ${BUILDTOOL} -t ${DOCKER2_NAME} "${TMP_DIR}" + return $? +} + +setup_suite() { + export TMP_DIR="$(mktemp -d)" + export DOCKER1_NAME="test/slim_onbuild_$(unused_port)" + export DOCKER2_NAME="test/slim_onbuild_composer_$(unused_port)" +} + +teardown_suite() { + docker rmi --force "${DOCKER1_NAME}" > /dev/null + docker rmi --force "${DOCKER2_NAME}" > /dev/null + if [[ "" != ${TMP_DIR} ]]; then docker run ${RUN_OPTIONS} --rm -v "/tmp":/tmp busybox rm -rf "${TMP_DIR}" > /dev/null 2>&1; fi +} diff --git a/tests-suite/php-blackfire.sh b/tests-suite/php-blackfire.sh new file mode 100755 index 00000000..7c73fcb4 --- /dev/null +++ b/tests-suite/php-blackfire.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +. ./config + +#if [[ "${PHP_VERSION}" == "8.1" ]]; then +# echo "-- PHP8.1 not support yet blackfire" +# return 0 +#fi +test_enable() { + # Check that blackfire can be enabled + docker run ${RUN_OPTIONS} --rm -e PHP_EXTENSION_BLACKFIRE=1 "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" \ + php -m | tail -n +1 | grep -q blackfire + assert_equals "0" "$?" +} +test_alertConflictWithXDebug() { + # Tests that blackfire + xdebug will output an error + RESULT="$(docker run ${RUN_OPTIONS} --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_EXTENSION_BLACKFIRE=1 \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" \ + php -v 2>&1 | tail -n +1 | grep 'WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire.')" + assert_equals "WARNING: Both Blackfire and Xdebug are enabled. This is not recommended as the PHP engine may not behave as expected. You should strongly consider disabling Xdebug or Blackfire." "$RESULT" +} + diff --git a/tests-suite/php-extensions.sh b/tests-suite/php-extensions.sh new file mode 100755 index 00000000..07edece7 --- /dev/null +++ b/tests-suite/php-extensions.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +. ./config + +########################################################### +# Let's check that mbstring is enabled by default +# (it's compiled in PHP) +########################################################### +test_presenceOfMbstring() { + RESULT=$(docker run ${RUN_OPTIONS} --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | tail -n +1 | grep --color=never mbstring) + assert_equals "mbstring" "${RESULT}" "Missing php-mbstring" +} +############################################################ +## Let's check that mbstring is enabled by default +## (it's compiled in PHP) +############################################################ +test_presenceOfPDO() { + RESULT=$(docker run ${RUN_OPTIONS} --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | tail -n +1 | grep --color=never PDO) + assert_equals "PDO" "${RESULT}" "Missing php-PDO" +} +############################################################ +## Let's check that the extensions are enabled when composer is run +############################################################ +test_enableGdWithComposer() { + docker $BUILDTOOL -t test/composer_with_gd \ + --build-arg PHP_VERSION="${PHP_VERSION}" --build-arg BRANCH="$BRANCH" \ + --build-arg BRANCH_VARIANT="$BRANCH_VARIANT" --build-arg REPO="$REPO" --build-arg TAG_PREFIX="$TAG_PREFIX" \ + "${SCRIPT_DIR}/assets/composer" > /dev/null 2>&1 + assert_equals "0" "$?" "Docker build failed" + # This should run ok (the sudo disables environment variables but call to composer proxy does not trigger PHP ini file regeneration) + docker run ${RUN_OPTIONS} --rm test/composer_with_gd sudo composer update > /dev/null 2>&1 + assert_equals "0" "$?" "Docker run failed" +} + +teardown_suite() { + docker rmi test/composer_with_gd > /dev/null 2>&1 +} diff --git a/tests-suite/php-ini.sh b/tests-suite/php-ini.sh new file mode 100755 index 00000000..2a6cca6f --- /dev/null +++ b/tests-suite/php-ini.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +. ./config + +# Let's check that the configuration is loaded from the correct php.ini (development, production or imported in the image) +############################################################ +## Templates +############################################################ +test_templateDefaultErrorReporting() { + RESULT="$(docker run ${RUN_OPTIONS} --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" + assert_equals "error_reporting => 32767 => 32767" "$RESULT" "Wrong default error reporting" +} +test_templateProductionErrorReporting() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -e TEMPLATE_PHP_INI=production \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" + assert_equals "error_reporting => 22527 => 22527" "$RESULT" "Wrong production error reporting" +} +test_templateCustomErrorReporting() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -v "${SCRIPT_DIR}/assets/php-ini/php.ini:/etc/php/${PHP_VERSION}/cli/php.ini" \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" + assert_equals "error_reporting => 24575 => 24575" "$RESULT" "Wrong custom php.ini error reporting" +} +############################################################ +## PHP_INI_* +############################################################ +test_environmentErrorReporting() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -e PHP_INI_ERROR_REPORTING="E_ERROR | E_WARNING" \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" + [[ "$RESULT" == "error_reporting => 3 => 3" ]] + assert_equals "error_reporting => 3 => 3" "$RESULT" "Wrong Environment error reporting" +} +############################################################ +## PHP_INI_SESSION__SAVE_PATH +## Tests that environment variables with an equal sign are correctly handled +############################################################ +test_sessionSavePath() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -e PHP_INI_SESSION__SAVE_PATH="tcp://localhost?auth=yourverycomplex\"passwordhere" \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep "session.save_path")" + [[ "$RESULT" == "" ]] + assert_equals "session.save_path => tcp://localhost?auth=yourverycomplex\"passwordhere => tcp://localhost?auth=yourverycomplex\"passwordhere" "$RESULT" "Wrong Environment PHP_INI_SESSION__SAVE_PATH" +} +############################################################ +## PHP_INI_SMTP +## Tests that the SMTP parameter is set in uppercase +############################################################ +test_smtp() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -e PHP_INI_SMTP="192.168.0.1" \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep "^SMTP")" + assert_equals "SMTP => 192.168.0.1 => 192.168.0.1" "$RESULT" "Wrong Environment PHP_INI_SMTP" +} +############################################################ +## Tests that disable_functions is commented in php.ini cli +############################################################ +test_disabledFunctionsIsCommented() { + RESULT="$(docker run ${RUN_OPTIONS} --rm \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep "disable_functions")" + assert_equals "disable_functions => no value => no value" "$RESULT" +} + diff --git a/tests-suite/php-xdebug.sh b/tests-suite/php-xdebug.sh new file mode 100755 index 00000000..96ca5bc9 --- /dev/null +++ b/tests-suite/php-xdebug.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +. ./config + +############################################################ +## xdebug +############################################################ +test_config() { + # Let's check that the "xdebug.client_host" contains a value different from "no value" + docker run ${RUN_OPTIONS} --rm -e PHP_EXTENSION_XDEBUG=1 "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" \ + php -i | grep xdebug.client_host | grep -v -q "no value" + assert_equals "0" "$?" '"xdebug.client_host" contains "no value"' + + # Let's check that "xdebug.mode" is set to "debug" by default + docker run ${RUN_OPTIONS} --rm -e PHP_EXTENSION_XDEBUG=1 "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" \ + php -i | grep xdebug.mode | grep -q "debug" + assert_equals "0" "$?" '"xdebug.mode" is not set to "debug" by default' + + # Let's check that "xdebug.mode" is properly overridden + docker run ${RUN_OPTIONS} --rm -e PHP_EXTENSION_XDEBUG=1 -e PHP_INI_XDEBUG__MODE=debug,coverage \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" \ + php -i | grep xdebug.mode | grep -q "debug,coverage" + assert_equals "0" "$?" '"xdebug.mode" is not properly overridden' +} diff --git a/tests-suite/tool-startup-command.sh b/tests-suite/tool-startup-command.sh new file mode 100755 index 00000000..2ddabe68 --- /dev/null +++ b/tests-suite/tool-startup-command.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +. ./config + +############################################################ +## Tests that environment variables are passed to startup scripts when UID is set +############################################################ +test_uid() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -e FOO="bar" -e STARTUP_COMMAND_1="env" -e UID=0 \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" sleep 1 | grep "FOO")" + assert_equals "FOO=bar" "$RESULT" +} +############################################################ +## Tests that multi-commands are correctly executed when UID is set +############################################################ +test_asRoot() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -e STARTUP_COMMAND_1="cd / && whoami" -e UID=0 \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" sleep 1)" + assert_equals "root" "$RESULT" +} +############################################################ +## Tests that startup.sh is correctly executed +############################################################ +test_withFile() { + docker run ${RUN_OPTIONS} --rm -v "${SCRIPT_DIR}/assets/startup.sh":/etc/container/startup.sh \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m 2>/dev/null | grep -q "startup.sh executed" + assert_equals "0" "$?" +} diff --git a/tests-suite/tool-supercronic.sh b/tests-suite/tool-supercronic.sh new file mode 100755 index 00000000..1deb2a07 --- /dev/null +++ b/tests-suite/tool-supercronic.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +. ./config + +############################################################ +## Let's check that the access to cron will fail with a message +############################################################ +test_displayErrorWhenMissing() { + RESULT=$(docker run ${RUN_OPTIONS} --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo 'foobar')" \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -o 'Cron is not available in this image') + assert_equals "Cron is not available in this image" "$RESULT" +} +############################################################ +## Let's check that the crons are actually sending logs in the right place +############################################################ +test_errorLog() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&1 echo 'foobar')" \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=foobar' | head -n1)" + assert_equals "msg=foobar" "$RESULT" "std1" + RESULT="$(docker run ${RUN_OPTIONS} --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="(>&2 echo 'error')" \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=error' | head -n1)" + assert_equals "msg=error" "$RESULT" "std2" +} +############################################################ +## Let's check that the cron with a user different from root is actually run. +############################################################ +test_changeUser() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami" -e CRON_USER_1="docker" \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=docker' | head -n1)" + assert_equals "msg=docker" "$RESULT" +} +############################################################ +## Let's check that 2 commands split with a ; are run by the same user. +############################################################ +test_twoCommandInOneRow() { + RESULT="$(docker run ${RUN_OPTIONS} --rm -e CRON_SCHEDULE_1="* * * * * * *" -e CRON_COMMAND_1="whoami;whoami" -e CRON_USER_1="docker" \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" sleep 1 2>&1 | grep -oP 'msg=docker' | wc -l)" + assert '[ "$RESULT" -gt "1" ]' +} diff --git a/tests-suite/users-rights.sh b/tests-suite/users-rights.sh new file mode 100755 index 00000000..54acc92c --- /dev/null +++ b/tests-suite/users-rights.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash +. ./config + +############################################################ +## Default user is 1000 +############################################################ +test_defaultUserUidIs1000() { + RESULT="$(docker run ${RUN_OPTIONS} --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" \ + id -ur)" + assert_equals "0" "$?" "Docker run failed" + assert_equals "1000" "${RESULT}" "Default user UID missmatch" +} + +############################################################ +## If mounted, default user has the id +## of the mounted directory +############################################################ +test_defaultUserHasUidOfMountedDirectory() { + mkdir -p "${TMP_DIR}/user1999" + docker run ${RUN_OPTIONS} --rm -v /tmp:/tmp busybox chown 1999:1999 "${TMP_DIR}/user1999" > /dev/null 2>&1 + RESULT="$(docker run ${RUN_OPTIONS} --rm -v "${TMP_DIR}/user1999":"${CONTAINER_CWD}" "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" \ + id -ur)" + assert_equals "0" "$?" "Docker run failed" + assert_equals "1999" "${RESULT}" "Default user UID missmatch with mounted directory" +} + +############################################################ +## The default user can write on stdout and stderr +############################################################ +test_defaultUserCanWriteOnStdoutAndStderr() { + docker run ${RUN_OPTIONS} --rm -v "${TMP_DIR}/user1999":"${CONTAINER_CWD}" "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" \ + bash -c "echo TEST > /proc/self/fd/2" >> /dev/null + assert_equals "0" "$?" "Docker run failed" +} + +############################################################ +## It's also works for users with existing IDs in the container +############################################################ +test_defaultUserCanWriteOnStdoutAndStderr() { + mkdir -p "${TMP_DIR}/user33" + cat << EOF > "${TMP_DIR}/user33/composer.json" + { + "autoload": { + "psr-4": { + "\\\\": "." + } + } + } +EOF + docker run ${RUN_OPTIONS} --rm -v /tmp:/tmp busybox chown -R 33:33 "${TMP_DIR}/user33" > /dev/null 2>&1 + RESULT="$(docker run ${RUN_OPTIONS} --rm -v "${TMP_DIR}/user33":"${CONTAINER_CWD}" "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" \ + id -ur)" + assert_equals "0" "$?" "Docker run 1 failed" + assert_equals "33" "${RESULT}" "Default user UID missmatch" + docker run ${RUN_OPTIONS} --rm -v "${TMP_DIR}/user33":"${CONTAINER_CWD}" "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" \ + composer update -vvv > /dev/null 2>&1 + assert_equals "0" "$?" "Docker run 2 failed" +} + + +setup_suite() { + export TMP_DIR="$(mktemp -d)" + if [[ $VARIANT == cli* ]]; then export CONTAINER_CWD=/usr/src/app; else export CONTAINER_CWD=/var/www/html; fi +} + +teardown_suite() { + if [[ "" != ${TMP_DIR} ]]; then docker run ${RUN_OPTIONS} --rm -v "/tmp":/tmp busybox rm -rf "${TMP_DIR}" > /dev/null 2>&1; fi +} diff --git a/tests-suite/variant-apache.sh b/tests-suite/variant-apache.sh new file mode 100755 index 00000000..3c08ad09 --- /dev/null +++ b/tests-suite/variant-apache.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +. ./config + +if [[ $VARIANT != apache* ]]; then + echo "-- There is not an 'apache' variant" + return 0; +fi; +############################################################ +## Run apache and try to retrieve var content +############################################################ +test_displayVarInPhp() { + RESULT="$(curl -sq http://localhost:${DOCKER1_PORT}/apache/ 2>&1)" + assert_equals "foo" "$RESULT" "MYVAR was not populate onto php" +} +############################################################ +## Run apache with relative document root +############################################################ +test_documentRootRelative() { + RESULT="$(curl -sq http://localhost:${DOCKER2_PORT}/ 2>&1)" + assert_equals "foo" "$RESULT" "Apache document root (relative) does not work properly" +} +############################################################ +## Run apache with absolute document root +############################################################ +test_documentRootAbsolute() { + RESULT="$(curl -sq http://localhost:${DOCKER3_PORT}/ 2>&1)" + assert_equals "foo" "$RESULT" "Apache document root (absolute) does not work properly" +} +############################################################ +## Run apache HtAccess +############################################################ +test_htaccessRewrite() { + RESULT="$(curl -sq http://localhost:${DOCKER1_PORT}/apache/htaccess/ 2>&1)" + assert_equals "foo" "$RESULT" "Apache HtAccess RewriteRule was not applied" +} +############################################################ +## Test PHP_INI_... variables are correctly handled by apache +############################################################ +test_changeMemoryLimit() { + RESULT="$(curl -sq http://localhost:${DOCKER1_PORT}/apache/echo_memory_limit.php 2>&1 )" + assert_equals "2G" "$RESULT" "Apache PHP_INI_MEMORY_LIMIT was not applied" +} + +setup_suite() { + # SETUP apache1 + export DOCKER1_PORT="$(unused_port)" + export DOCKER1_NAME="test-apache1-${DOCKER1_PORT}" + docker run --name "${DOCKER1_NAME}" ${RUN_OPTIONS} --rm -e MYVAR=foo -e PHP_INI_MEMORY_LIMIT=2G -p "${DOCKER1_PORT}:80" -d -v "${SCRIPT_DIR}/assets/":/var/www/html \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" > /dev/null + assert_equals "0" "$?" "Docker run failed" + # SETUP apache2 + export DOCKER2_PORT="$(unused_port)" + export DOCKER2_NAME="test-apache2-${DOCKER2_PORT}" + docker run --name "${DOCKER2_NAME}" ${RUN_OPTIONS} --rm -e MYVAR=foo -e APACHE_DOCUMENT_ROOT=apache -p "${DOCKER2_PORT}:80" -d -v "${SCRIPT_DIR}/assets/":/var/www/html \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" > /dev/null + assert_equals "0" "$?" "Docker run failed" + # SETUP apache3 + export DOCKER3_PORT="$(unused_port)" + export DOCKER3_NAME="test-apache3-${DOCKER3_PORT}" + docker run --name "${DOCKER3_NAME}" ${RUN_OPTIONS} --rm -e MYVAR=foo -e APACHE_DOCUMENT_ROOT=/var/www/foo/apache -p "${DOCKER3_PORT}:80" -d -v "${SCRIPT_DIR}/assets/":/var/www/foo \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" > /dev/null + assert_equals "0" "$?" "Docker run failed" + # Let's wait for Apache to start + waitfor http://localhost:${DOCKER1_PORT} + waitfor http://localhost:${DOCKER2_PORT} + waitfor http://localhost:${DOCKER3_PORT} +} + +teardown_suite() { + docker stop "${DOCKER1_NAME}" "${DOCKER2_NAME}" "${DOCKER3_NAME}" > /dev/null 2>&1 +} diff --git a/tests-suite/variant-fpm.sh b/tests-suite/variant-fpm.sh new file mode 100755 index 00000000..714cafb5 --- /dev/null +++ b/tests-suite/variant-fpm.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +. ./config + +if [[ $VARIANT != fpm* ]]; then + echo "-- There is not an 'fpm' variant" + return 0; +fi; +############################################################ +## Test if environment starts without errors +############################################################ +test_start() { + docker run --name test-fpm1 ${RUN_OPTIONS} --rm -e MYVAR=foo -e PHP_INI_MEMORY_LIMIT=2G -p "9001:9000" -d -v "${SCRIPT_DIR}/assets/":/var/www/html \ + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" > /dev/null + assert_equals "0" "$?" "Docker run failed" + # Let's wait for FPM to start + sleep 3 + # If the container is still up, it will not fail when stopping. + docker stop test-fpm1 > /dev/null 2>&1 + assert_equals "0" "$?" "Docker stop failed" +} + +teardown_suite() { + docker stop test-fpm1 > /dev/null 2>&1 +} diff --git a/tests/apache/composer.json b/tests/apache/composer.json deleted file mode 100644 index d7679096..00000000 --- a/tests/apache/composer.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "autoload": { - "psr-4": { - "\\": "." - } - } -} diff --git a/tests/slim_onbuild/Dockerfile b/tests/slim_onbuild/Dockerfile deleted file mode 100644 index ce94a053..00000000 --- a/tests/slim_onbuild/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -ARG BRANCH -ARG BRANCH_VARIANT -ARG PHP_VERSION - -ARG PHP_EXTENSIONS="pdo_pgsql pdo_sqlite" -FROM thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} diff --git a/tests/slim_onbuild_composer/Dockerfile b/tests/slim_onbuild_composer/Dockerfile deleted file mode 100644 index 241f03eb..00000000 --- a/tests/slim_onbuild_composer/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -ARG BRANCH -ARG BRANCH_VARIANT -ARG PHP_VERSION - -ARG PHP_EXTENSIONS="gd" -FROM thecodingmachine/php:${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT} - -COPY composer.json composer.json - -# Let's check that GD is available. -RUN composer install diff --git a/tests/slim_onbuild_composer/composer.json b/tests/slim_onbuild_composer/composer.json deleted file mode 100644 index 71ea8641..00000000 --- a/tests/slim_onbuild_composer/composer.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "require": { - "ext-gd": "*" - } -} From dbe27a3ff3daa0d588742aeb9f85e1f492e8c429 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:30:18 +0200 Subject: [PATCH 109/162] Add blackfire onto 8.1 version --- README.md | 2 +- extensions/8.1/blackfire | 1 + utils/README.blueprint.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) create mode 120000 extensions/8.1/blackfire diff --git a/README.md b/README.md index 4301d32d..943b1769 100644 --- a/README.md +++ b/README.md @@ -187,7 +187,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) - *event*, *gnupg* are not available in PHP 8.0+ -- *blackfire*, *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ +- *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ ### Enabling/disabling extensions in the fat image diff --git a/extensions/8.1/blackfire b/extensions/8.1/blackfire new file mode 120000 index 00000000..1179c0b9 --- /dev/null +++ b/extensions/8.1/blackfire @@ -0,0 +1 @@ +../core/blackfire \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index ee651d9b..7cd6c396 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -105,7 +105,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *sybase* extension is not available in v4 (use v3) - *event*, *gnupg* are not available in PHP 8.0+ -- *blackfire*, *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ +- *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ ### Enabling/disabling extensions in the fat image From 3bcdddb8249cdabc9fdf8e9f1c4dfe2d4ffe2ccd Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:34:41 +0200 Subject: [PATCH 110/162] * Add zip to php7.* * Lint symlink for extensions directories --- extensions/7.2/mysqli | 2 +- extensions/7.2/pdo_mysql | 2 +- extensions/7.2/pdo_pgsql | 2 +- extensions/7.2/pdo_sqlite | 2 +- extensions/7.2/pgsql | 2 +- extensions/7.2/sqlite3 | 2 +- extensions/7.2/zip | 1 + extensions/7.3/mysqli | 2 +- extensions/7.3/pdo_mysql | 2 +- extensions/7.3/pdo_pgsql | 2 +- extensions/7.3/pdo_sqlite | 2 +- extensions/7.3/pgsql | 2 +- extensions/7.3/sqlite3 | 2 +- extensions/7.3/zip | 1 + extensions/7.4/mysqli | 2 +- extensions/7.4/pdo_mysql | 2 +- extensions/7.4/pdo_pgsql | 2 +- extensions/7.4/pdo_sqlite | 2 +- extensions/7.4/pgsql | 2 +- extensions/7.4/sqlite3 | 2 +- extensions/7.4/zip | 1 + extensions/8.0/mysqli | 2 +- extensions/8.0/pdo_mysql | 2 +- extensions/8.0/pdo_pgsql | 2 +- extensions/8.0/pdo_sqlite | 2 +- extensions/8.0/pgsql | 2 +- extensions/8.0/sqlite3 | 2 +- extensions/8.1/mysqli | 2 +- extensions/8.1/pdo_mysql | 2 +- extensions/8.1/pdo_pgsql | 2 +- extensions/8.1/pdo_sqlite | 2 +- extensions/8.1/pgsql | 2 +- extensions/8.1/sqlite3 | 2 +- 33 files changed, 33 insertions(+), 30 deletions(-) create mode 120000 extensions/7.2/zip create mode 120000 extensions/7.3/zip create mode 120000 extensions/7.4/zip diff --git a/extensions/7.2/mysqli b/extensions/7.2/mysqli index f752c283..401b7fbf 120000 --- a/extensions/7.2/mysqli +++ b/extensions/7.2/mysqli @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/7.2/pdo_mysql b/extensions/7.2/pdo_mysql index f752c283..401b7fbf 120000 --- a/extensions/7.2/pdo_mysql +++ b/extensions/7.2/pdo_mysql @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/7.2/pdo_pgsql b/extensions/7.2/pdo_pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/7.2/pdo_pgsql +++ b/extensions/7.2/pdo_pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/7.2/pdo_sqlite b/extensions/7.2/pdo_sqlite index 45ffc754..84c26578 120000 --- a/extensions/7.2/pdo_sqlite +++ b/extensions/7.2/pdo_sqlite @@ -1 +1 @@ -../core/sqlite3 \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/7.2/pgsql b/extensions/7.2/pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/7.2/pgsql +++ b/extensions/7.2/pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/7.2/sqlite3 b/extensions/7.2/sqlite3 index abddf395..84c26578 120000 --- a/extensions/7.2/sqlite3 +++ b/extensions/7.2/sqlite3 @@ -1 +1 @@ -../core/sqlite3/ \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/7.2/zip b/extensions/7.2/zip new file mode 120000 index 00000000..98c05831 --- /dev/null +++ b/extensions/7.2/zip @@ -0,0 +1 @@ +../core/zip \ No newline at end of file diff --git a/extensions/7.3/mysqli b/extensions/7.3/mysqli index f752c283..401b7fbf 120000 --- a/extensions/7.3/mysqli +++ b/extensions/7.3/mysqli @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/7.3/pdo_mysql b/extensions/7.3/pdo_mysql index f752c283..401b7fbf 120000 --- a/extensions/7.3/pdo_mysql +++ b/extensions/7.3/pdo_mysql @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/7.3/pdo_pgsql b/extensions/7.3/pdo_pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/7.3/pdo_pgsql +++ b/extensions/7.3/pdo_pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/7.3/pdo_sqlite b/extensions/7.3/pdo_sqlite index 45ffc754..84c26578 120000 --- a/extensions/7.3/pdo_sqlite +++ b/extensions/7.3/pdo_sqlite @@ -1 +1 @@ -../core/sqlite3 \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/7.3/pgsql b/extensions/7.3/pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/7.3/pgsql +++ b/extensions/7.3/pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/7.3/sqlite3 b/extensions/7.3/sqlite3 index abddf395..84c26578 120000 --- a/extensions/7.3/sqlite3 +++ b/extensions/7.3/sqlite3 @@ -1 +1 @@ -../core/sqlite3/ \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/7.3/zip b/extensions/7.3/zip new file mode 120000 index 00000000..98c05831 --- /dev/null +++ b/extensions/7.3/zip @@ -0,0 +1 @@ +../core/zip \ No newline at end of file diff --git a/extensions/7.4/mysqli b/extensions/7.4/mysqli index f752c283..401b7fbf 120000 --- a/extensions/7.4/mysqli +++ b/extensions/7.4/mysqli @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/7.4/pdo_mysql b/extensions/7.4/pdo_mysql index f752c283..401b7fbf 120000 --- a/extensions/7.4/pdo_mysql +++ b/extensions/7.4/pdo_mysql @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/7.4/pdo_pgsql b/extensions/7.4/pdo_pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/7.4/pdo_pgsql +++ b/extensions/7.4/pdo_pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/7.4/pdo_sqlite b/extensions/7.4/pdo_sqlite index 45ffc754..84c26578 120000 --- a/extensions/7.4/pdo_sqlite +++ b/extensions/7.4/pdo_sqlite @@ -1 +1 @@ -../core/sqlite3 \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/7.4/pgsql b/extensions/7.4/pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/7.4/pgsql +++ b/extensions/7.4/pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/7.4/sqlite3 b/extensions/7.4/sqlite3 index abddf395..84c26578 120000 --- a/extensions/7.4/sqlite3 +++ b/extensions/7.4/sqlite3 @@ -1 +1 @@ -../core/sqlite3/ \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/7.4/zip b/extensions/7.4/zip new file mode 120000 index 00000000..98c05831 --- /dev/null +++ b/extensions/7.4/zip @@ -0,0 +1 @@ +../core/zip \ No newline at end of file diff --git a/extensions/8.0/mysqli b/extensions/8.0/mysqli index f752c283..401b7fbf 120000 --- a/extensions/8.0/mysqli +++ b/extensions/8.0/mysqli @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.0/pdo_mysql b/extensions/8.0/pdo_mysql index f752c283..401b7fbf 120000 --- a/extensions/8.0/pdo_mysql +++ b/extensions/8.0/pdo_mysql @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.0/pdo_pgsql b/extensions/8.0/pdo_pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/8.0/pdo_pgsql +++ b/extensions/8.0/pdo_pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.0/pdo_sqlite b/extensions/8.0/pdo_sqlite index 45ffc754..84c26578 120000 --- a/extensions/8.0/pdo_sqlite +++ b/extensions/8.0/pdo_sqlite @@ -1 +1 @@ -../core/sqlite3 \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/8.0/pgsql b/extensions/8.0/pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/8.0/pgsql +++ b/extensions/8.0/pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.0/sqlite3 b/extensions/8.0/sqlite3 index 45ffc754..84c26578 120000 --- a/extensions/8.0/sqlite3 +++ b/extensions/8.0/sqlite3 @@ -1 +1 @@ -../core/sqlite3 \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/8.1/mysqli b/extensions/8.1/mysqli index f752c283..401b7fbf 120000 --- a/extensions/8.1/mysqli +++ b/extensions/8.1/mysqli @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.1/pdo_mysql b/extensions/8.1/pdo_mysql index f752c283..401b7fbf 120000 --- a/extensions/8.1/pdo_mysql +++ b/extensions/8.1/pdo_mysql @@ -1 +1 @@ -../core/mysqli \ No newline at end of file +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.1/pdo_pgsql b/extensions/8.1/pdo_pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/8.1/pdo_pgsql +++ b/extensions/8.1/pdo_pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.1/pdo_sqlite b/extensions/8.1/pdo_sqlite index 45ffc754..84c26578 120000 --- a/extensions/8.1/pdo_sqlite +++ b/extensions/8.1/pdo_sqlite @@ -1 +1 @@ -../core/sqlite3 \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/8.1/pgsql b/extensions/8.1/pgsql index 29ac8e8b..3a0bda2d 120000 --- a/extensions/8.1/pgsql +++ b/extensions/8.1/pgsql @@ -1 +1 @@ -../core/pgsql \ No newline at end of file +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.1/sqlite3 b/extensions/8.1/sqlite3 index 45ffc754..84c26578 120000 --- a/extensions/8.1/sqlite3 +++ b/extensions/8.1/sqlite3 @@ -1 +1 @@ -../core/sqlite3 \ No newline at end of file +../core/pdo_sqlite \ No newline at end of file From a5aa3e860c7f3a222fbeaaa9ddfb93f9979cebca Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:36:49 +0200 Subject: [PATCH 111/162] Add php-sybase to all versions --- README.md | 1 - extensions/7.2/pdo_dblib | 1 + extensions/7.3/pdo_dblib | 1 + extensions/7.4/pdo_dblib | 1 + extensions/8.0/pdo_dblib | 1 + extensions/8.1/pdo_dblib | 1 + utils/README.blueprint.md | 1 - 7 files changed, 5 insertions(+), 2 deletions(-) create mode 120000 extensions/7.2/pdo_dblib create mode 120000 extensions/7.3/pdo_dblib create mode 120000 extensions/7.4/pdo_dblib create mode 120000 extensions/8.0/pdo_dblib create mode 120000 extensions/8.1/pdo_dblib diff --git a/README.md b/README.md index 943b1769..060c7f41 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,6 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) -- *sybase* extension is not available in v4 (use v3) - *event*, *gnupg* are not available in PHP 8.0+ - *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ diff --git a/extensions/7.2/pdo_dblib b/extensions/7.2/pdo_dblib new file mode 120000 index 00000000..2261140c --- /dev/null +++ b/extensions/7.2/pdo_dblib @@ -0,0 +1 @@ +../core/pdo_dblib \ No newline at end of file diff --git a/extensions/7.3/pdo_dblib b/extensions/7.3/pdo_dblib new file mode 120000 index 00000000..2261140c --- /dev/null +++ b/extensions/7.3/pdo_dblib @@ -0,0 +1 @@ +../core/pdo_dblib \ No newline at end of file diff --git a/extensions/7.4/pdo_dblib b/extensions/7.4/pdo_dblib new file mode 120000 index 00000000..2261140c --- /dev/null +++ b/extensions/7.4/pdo_dblib @@ -0,0 +1 @@ +../core/pdo_dblib \ No newline at end of file diff --git a/extensions/8.0/pdo_dblib b/extensions/8.0/pdo_dblib new file mode 120000 index 00000000..2261140c --- /dev/null +++ b/extensions/8.0/pdo_dblib @@ -0,0 +1 @@ +../core/pdo_dblib \ No newline at end of file diff --git a/extensions/8.1/pdo_dblib b/extensions/8.1/pdo_dblib new file mode 120000 index 00000000..2261140c --- /dev/null +++ b/extensions/8.1/pdo_dblib @@ -0,0 +1 @@ +../core/pdo_dblib \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 7cd6c396..cc017b39 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -103,7 +103,6 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) -- *sybase* extension is not available in v4 (use v3) - *event*, *gnupg* are not available in PHP 8.0+ - *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ From a815960b0c797255aa64f14de15e69c37ef00416 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:38:04 +0200 Subject: [PATCH 112/162] Save php extensions install log to image (with execution time) --- extensions/core/install_all.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/extensions/core/install_all.sh b/extensions/core/install_all.sh index 68dffd7d..32157e0a 100755 --- a/extensions/core/install_all.sh +++ b/extensions/core/install_all.sh @@ -8,11 +8,17 @@ mv /etc/apt/apt.conf.d/docker-clean /tmp/docker-clean apt-get update +mkdir -p /var/log/ext-php/ + for ext in */; do \ cd $ext ext_no_slash=${ext%/} echo "***************** Installing $ext_no_slash ******************" - ./install.sh + LOG="/var/log/ext-php/install-${ext_no_slash}" + start=$(date +%s) + ./install.sh 2>&1 | tee -a "${LOG}.log" + end=$(date +%s) + echo "$(($end-$start)) seconds to execute ${ext_no_slash}" > "${LOG}.time" cd .. done From 779e4407545bf13515116d2cfd5a41f78f247bfc Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:42:01 +0200 Subject: [PATCH 113/162] Move legacy mcrypt install to same core file --- extensions/core/mcrypt-7.1/install.sh | 10 ---------- extensions/core/mcrypt/install.sh | 16 +++++++++++----- 2 files changed, 11 insertions(+), 15 deletions(-) delete mode 100755 extensions/core/mcrypt-7.1/install.sh diff --git a/extensions/core/mcrypt-7.1/install.sh b/extensions/core/mcrypt-7.1/install.sh deleted file mode 100755 index 6cad9edb..00000000 --- a/extensions/core/mcrypt-7.1/install.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -set -e -# Comments: MCrypt is deprecated and usage is generally discouraged. Provided here for legacy apps only. - -export EXTENSION=mcrypt -export DEV_DEPENDENCIES="libmcrypt-dev" -export DEPENDENCIES="libmcrypt4" - -../docker-install.sh diff --git a/extensions/core/mcrypt/install.sh b/extensions/core/mcrypt/install.sh index 015a9662..3ea333c5 100755 --- a/extensions/core/mcrypt/install.sh +++ b/extensions/core/mcrypt/install.sh @@ -3,10 +3,16 @@ set -e # Comments: MCrypt is deprecated and usage is generally discouraged. Provided here for legacy apps only. -export USE_PECL=1 -export PECL_EXTENSION=mcrypt-1.0.1 -export PHP_EXT_NAME=mcrypt # name of the extension (to put in PHP_EXTENSIONS variable) -export DEV_DEPENDENCIES="libmcrypt-dev" -export DEPENDENCIES="libmcrypt4" +if false; then # legacy install + export USE_PECL=1 + export PECL_EXTENSION=mcrypt-1.0.1 + export PHP_EXT_NAME=mcrypt # name of the extension (to put in PHP_EXTENSIONS variable) + export DEV_DEPENDENCIES="libmcrypt-dev" + export DEPENDENCIES="libmcrypt4" +else # Regular install + export EXTENSION=mcrypt + export DEV_DEPENDENCIES="libmcrypt-dev" + export DEPENDENCIES="libmcrypt4" +fi ../docker-install.sh From d48980c95dbe8c44d3a30049c973a341cf52e665 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:44:27 +0200 Subject: [PATCH 114/162] Lint symlink for extensions directories --- extensions/7.2/imagick | 2 +- extensions/7.2/uploadprogress | 2 +- extensions/7.2/uuid | 2 +- extensions/7.3/amqp | 2 +- extensions/7.3/imagick | 2 +- extensions/7.3/rdkafka | 2 +- extensions/7.3/uploadprogress | 2 +- extensions/7.3/uuid | 2 +- extensions/7.4/uploadprogress | 2 +- extensions/7.4/uuid | 2 +- extensions/8.0/amqp | 2 +- extensions/8.0/mcrypt | 2 +- extensions/8.0/uuid | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/extensions/7.2/imagick b/extensions/7.2/imagick index 308094fe..a55b99bc 120000 --- a/extensions/7.2/imagick +++ b/extensions/7.2/imagick @@ -1 +1 @@ -../core/imagick/ \ No newline at end of file +../core/imagick \ No newline at end of file diff --git a/extensions/7.2/uploadprogress b/extensions/7.2/uploadprogress index b18aa3c5..6b4b74d0 120000 --- a/extensions/7.2/uploadprogress +++ b/extensions/7.2/uploadprogress @@ -1 +1 @@ -../core/uploadprogress/ \ No newline at end of file +../core/uploadprogress \ No newline at end of file diff --git a/extensions/7.2/uuid b/extensions/7.2/uuid index 2e96802e..7a522046 120000 --- a/extensions/7.2/uuid +++ b/extensions/7.2/uuid @@ -1 +1 @@ -../core/uuid/ \ No newline at end of file +../core/uuid \ No newline at end of file diff --git a/extensions/7.3/amqp b/extensions/7.3/amqp index 67752699..f66005fc 120000 --- a/extensions/7.3/amqp +++ b/extensions/7.3/amqp @@ -1 +1 @@ -../core/amqp/ \ No newline at end of file +../core/amqp \ No newline at end of file diff --git a/extensions/7.3/imagick b/extensions/7.3/imagick index 308094fe..a55b99bc 120000 --- a/extensions/7.3/imagick +++ b/extensions/7.3/imagick @@ -1 +1 @@ -../core/imagick/ \ No newline at end of file +../core/imagick \ No newline at end of file diff --git a/extensions/7.3/rdkafka b/extensions/7.3/rdkafka index 8fce5d9f..c9f5ff17 120000 --- a/extensions/7.3/rdkafka +++ b/extensions/7.3/rdkafka @@ -1 +1 @@ -../core/rdkafka/ \ No newline at end of file +../core/rdkafka \ No newline at end of file diff --git a/extensions/7.3/uploadprogress b/extensions/7.3/uploadprogress index b18aa3c5..6b4b74d0 120000 --- a/extensions/7.3/uploadprogress +++ b/extensions/7.3/uploadprogress @@ -1 +1 @@ -../core/uploadprogress/ \ No newline at end of file +../core/uploadprogress \ No newline at end of file diff --git a/extensions/7.3/uuid b/extensions/7.3/uuid index 2e96802e..7a522046 120000 --- a/extensions/7.3/uuid +++ b/extensions/7.3/uuid @@ -1 +1 @@ -../core/uuid/ \ No newline at end of file +../core/uuid \ No newline at end of file diff --git a/extensions/7.4/uploadprogress b/extensions/7.4/uploadprogress index b18aa3c5..6b4b74d0 120000 --- a/extensions/7.4/uploadprogress +++ b/extensions/7.4/uploadprogress @@ -1 +1 @@ -../core/uploadprogress/ \ No newline at end of file +../core/uploadprogress \ No newline at end of file diff --git a/extensions/7.4/uuid b/extensions/7.4/uuid index 2e96802e..7a522046 120000 --- a/extensions/7.4/uuid +++ b/extensions/7.4/uuid @@ -1 +1 @@ -../core/uuid/ \ No newline at end of file +../core/uuid \ No newline at end of file diff --git a/extensions/8.0/amqp b/extensions/8.0/amqp index 67752699..f66005fc 120000 --- a/extensions/8.0/amqp +++ b/extensions/8.0/amqp @@ -1 +1 @@ -../core/amqp/ \ No newline at end of file +../core/amqp \ No newline at end of file diff --git a/extensions/8.0/mcrypt b/extensions/8.0/mcrypt index c4321cdf..f548d014 120000 --- a/extensions/8.0/mcrypt +++ b/extensions/8.0/mcrypt @@ -1 +1 @@ -../core/mcrypt-7.1 \ No newline at end of file +../core/mcrypt \ No newline at end of file diff --git a/extensions/8.0/uuid b/extensions/8.0/uuid index 2e96802e..7a522046 120000 --- a/extensions/8.0/uuid +++ b/extensions/8.0/uuid @@ -1 +1 @@ -../core/uuid/ \ No newline at end of file +../core/uuid \ No newline at end of file From 0693532776ad9f701085d2c8901e2ccdf35e776f Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:45:38 +0200 Subject: [PATCH 115/162] Lint Rename core extensions --- extensions/core/{mysqli => pdo_mysql}/install.sh | 0 extensions/core/{pgsql => pdo_pgsql}/install.sh | 0 extensions/core/{sqlite3 => pdo_sqlite}/install.sh | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename extensions/core/{mysqli => pdo_mysql}/install.sh (100%) rename extensions/core/{pgsql => pdo_pgsql}/install.sh (100%) rename extensions/core/{sqlite3 => pdo_sqlite}/install.sh (100%) diff --git a/extensions/core/mysqli/install.sh b/extensions/core/pdo_mysql/install.sh similarity index 100% rename from extensions/core/mysqli/install.sh rename to extensions/core/pdo_mysql/install.sh diff --git a/extensions/core/pgsql/install.sh b/extensions/core/pdo_pgsql/install.sh similarity index 100% rename from extensions/core/pgsql/install.sh rename to extensions/core/pdo_pgsql/install.sh diff --git a/extensions/core/sqlite3/install.sh b/extensions/core/pdo_sqlite/install.sh similarity index 100% rename from extensions/core/sqlite3/install.sh rename to extensions/core/pdo_sqlite/install.sh From b840fda04c539975a4d6b7a592d37931d0cd142e Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:46:57 +0200 Subject: [PATCH 116/162] Fix blackfire install --- extensions/core/blackfire/install.sh | 78 ++++++++++++++-------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/extensions/core/blackfire/install.sh b/extensions/core/blackfire/install.sh index 3e58833b..e0e17927 100755 --- a/extensions/core/blackfire/install.sh +++ b/extensions/core/blackfire/install.sh @@ -1,12 +1,9 @@ #!/usr/bin/env bash set -e -set -ex # Install Blackfire -version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") - -if [[ -z "${BLACKFIRE_VERSION}" ]]; then +if [[ "${BLACKFIRE_VERSION}" == "" ]]; then echo "Blackfire version is not set in the environment variables. Exiting!" exit 1 fi @@ -14,40 +11,43 @@ fi # Let's make it flexible: for those who want to be safe, the image will be built with v1 # Now if you build the image yourself, you can build it with v2, this way everyone gets happy :) -mkdir /tmp/blackfire - -# Todo: Maybe version the Blackfire version by environment variable? :) - -if [ $BLACKFIRE_VERSION == "1" ]; then - echo "Installing Blackfire version 1" - # curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v2/releases/probe/php/linux/amd64/$version - curl -o /tmp/blackfire/blackfire.so "https://packages.blackfire.io/binaries/blackfire-php/1.78.0/blackfire-php-$CONTAINER_OS"_"$CONTAINER_ARCH-php-$version.so" - mv /tmp/blackfire/blackfire.so $(php -r "echo ini_get('extension_dir');")/blackfire.so - echo "extension=blackfire.so" > /etc/php/${PHP_VERSION}/mods-available/blackfire.ini - - # Adding this in the list of Ubuntu extensions because we use that list as a base for the modules list. - # TODO: question: cannot we use /etc/php/mods-available instead??? - touch /var/lib/php/modules/${PHP_VERSION}/registry/blackfire - # curl -A "Docker" -L https://blackfire.io/api/v1/releases/client/linux_static/amd64 | tar zxp -C /tmp/blackfire - curl -o /tmp/blackfire/blackfire "https://packages.blackfire.io/binaries/blackfire-agent/1.50.0/blackfire-cli-$CONTAINER_OS"_"$CONTAINER_ARCH" - chmod +x /tmp/blackfire/blackfire - mv /tmp/blackfire/blackfire /usr/bin/blackfire - rm -Rf /tmp/blackfire - -elif [ $BLACKFIRE_VERSION == "2" ]; then - echo "Installing Blackfire version 2..." - - curl -o /tmp/blackfire/blackfire.so "https://packages.blackfire.io/binaries/blackfire-php/1.78.0/blackfire-php-$CONTAINER_OS"_"$CONTAINER_ARCH-php-$version.so" - mv /tmp/blackfire/blackfire.so $(php -r "echo ini_get('extension_dir');")/blackfire.so - echo "extension=blackfire.so" > /etc/php/${PHP_VERSION}/mods-available/blackfire.ini - touch /var/lib/php/modules/${PHP_VERSION}/registry/blackfire - curl -o /tmp/blackfire-cli.tar.gz "https://packages.blackfire.io/binaries/blackfire/2.10.0/blackfire-"$CONTAINER_OS"_"$CONTAINER_ARCH".tar.gz" - tar zxpf /tmp/blackfire-cli.tar.gz -C /tmp/blackfire - mv /tmp/blackfire/blackfire /usr/bin/blackfire - - rm -Rf /tmp/blackfire +version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") +# Probe is the same for v1 and v2 +curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/${TARGETOS}/${TARGETARCH}/$version +mkdir -p /tmp/blackfire +tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire +mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so +printf "extension=blackfire.so" > "/etc/php/${PHP_VERSION}/mods-available/blackfire.ini" +rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz + +if [[ "${BLACKFIRE_VERSION}" == "1" ]]; then + # Cli for v1 require specific version + curl -A "Docker" "https://packages.blackfire.io/binaries/blackfire-agent/1.50.0/blackfire-cli-${TARGETOS}"_"${TARGETARCH}" -o /tmp/blackfire + chmod +x /tmp/blackfire + mv /tmp/blackfire /usr/bin/blackfire + rm -Rf /tmp/blackfire +elif [[ "${BLACKFIRE_VERSION}" == "2" ]]; then + # Cli for v2 is latest version + echo "Installing Blackfire version 2..." + mkdir -p /tmp/blackfire + curl -A "Docker" -L https://blackfire.io/api/v1/releases/cli/linux/${TARGETARCH} | tar zxp -C /tmp/blackfire + if ! /tmp/blackfire/blackfire self:version --no-ansi | grep -qE "version 2\.[0-9]+\.[0-9]+"; then + echo "Blackfire installed is not version 2 : $(/tmp/blackfire/blackfire self:version --no-ansi)" + exit 1 + fi + mv /tmp/blackfire/blackfire /usr/bin/blackfire + rm -Rf /tmp/blackfire else - echo "Blackfire version in environment variable is either empty or the value is invalid" - echo "Value: '$BLACKFIRE_VERSION'" + echo "Blackfire version in environment variable is invalid" + echo "Value: '${BLACKFIRE_VERSION}'" exit 1 -fi \ No newline at end of file +fi + +# Let's perform a test +phpenmod -v $PHP_VERSION blackfire +/usr/bin/real_php -m | grep "blackfire" +# Check that there is no output on STDERR when starting php: +OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` +[[ "$OUTPUT" == "" ]] +# And now, let's disable it! +phpdismod -v $PHP_VERSION blackfire \ No newline at end of file From a86ccc274043252f55fd9caf055c38213ae47325 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:47:36 +0200 Subject: [PATCH 117/162] Install php-grpc with apt instead of pecl --- extensions/core/grpc/install.sh | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/extensions/core/grpc/install.sh b/extensions/core/grpc/install.sh index 1687e5a4..896db7f2 100755 --- a/extensions/core/grpc/install.sh +++ b/extensions/core/grpc/install.sh @@ -1,9 +1,19 @@ #!/usr/bin/env bash set -e -export USE_PECL=1 -export DEV_DEPENDENCIES=zlib1g-dev - -export PECL_EXTENSION=grpc +export EXTENSION=grpc ../docker-install.sh + +#if [[ "${TARGETARCH}" == "arm64" ]]; then +# # Need few hours to compile onto arm64 arch +# >&2 echo "php-grpc is not included with arm64 version (because build time is too long)" +# exit 0; +#fi +#set -e +#export USE_PECL=1 +#export DEV_DEPENDENCIES=zlib1g-dev +# +#export PECL_EXTENSION=grpc +# +#../docker-install.sh From c9840e8a952c31aeceef92272e39a25b73e64238 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:48:30 +0200 Subject: [PATCH 118/162] Install php-pcov with apt instead of pecl --- extensions/core/pcov/install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/core/pcov/install.sh b/extensions/core/pcov/install.sh index 4f172cae..8f681d39 100755 --- a/extensions/core/pcov/install.sh +++ b/extensions/core/pcov/install.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash set -e -export PECL_EXTENSION=pcov +export EXTENSION=pcov +#export PECL_EXTENSION=pcov ../docker-install.sh From 0776fba8cc557a0e7ffcfbf929653be8846b8062 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:49:20 +0200 Subject: [PATCH 119/162] Force php-swoole version to 4.8.11 for php7.* --- extensions/core/swoole/install.sh | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/extensions/core/swoole/install.sh b/extensions/core/swoole/install.sh index 301bd059..b941f696 100755 --- a/extensions/core/swoole/install.sh +++ b/extensions/core/swoole/install.sh @@ -1,7 +1,16 @@ #!/usr/bin/env bash + set -e -export DEV_DEPENDENCIES="zlib1g-dev" -export DEPENDENCIES="zlib1g" -export USE_PECL=1 -PECL_EXTENSION=swoole ../docker-install.sh +if [[ "${PHP_VERSION}" ~= "^7" ]]; then + ## http://pecl.php.net/package/swoole + export DEPENDENCIES="zlib1g" + export DEV_DEPENDENCIES="zlib1g-dev" + export USE_PECL=1 + export PECL_EXTENSION=swoole-4.8.11 + export PHP_EXT_NAME=swoole +else + export EXTENSION=swoole +fi + +../docker-install.sh From 780f42cb2a3a91fd2542fa06e883e1c6d40158d6 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 15:51:51 +0200 Subject: [PATCH 120/162] FIX Find extensions from `/etc/php/${PHP_VERSION}/mods-available/*.ini` instead of `/var/lib/php/modules/${PHP_VERSION}/registry/*` --- utils/utils.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/utils.php b/utils/utils.php index 42d8f942..075429d5 100644 --- a/utils/utils.php +++ b/utils/utils.php @@ -10,7 +10,8 @@ */ function getAvailableExtensions(): array { - return array_map(function(string $fileName) { return basename($fileName);}, glob('/var/lib/php/modules/'.getenv('PHP_VERSION').'/registry/*')); + //return array_map(function(string $fileName) { return basename($fileName);}, glob('/var/lib/php/modules/'.getenv('PHP_VERSION').'/registry/*')); + return array_map(function(string $fileName) { return preg_replace('/\.ini$/i', '', basename($fileName));}, glob('/etc/php/'.getenv('PHP_VERSION').'/mods-available/*.ini')); } /** From 5e2ca66900e11b00e3242b06692104213d115e17 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 16:13:37 +0200 Subject: [PATCH 121/162] Docker optimisations : * Allow to change related repository with ARG * Allow to suffix tag with ARG * Allow to change FROM_IMAGE with ARG (to allow some optimisation in docker bake with precedences) * Use ARG instead of `Dockerfile.${VARIANT}.node{10,12,14,16}` files * Use `SHELL ["/bin/bash", "-o", "pipefail", "-c"]` mode for Dockerfile * Specify version of Dockerfile avec v1 `#syntax=docker/dockerfile-upstream:1` * Reduce `RUN` steps * Upgrade tini to v0.19 * Fix supercronic installation * Fix npm version built in slim mode * Add .dockerignore to optimise build time and memory --- .dockerignore | 10 + Dockerfile.apache | 7 +- ...le.apache.node14 => Dockerfile.apache.node | 12 +- Dockerfile.apache.node16 | 26 - Dockerfile.cli | 7 +- ...rfile.apache.node10 => Dockerfile.cli.node | 12 +- Dockerfile.cli.node10 | 26 - Dockerfile.cli.node12 | 26 - Dockerfile.cli.node14 | 26 - Dockerfile.cli.node16 | 26 - Dockerfile.fpm | 7 +- ...rfile.apache.node12 => Dockerfile.fpm.node | 12 +- Dockerfile.fpm.node10 | 26 - Dockerfile.fpm.node12 | 26 - Dockerfile.fpm.node14 | 26 - Dockerfile.fpm.node16 | 26 - Dockerfile.slim.apache | 44 +- Dockerfile.slim.cli | 36 +- Dockerfile.slim.fpm | 42 +- docker-bake.hcl | 901 ++++++++++-------- orbit.yml | 17 +- utils/Dockerfile.blueprint | 7 +- utils/Dockerfile.node.blueprint | 12 +- utils/Dockerfile.slim.blueprint | 50 +- utils/docker-bake.blueprint.hcl | 39 +- 25 files changed, 701 insertions(+), 748 deletions(-) create mode 100644 .dockerignore rename Dockerfile.apache.node14 => Dockerfile.apache.node (65%) delete mode 100644 Dockerfile.apache.node16 rename Dockerfile.apache.node10 => Dockerfile.cli.node (66%) delete mode 100644 Dockerfile.cli.node10 delete mode 100644 Dockerfile.cli.node12 delete mode 100644 Dockerfile.cli.node14 delete mode 100644 Dockerfile.cli.node16 rename Dockerfile.apache.node12 => Dockerfile.fpm.node (66%) delete mode 100644 Dockerfile.fpm.node10 delete mode 100644 Dockerfile.fpm.node12 delete mode 100644 Dockerfile.fpm.node14 delete mode 100644 Dockerfile.fpm.node16 diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..e7224775 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +/.git* +/docker-bake.hcl +/Dockerfile.* +/Makefile +/*.md +/LICENSE +/orbit* +/test* +/utils/*.blueprint.* +/utils/*.blueprint diff --git a/Dockerfile.apache b/Dockerfile.apache index 05196e97..99bacba5 100644 --- a/Dockerfile.apache +++ b/Dockerfile.apache @@ -1,11 +1,16 @@ +#syntax=docker/dockerfile-upstream:1 # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION +ARG REPO="thecodingmachine/php" +ARG TAG_PREFIX="" -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache as baseapp +ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache" +FROM $FROM_IMAGE LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETOS ARG TARGETARCH diff --git a/Dockerfile.apache.node14 b/Dockerfile.apache.node similarity index 65% rename from Dockerfile.apache.node14 rename to Dockerfile.apache.node index 49a006f8..7e69988a 100644 --- a/Dockerfile.apache.node14 +++ b/Dockerfile.apache.node @@ -1,10 +1,16 @@ +#syntax=docker/dockerfile-upstream:1 # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp +ARG REPO="thecodingmachine/php" +ARG TAG_PREFIX="" +ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}:${PHP_VERSION}-${GLOBAL_VERSION}-apache" +FROM $FROM_IMAGE LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 +ARG NODE_VERSION=16 USER root @@ -12,14 +18,14 @@ ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \ apt-get update && \ apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.apache.node16 b/Dockerfile.apache.node16 deleted file mode 100644 index 8bf14ef2..00000000 --- a/Dockerfile.apache.node16 +++ /dev/null @@ -1,26 +0,0 @@ -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp -LABEL authors="Julien Neuhart , David Négrier " - -ARG TARGETOS -ARG TARGETARCH -ARG BLACKFIRE_VERSION=1 - -USER root - -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ - apt-get update && \ - apt-get install -y --no-install-recommends nodejs && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -USER docker diff --git a/Dockerfile.cli b/Dockerfile.cli index 1d64507a..8aaedf43 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -1,11 +1,16 @@ +#syntax=docker/dockerfile-upstream:1 # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION +ARG REPO="thecodingmachine/php" +ARG TAG_PREFIX="" -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli as baseapp +ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli" +FROM $FROM_IMAGE LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETOS ARG TARGETARCH diff --git a/Dockerfile.apache.node10 b/Dockerfile.cli.node similarity index 66% rename from Dockerfile.apache.node10 rename to Dockerfile.cli.node index a3752a81..77437d7c 100644 --- a/Dockerfile.apache.node10 +++ b/Dockerfile.cli.node @@ -1,10 +1,16 @@ +#syntax=docker/dockerfile-upstream:1 # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp +ARG REPO="thecodingmachine/php" +ARG TAG_PREFIX="" +ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}:${PHP_VERSION}-${GLOBAL_VERSION}-cli" +FROM $FROM_IMAGE LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 +ARG NODE_VERSION=16 USER root @@ -12,14 +18,14 @@ ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \ apt-get update && \ apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm@^6.14 && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.cli.node10 b/Dockerfile.cli.node10 deleted file mode 100644 index b4c7fd15..00000000 --- a/Dockerfile.cli.node10 +++ /dev/null @@ -1,26 +0,0 @@ -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp -LABEL authors="Julien Neuhart , David Négrier " - -ARG TARGETOS -ARG TARGETARCH -ARG BLACKFIRE_VERSION=1 - -USER root - -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ - apt-get update && \ - apt-get install -y --no-install-recommends nodejs && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends yarn && \ - npm install -g npm@^6.14 && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -USER docker diff --git a/Dockerfile.cli.node12 b/Dockerfile.cli.node12 deleted file mode 100644 index 52fe4208..00000000 --- a/Dockerfile.cli.node12 +++ /dev/null @@ -1,26 +0,0 @@ -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp -LABEL authors="Julien Neuhart , David Négrier " - -ARG TARGETOS -ARG TARGETARCH -ARG BLACKFIRE_VERSION=1 - -USER root - -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ - apt-get update && \ - apt-get install -y --no-install-recommends nodejs && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -USER docker diff --git a/Dockerfile.cli.node14 b/Dockerfile.cli.node14 deleted file mode 100644 index 2be12c05..00000000 --- a/Dockerfile.cli.node14 +++ /dev/null @@ -1,26 +0,0 @@ -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp -LABEL authors="Julien Neuhart , David Négrier " - -ARG TARGETOS -ARG TARGETARCH -ARG BLACKFIRE_VERSION=1 - -USER root - -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ - apt-get update && \ - apt-get install -y --no-install-recommends nodejs && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -USER docker diff --git a/Dockerfile.cli.node16 b/Dockerfile.cli.node16 deleted file mode 100644 index bcb17561..00000000 --- a/Dockerfile.cli.node16 +++ /dev/null @@ -1,26 +0,0 @@ -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp -LABEL authors="Julien Neuhart , David Négrier " - -ARG TARGETOS -ARG TARGETARCH -ARG BLACKFIRE_VERSION=1 - -USER root - -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ - apt-get update && \ - apt-get install -y --no-install-recommends nodejs && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -USER docker diff --git a/Dockerfile.fpm b/Dockerfile.fpm index f139b82c..ed56eb92 100644 --- a/Dockerfile.fpm +++ b/Dockerfile.fpm @@ -1,11 +1,16 @@ +#syntax=docker/dockerfile-upstream:1 # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION +ARG REPO="thecodingmachine/php" +ARG TAG_PREFIX="" -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm as baseapp +ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm" +FROM $FROM_IMAGE LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETOS ARG TARGETARCH diff --git a/Dockerfile.apache.node12 b/Dockerfile.fpm.node similarity index 66% rename from Dockerfile.apache.node12 rename to Dockerfile.fpm.node index 22df0156..abd50c2f 100644 --- a/Dockerfile.apache.node12 +++ b/Dockerfile.fpm.node @@ -1,10 +1,16 @@ +#syntax=docker/dockerfile-upstream:1 # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp +ARG REPO="thecodingmachine/php" +ARG TAG_PREFIX="" +ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}:${PHP_VERSION}-${GLOBAL_VERSION}-fpm" +FROM $FROM_IMAGE LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 +ARG NODE_VERSION=16 USER root @@ -12,14 +18,14 @@ ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \ apt-get update && \ apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.fpm.node10 b/Dockerfile.fpm.node10 deleted file mode 100644 index c3bf8634..00000000 --- a/Dockerfile.fpm.node10 +++ /dev/null @@ -1,26 +0,0 @@ -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp -LABEL authors="Julien Neuhart , David Négrier " - -ARG TARGETOS -ARG TARGETARCH -ARG BLACKFIRE_VERSION=1 - -USER root - -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ - apt-get update && \ - apt-get install -y --no-install-recommends nodejs && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends yarn && \ - npm install -g npm@^6.14 && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -USER docker diff --git a/Dockerfile.fpm.node12 b/Dockerfile.fpm.node12 deleted file mode 100644 index 76414521..00000000 --- a/Dockerfile.fpm.node12 +++ /dev/null @@ -1,26 +0,0 @@ -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp -LABEL authors="Julien Neuhart , David Négrier " - -ARG TARGETOS -ARG TARGETARCH -ARG BLACKFIRE_VERSION=1 - -USER root - -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_12.x | bash - && \ - apt-get update && \ - apt-get install -y --no-install-recommends nodejs && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -USER docker diff --git a/Dockerfile.fpm.node14 b/Dockerfile.fpm.node14 deleted file mode 100644 index 459a6639..00000000 --- a/Dockerfile.fpm.node14 +++ /dev/null @@ -1,26 +0,0 @@ -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp -LABEL authors="Julien Neuhart , David Négrier " - -ARG TARGETOS -ARG TARGETARCH -ARG BLACKFIRE_VERSION=1 - -USER root - -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ - apt-get update && \ - apt-get install -y --no-install-recommends nodejs && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -USER docker diff --git a/Dockerfile.fpm.node16 b/Dockerfile.fpm.node16 deleted file mode 100644 index ff34925f..00000000 --- a/Dockerfile.fpm.node16 +++ /dev/null @@ -1,26 +0,0 @@ -# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp -LABEL authors="Julien Neuhart , David Négrier " - -ARG TARGETOS -ARG TARGETARCH -ARG BLACKFIRE_VERSION=1 - -USER root - -ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} - -RUN apt-get update && \ - apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ - apt-get update && \ - apt-get install -y --no-install-recommends nodejs && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update && \ - apt-get install -y --no-install-recommends yarn && \ - npm install -g npm && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - -USER docker diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 78f32a1d..43c4c773 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -1,6 +1,8 @@ +#syntax=docker/dockerfile-upstream:1 # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Fixes some weird terminal issues such as broken clear / CTRL+L #ENV TERM=linux @@ -53,7 +55,6 @@ RUN apt-get update \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ && if [[ "${PHP_VERSION}" =~ ^7 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ - && if [[ "${PHP_VERSION}" =~ ^8 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* @@ -210,8 +211,8 @@ EXPOSE 80 ENV APACHE_DOCUMENT_ROOT= -RUN sed -ri -e 's!/var/www/html!${ABSOLUTE_APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf -RUN sed -ri -e 's!/var/www/!${ABSOLUTE_APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +RUN sed -ri -e 's!/var/www/html!${ABSOLUTE_APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf && \ + sed -ri -e 's!/var/www/!${ABSOLUTE_APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf # Let's remove the default Apache php.ini file (it will be copied from TEMPLATE_PHP_INI) RUN rm /etc/php/${PHP_VERSION}/apache2/php.ini @@ -254,7 +255,7 @@ USER docker # | We create an empty known_host file and we launch the ssh-agent # | -RUN mkdir ~/.ssh && touch ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts && eval $(ssh-agent -s) +RUN mkdir ~/.ssh && touch ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts && eval "$(ssh-agent -s)" # |-------------------------------------------------------------------------- @@ -295,7 +296,8 @@ ENV IMAGE_VARIANT=apache # Add Tini (to be able to stop the container with ctrl-c). # See: https://github.com/krallin/tini -ENV TINI_VERSION v0.16.1 +# FIX https://github.com/krallin/tini/pull/67 +ENV TINI_VERSION v0.19.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini RUN chmod +x /tini @@ -315,8 +317,8 @@ ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] # Let's register a servername to remove the message "apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message" -RUN echo "ServerName localhost" > /etc/apache2/conf-available/servername.conf -RUN a2enconf servername +RUN echo "ServerName localhost" > /etc/apache2/conf-available/servername.conf && \ + a2enconf servername CMD ["apache2-foreground"] @@ -357,22 +359,21 @@ ONBUILD RUN sudo -E PHP_EXTENSIONS="$PHP_EXTENSIONS" /usr/local/bin/install_sele # | # | Supercronic is a drop-in replacement for cron (for containers). # | -ENV SUPERCRONIC_OPTIONS= +ENV SUPERCRONIC_OPTIONS="" ONBUILD ARG INSTALL_CRON ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ - SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-$TARGETOS-$TARGETARCH \ - && echo $SUPERCRONIC_URL \ - && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ - && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ - && if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ - elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ - else echo "Target arch '$TARGETARCH' is not supported"; fi; \ - && curl -fsSLO "$SUPERCRONIC_URL" \ - && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ - && chmod +x "$SUPERCRONIC" \ - && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ - && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ - fi; + SUPERCRONIC="supercronic-${TARGETOS}-${TARGETARCH}" \ + && SUPERCRONIC_URL="https://github.com/aptible/supercronic/releases/download/v0.1.9/${SUPERCRONIC}" \ + && echo ${SUPERCRONIC_URL} \ + && if [ "$TARGETARCH" = "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ + elif [ "$TARGETARCH" = "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ + else echo "Target arch '${TARGETARCH}' is not supported"; exit 1; fi \ + && curl -fsSLO "${SUPERCRONIC_URL}" \ + && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ + && chmod +x "${SUPERCRONIC}" \ + && sudo mv "${SUPERCRONIC}" "/usr/local/bin/${SUPERCRONIC}" \ + && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ + fi # |-------------------------------------------------------------------------- @@ -394,6 +395,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ sudo apt-get clean && \ sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index a896705a..d35ed364 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -1,6 +1,8 @@ +#syntax=docker/dockerfile-upstream:1 # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Fixes some weird terminal issues such as broken clear / CTRL+L #ENV TERM=linux @@ -53,7 +55,6 @@ RUN apt-get update \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ && if [[ "${PHP_VERSION}" =~ ^7 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ - && if [[ "${PHP_VERSION}" =~ ^8 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* @@ -180,7 +181,7 @@ USER docker # | We create an empty known_host file and we launch the ssh-agent # | -RUN mkdir ~/.ssh && touch ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts && eval $(ssh-agent -s) +RUN mkdir ~/.ssh && touch ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts && eval "$(ssh-agent -s)" # |-------------------------------------------------------------------------- @@ -221,7 +222,8 @@ ENV IMAGE_VARIANT=cli # Add Tini (to be able to stop the container with ctrl-c). # See: https://github.com/krallin/tini -ENV TINI_VERSION v0.16.1 +# FIX https://github.com/krallin/tini/pull/67 +ENV TINI_VERSION v0.19.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini RUN chmod +x /tini @@ -262,22 +264,21 @@ ONBUILD RUN sudo -E PHP_EXTENSIONS="$PHP_EXTENSIONS" /usr/local/bin/install_sele # | # | Supercronic is a drop-in replacement for cron (for containers). # | -ENV SUPERCRONIC_OPTIONS= +ENV SUPERCRONIC_OPTIONS="" ONBUILD ARG INSTALL_CRON ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ - SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-$TARGETOS-$TARGETARCH \ - && echo $SUPERCRONIC_URL \ - && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ - && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ - && if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ - elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ - else echo "Target arch '$TARGETARCH' is not supported"; fi; \ - && curl -fsSLO "$SUPERCRONIC_URL" \ - && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ - && chmod +x "$SUPERCRONIC" \ - && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ - && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ - fi; + SUPERCRONIC="supercronic-${TARGETOS}-${TARGETARCH}" \ + && SUPERCRONIC_URL="https://github.com/aptible/supercronic/releases/download/v0.1.9/${SUPERCRONIC}" \ + && echo ${SUPERCRONIC_URL} \ + && if [ "$TARGETARCH" = "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ + elif [ "$TARGETARCH" = "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ + else echo "Target arch '${TARGETARCH}' is not supported"; exit 1; fi \ + && curl -fsSLO "${SUPERCRONIC_URL}" \ + && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ + && chmod +x "${SUPERCRONIC}" \ + && sudo mv "${SUPERCRONIC}" "/usr/local/bin/${SUPERCRONIC}" \ + && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ + fi # |-------------------------------------------------------------------------- @@ -299,6 +300,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ sudo apt-get clean && \ sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 2ca98a65..8fa126ea 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -1,6 +1,8 @@ +#syntax=docker/dockerfile-upstream:1 # DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint) FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Fixes some weird terminal issues such as broken clear / CTRL+L #ENV TERM=linux @@ -53,7 +55,6 @@ RUN apt-get update \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ && if [[ "${PHP_VERSION}" =~ ^7 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ - && if [[ "${PHP_VERSION}" =~ ^8 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* @@ -159,8 +160,8 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* # Let's remove the default PHP-FPM php.ini file (it will be copied from TEMPLATE_PHP_INI) -RUN rm /etc/php/${PHP_VERSION}/fpm/php.ini -RUN ln -s /usr/sbin/php-fpm${PHP_VERSION} /usr/sbin/php-fpm +RUN rm /etc/php/${PHP_VERSION}/fpm/php.ini && \ + ln -s /usr/sbin/php-fpm${PHP_VERSION} /usr/sbin/php-fpm COPY utils/fpm-docker.conf /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf COPY utils/fpm-zz-docker.conf /etc/php/${PHP_VERSION}/fpm/pool.d/zz-docker.conf @@ -193,7 +194,7 @@ USER docker # | We create an empty known_host file and we launch the ssh-agent # | -RUN mkdir ~/.ssh && touch ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts && eval $(ssh-agent -s) +RUN mkdir ~/.ssh && touch ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts && eval "$(ssh-agent -s)" # |-------------------------------------------------------------------------- @@ -234,7 +235,8 @@ ENV IMAGE_VARIANT=fpm # Add Tini (to be able to stop the container with ctrl-c). # See: https://github.com/krallin/tini -ENV TINI_VERSION v0.16.1 +# FIX https://github.com/krallin/tini/pull/67 +ENV TINI_VERSION v0.19.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini RUN chmod +x /tini @@ -264,7 +266,7 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P sed -i 's/^group = www-data/;group = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i 's#listen = /run/php/php${PHP_VERSION}-fpm.sock#;listen = /run/php/php${PHP_VERSION}-fpm.sock#g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i "s#pid = /run/php/php${PHP_VERSION}-fpm.pid#;pid = /run/php/php${PHP_VERSION}-fpm.pid#g" /etc/php/${PHP_VERSION}/fpm/php-fpm.conf && \ - if [ "$PHP_VERSION" = "7.2" ]; then \ + if [[ "$PHP_VERSION" = "7.2" ]]; then \ sed -i 's/^log_limit =/;log_limit =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf && \ sed -i 's/^decorate_workers_output =/;decorate_workers_output =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf; \ fi @@ -285,22 +287,21 @@ ONBUILD RUN sudo -E PHP_EXTENSIONS="$PHP_EXTENSIONS" /usr/local/bin/install_sele # | # | Supercronic is a drop-in replacement for cron (for containers). # | -ENV SUPERCRONIC_OPTIONS= +ENV SUPERCRONIC_OPTIONS="" ONBUILD ARG INSTALL_CRON ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ - SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-$TARGETOS-$TARGETARCH \ - && echo $SUPERCRONIC_URL \ - && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ - && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ - && if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ - elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ - else echo "Target arch '$TARGETARCH' is not supported"; fi; \ - && curl -fsSLO "$SUPERCRONIC_URL" \ - && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ - && chmod +x "$SUPERCRONIC" \ - && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ - && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ - fi; + SUPERCRONIC="supercronic-${TARGETOS}-${TARGETARCH}" \ + && SUPERCRONIC_URL="https://github.com/aptible/supercronic/releases/download/v0.1.9/${SUPERCRONIC}" \ + && echo ${SUPERCRONIC_URL} \ + && if [ "$TARGETARCH" = "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ + elif [ "$TARGETARCH" = "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ + else echo "Target arch '${TARGETARCH}' is not supported"; exit 1; fi \ + && curl -fsSLO "${SUPERCRONIC_URL}" \ + && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ + && chmod +x "${SUPERCRONIC}" \ + && sudo mv "${SUPERCRONIC}" "/usr/local/bin/${SUPERCRONIC}" \ + && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ + fi # |-------------------------------------------------------------------------- @@ -322,6 +323,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ sudo apt-get clean && \ sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/docker-bake.hcl b/docker-bake.hcl index 138030f8..7eb07bc9 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -135,14 +135,15 @@ group "php72" { } variable "REPO" {default = "thecodingmachine/php"} +variable "TAG_PREFIX" {default = ""} variable "PHP_PATCH_MINOR" {default = ""} variable "GLOBAL_VERSION" {default = "v4"} function "tag" { - params = [PHP_VERSION, VARIANT, PHP_MINOR] + params = [PHP_VERSION, VARIANT] result = [ - "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", - notequal("",PHP_MINOR) ? "${REPO}:${PHP_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "", + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", + notequal("",PHP_PATCH_MINOR) ? "${REPO}:${TAG_PREFIX}${PHP_PATCH_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "", ] } @@ -151,13 +152,10 @@ target "default" { args = { GLOBAL_VERSION = "${GLOBAL_VERSION}" } - platforms = ["linux/amd64"] + #platforms = ["linux/amd64", "linux/arm64"] + platforms = [BAKE_LOCAL_PLATFORM] pull = true - #output = ["customDir"] - #output = ["type=tar,dest=myimage.tar"] - output = ["type=docker"] # load in local docker - #output = ["type=registry"] # push - #output = ["type=image"] # push also ? + output = ["type=docker"] # export in local docker } @@ -167,7 +165,7 @@ target "default" { # thecodingmachine/php:8.1-v4-slim-apache target "php81-slim-apache" { inherits = ["default"] - tags = tag("8.1", "slim-apache", "${PHP_PATCH_MINOR}") + tags = tag("8.1", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "8.1" @@ -177,71 +175,80 @@ target "php81-slim-apache" { # thecodingmachine/php:8.1-v4-apache target "php81-apache" { - contexts = { - baseapp = "target:php81-slim-apache" - } inherits = ["default"] - tags = tag("8.1", "apache", "${PHP_PATCH_MINOR}") + tags = tag("8.1", "apache") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.1" VARIANT = "apache" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php81-slim-apache" } } # thecodingmachine/php:8.1-v4-apache-node16 target "php81-apache-node16" { - contexts = { - baseapp = "target:php81-apache" - } inherits = ["default"] - tags = tag("8.1", "apache-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node16" + tags = tag("8.1", "apache-node16") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.1" VARIANT = "apache-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php81-apache" } } # thecodingmachine/php:8.1-v4-apache-node14 target "php81-apache-node14" { - contexts = { - baseapp = "target:php81-apache" - } inherits = ["default"] - tags = tag("8.1", "apache-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node14" + tags = tag("8.1", "apache-node14") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.1" VARIANT = "apache-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php81-apache" } } # thecodingmachine/php:8.1-v4-apache-node12 target "php81-apache-node12" { - contexts = { - baseapp = "target:php81-apache" - } inherits = ["default"] - tags = tag("8.1", "apache-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node12" + tags = tag("8.1", "apache-node12") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.1" VARIANT = "apache-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php81-apache" } } # thecodingmachine/php:8.1-v4-apache-node10 target "php81-apache-node10" { - contexts = { - baseapp = "target:php81-apache" - } inherits = ["default"] - tags = tag("8.1", "apache-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node10" + tags = tag("8.1", "apache-node10") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.1" VARIANT = "apache-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php81-apache" } } @@ -251,7 +258,7 @@ target "php81-apache-node10" { # thecodingmachine/php:8.1-v4-slim-fpm target "php81-slim-fpm" { inherits = ["default"] - tags = tag("8.1", "slim-fpm", "${PHP_PATCH_MINOR}") + tags = tag("8.1", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "8.1" @@ -261,71 +268,80 @@ target "php81-slim-fpm" { # thecodingmachine/php:8.1-v4-fpm target "php81-fpm" { - contexts = { - baseapp = "target:php81-slim-fpm" - } inherits = ["default"] - tags = tag("8.1", "fpm", "${PHP_PATCH_MINOR}") + tags = tag("8.1", "fpm") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.1" VARIANT = "fpm" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php81-slim-fpm" } } # thecodingmachine/php:8.1-v4-fpm-node16 target "php81-fpm-node16" { - contexts = { - baseapp = "target:php81-fpm" - } inherits = ["default"] - tags = tag("8.1", "fpm-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node16" + tags = tag("8.1", "fpm-node16") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.1" VARIANT = "fpm-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php81-fpm" } } # thecodingmachine/php:8.1-v4-fpm-node14 target "php81-fpm-node14" { - contexts = { - baseapp = "target:php81-fpm" - } inherits = ["default"] - tags = tag("8.1", "fpm-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node14" + tags = tag("8.1", "fpm-node14") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.1" VARIANT = "fpm-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php81-fpm" } } # thecodingmachine/php:8.1-v4-fpm-node12 target "php81-fpm-node12" { - contexts = { - baseapp = "target:php81-fpm" - } inherits = ["default"] - tags = tag("8.1", "fpm-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node12" + tags = tag("8.1", "fpm-node12") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.1" VARIANT = "fpm-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php81-fpm" } } # thecodingmachine/php:8.1-v4-fpm-node10 target "php81-fpm-node10" { - contexts = { - baseapp = "target:php81-fpm" - } inherits = ["default"] - tags = tag("8.1", "fpm-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node10" + tags = tag("8.1", "fpm-node10") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.1" VARIANT = "fpm-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php81-fpm" } } @@ -335,7 +351,7 @@ target "php81-fpm-node10" { # thecodingmachine/php:8.1-v4-slim-cli target "php81-slim-cli" { inherits = ["default"] - tags = tag("8.1", "slim-cli", "${PHP_PATCH_MINOR}") + tags = tag("8.1", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "8.1" @@ -345,71 +361,80 @@ target "php81-slim-cli" { # thecodingmachine/php:8.1-v4-cli target "php81-cli" { - contexts = { - baseapp = "target:php81-slim-cli" - } inherits = ["default"] - tags = tag("8.1", "cli", "${PHP_PATCH_MINOR}") + tags = tag("8.1", "cli") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.1" VARIANT = "cli" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php81-slim-cli" } } # thecodingmachine/php:8.1-v4-cli-node16 target "php81-cli-node16" { - contexts = { - baseapp = "target:php81-cli" - } inherits = ["default"] - tags = tag("8.1", "cli-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node16" + tags = tag("8.1", "cli-node16") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.1" VARIANT = "cli-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php81-cli" } } # thecodingmachine/php:8.1-v4-cli-node14 target "php81-cli-node14" { - contexts = { - baseapp = "target:php81-cli" - } inherits = ["default"] - tags = tag("8.1", "cli-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node14" + tags = tag("8.1", "cli-node14") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.1" VARIANT = "cli-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php81-cli" } } # thecodingmachine/php:8.1-v4-cli-node12 target "php81-cli-node12" { - contexts = { - baseapp = "target:php81-cli" - } inherits = ["default"] - tags = tag("8.1", "cli-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node12" + tags = tag("8.1", "cli-node12") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.1" VARIANT = "cli-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php81-cli" } } # thecodingmachine/php:8.1-v4-cli-node10 target "php81-cli-node10" { - contexts = { - baseapp = "target:php81-cli" - } inherits = ["default"] - tags = tag("8.1", "cli-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node10" + tags = tag("8.1", "cli-node10") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.1" VARIANT = "cli-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php81-cli" } } @@ -419,7 +444,7 @@ target "php81-cli-node10" { # thecodingmachine/php:8.0-v4-slim-apache target "php80-slim-apache" { inherits = ["default"] - tags = tag("8.0", "slim-apache", "${PHP_PATCH_MINOR}") + tags = tag("8.0", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "8.0" @@ -429,71 +454,80 @@ target "php80-slim-apache" { # thecodingmachine/php:8.0-v4-apache target "php80-apache" { - contexts = { - baseapp = "target:php80-slim-apache" - } inherits = ["default"] - tags = tag("8.0", "apache", "${PHP_PATCH_MINOR}") + tags = tag("8.0", "apache") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.0" VARIANT = "apache" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php80-slim-apache" } } # thecodingmachine/php:8.0-v4-apache-node16 target "php80-apache-node16" { - contexts = { - baseapp = "target:php80-apache" - } inherits = ["default"] - tags = tag("8.0", "apache-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node16" + tags = tag("8.0", "apache-node16") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.0" VARIANT = "apache-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php80-apache" } } # thecodingmachine/php:8.0-v4-apache-node14 target "php80-apache-node14" { - contexts = { - baseapp = "target:php80-apache" - } inherits = ["default"] - tags = tag("8.0", "apache-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node14" + tags = tag("8.0", "apache-node14") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.0" VARIANT = "apache-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php80-apache" } } # thecodingmachine/php:8.0-v4-apache-node12 target "php80-apache-node12" { - contexts = { - baseapp = "target:php80-apache" - } inherits = ["default"] - tags = tag("8.0", "apache-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node12" + tags = tag("8.0", "apache-node12") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.0" VARIANT = "apache-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php80-apache" } } # thecodingmachine/php:8.0-v4-apache-node10 target "php80-apache-node10" { - contexts = { - baseapp = "target:php80-apache" - } inherits = ["default"] - tags = tag("8.0", "apache-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node10" + tags = tag("8.0", "apache-node10") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "8.0" VARIANT = "apache-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php80-apache" } } @@ -503,7 +537,7 @@ target "php80-apache-node10" { # thecodingmachine/php:8.0-v4-slim-fpm target "php80-slim-fpm" { inherits = ["default"] - tags = tag("8.0", "slim-fpm", "${PHP_PATCH_MINOR}") + tags = tag("8.0", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "8.0" @@ -513,71 +547,80 @@ target "php80-slim-fpm" { # thecodingmachine/php:8.0-v4-fpm target "php80-fpm" { - contexts = { - baseapp = "target:php80-slim-fpm" - } inherits = ["default"] - tags = tag("8.0", "fpm", "${PHP_PATCH_MINOR}") + tags = tag("8.0", "fpm") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.0" VARIANT = "fpm" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php80-slim-fpm" } } # thecodingmachine/php:8.0-v4-fpm-node16 target "php80-fpm-node16" { - contexts = { - baseapp = "target:php80-fpm" - } inherits = ["default"] - tags = tag("8.0", "fpm-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node16" + tags = tag("8.0", "fpm-node16") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.0" VARIANT = "fpm-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php80-fpm" } } # thecodingmachine/php:8.0-v4-fpm-node14 target "php80-fpm-node14" { - contexts = { - baseapp = "target:php80-fpm" - } inherits = ["default"] - tags = tag("8.0", "fpm-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node14" + tags = tag("8.0", "fpm-node14") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.0" VARIANT = "fpm-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php80-fpm" } } # thecodingmachine/php:8.0-v4-fpm-node12 target "php80-fpm-node12" { - contexts = { - baseapp = "target:php80-fpm" - } inherits = ["default"] - tags = tag("8.0", "fpm-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node12" + tags = tag("8.0", "fpm-node12") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.0" VARIANT = "fpm-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php80-fpm" } } # thecodingmachine/php:8.0-v4-fpm-node10 target "php80-fpm-node10" { - contexts = { - baseapp = "target:php80-fpm" - } inherits = ["default"] - tags = tag("8.0", "fpm-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node10" + tags = tag("8.0", "fpm-node10") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "8.0" VARIANT = "fpm-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php80-fpm" } } @@ -587,7 +630,7 @@ target "php80-fpm-node10" { # thecodingmachine/php:8.0-v4-slim-cli target "php80-slim-cli" { inherits = ["default"] - tags = tag("8.0", "slim-cli", "${PHP_PATCH_MINOR}") + tags = tag("8.0", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "8.0" @@ -597,71 +640,80 @@ target "php80-slim-cli" { # thecodingmachine/php:8.0-v4-cli target "php80-cli" { - contexts = { - baseapp = "target:php80-slim-cli" - } inherits = ["default"] - tags = tag("8.0", "cli", "${PHP_PATCH_MINOR}") + tags = tag("8.0", "cli") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.0" VARIANT = "cli" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php80-slim-cli" } } # thecodingmachine/php:8.0-v4-cli-node16 target "php80-cli-node16" { - contexts = { - baseapp = "target:php80-cli" - } inherits = ["default"] - tags = tag("8.0", "cli-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node16" + tags = tag("8.0", "cli-node16") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.0" VARIANT = "cli-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php80-cli" } } # thecodingmachine/php:8.0-v4-cli-node14 target "php80-cli-node14" { - contexts = { - baseapp = "target:php80-cli" - } inherits = ["default"] - tags = tag("8.0", "cli-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node14" + tags = tag("8.0", "cli-node14") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.0" VARIANT = "cli-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php80-cli" } } # thecodingmachine/php:8.0-v4-cli-node12 target "php80-cli-node12" { - contexts = { - baseapp = "target:php80-cli" - } inherits = ["default"] - tags = tag("8.0", "cli-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node12" + tags = tag("8.0", "cli-node12") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.0" VARIANT = "cli-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php80-cli" } } # thecodingmachine/php:8.0-v4-cli-node10 target "php80-cli-node10" { - contexts = { - baseapp = "target:php80-cli" - } inherits = ["default"] - tags = tag("8.0", "cli-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node10" + tags = tag("8.0", "cli-node10") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "8.0" VARIANT = "cli-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php80-cli" } } @@ -671,7 +723,7 @@ target "php80-cli-node10" { # thecodingmachine/php:7.4-v4-slim-apache target "php74-slim-apache" { inherits = ["default"] - tags = tag("7.4", "slim-apache", "${PHP_PATCH_MINOR}") + tags = tag("7.4", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "7.4" @@ -681,71 +733,80 @@ target "php74-slim-apache" { # thecodingmachine/php:7.4-v4-apache target "php74-apache" { - contexts = { - baseapp = "target:php74-slim-apache" - } inherits = ["default"] - tags = tag("7.4", "apache", "${PHP_PATCH_MINOR}") + tags = tag("7.4", "apache") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.4" VARIANT = "apache" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php74-slim-apache" } } # thecodingmachine/php:7.4-v4-apache-node16 target "php74-apache-node16" { - contexts = { - baseapp = "target:php74-apache" - } inherits = ["default"] - tags = tag("7.4", "apache-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node16" + tags = tag("7.4", "apache-node16") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.4" VARIANT = "apache-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php74-apache" } } # thecodingmachine/php:7.4-v4-apache-node14 target "php74-apache-node14" { - contexts = { - baseapp = "target:php74-apache" - } inherits = ["default"] - tags = tag("7.4", "apache-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node14" + tags = tag("7.4", "apache-node14") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.4" VARIANT = "apache-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php74-apache" } } # thecodingmachine/php:7.4-v4-apache-node12 target "php74-apache-node12" { - contexts = { - baseapp = "target:php74-apache" - } inherits = ["default"] - tags = tag("7.4", "apache-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node12" + tags = tag("7.4", "apache-node12") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.4" VARIANT = "apache-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php74-apache" } } # thecodingmachine/php:7.4-v4-apache-node10 target "php74-apache-node10" { - contexts = { - baseapp = "target:php74-apache" - } inherits = ["default"] - tags = tag("7.4", "apache-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node10" + tags = tag("7.4", "apache-node10") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.4" VARIANT = "apache-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php74-apache" } } @@ -755,7 +816,7 @@ target "php74-apache-node10" { # thecodingmachine/php:7.4-v4-slim-fpm target "php74-slim-fpm" { inherits = ["default"] - tags = tag("7.4", "slim-fpm", "${PHP_PATCH_MINOR}") + tags = tag("7.4", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "7.4" @@ -765,71 +826,80 @@ target "php74-slim-fpm" { # thecodingmachine/php:7.4-v4-fpm target "php74-fpm" { - contexts = { - baseapp = "target:php74-slim-fpm" - } inherits = ["default"] - tags = tag("7.4", "fpm", "${PHP_PATCH_MINOR}") + tags = tag("7.4", "fpm") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.4" VARIANT = "fpm" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php74-slim-fpm" } } # thecodingmachine/php:7.4-v4-fpm-node16 target "php74-fpm-node16" { - contexts = { - baseapp = "target:php74-fpm" - } inherits = ["default"] - tags = tag("7.4", "fpm-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node16" + tags = tag("7.4", "fpm-node16") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.4" VARIANT = "fpm-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php74-fpm" } } # thecodingmachine/php:7.4-v4-fpm-node14 target "php74-fpm-node14" { - contexts = { - baseapp = "target:php74-fpm" - } inherits = ["default"] - tags = tag("7.4", "fpm-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node14" + tags = tag("7.4", "fpm-node14") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.4" VARIANT = "fpm-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php74-fpm" } } # thecodingmachine/php:7.4-v4-fpm-node12 target "php74-fpm-node12" { - contexts = { - baseapp = "target:php74-fpm" - } inherits = ["default"] - tags = tag("7.4", "fpm-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node12" + tags = tag("7.4", "fpm-node12") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.4" VARIANT = "fpm-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php74-fpm" } } # thecodingmachine/php:7.4-v4-fpm-node10 target "php74-fpm-node10" { - contexts = { - baseapp = "target:php74-fpm" - } inherits = ["default"] - tags = tag("7.4", "fpm-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node10" + tags = tag("7.4", "fpm-node10") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.4" VARIANT = "fpm-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php74-fpm" } } @@ -839,7 +909,7 @@ target "php74-fpm-node10" { # thecodingmachine/php:7.4-v4-slim-cli target "php74-slim-cli" { inherits = ["default"] - tags = tag("7.4", "slim-cli", "${PHP_PATCH_MINOR}") + tags = tag("7.4", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "7.4" @@ -849,71 +919,80 @@ target "php74-slim-cli" { # thecodingmachine/php:7.4-v4-cli target "php74-cli" { - contexts = { - baseapp = "target:php74-slim-cli" - } inherits = ["default"] - tags = tag("7.4", "cli", "${PHP_PATCH_MINOR}") + tags = tag("7.4", "cli") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.4" VARIANT = "cli" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php74-slim-cli" } } # thecodingmachine/php:7.4-v4-cli-node16 target "php74-cli-node16" { - contexts = { - baseapp = "target:php74-cli" - } inherits = ["default"] - tags = tag("7.4", "cli-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node16" + tags = tag("7.4", "cli-node16") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.4" VARIANT = "cli-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php74-cli" } } # thecodingmachine/php:7.4-v4-cli-node14 target "php74-cli-node14" { - contexts = { - baseapp = "target:php74-cli" - } inherits = ["default"] - tags = tag("7.4", "cli-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node14" + tags = tag("7.4", "cli-node14") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.4" VARIANT = "cli-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php74-cli" } } # thecodingmachine/php:7.4-v4-cli-node12 target "php74-cli-node12" { - contexts = { - baseapp = "target:php74-cli" - } inherits = ["default"] - tags = tag("7.4", "cli-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node12" + tags = tag("7.4", "cli-node12") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.4" VARIANT = "cli-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php74-cli" } } # thecodingmachine/php:7.4-v4-cli-node10 target "php74-cli-node10" { - contexts = { - baseapp = "target:php74-cli" - } inherits = ["default"] - tags = tag("7.4", "cli-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node10" + tags = tag("7.4", "cli-node10") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.4" VARIANT = "cli-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php74-cli" } } @@ -923,7 +1002,7 @@ target "php74-cli-node10" { # thecodingmachine/php:7.3-v4-slim-apache target "php73-slim-apache" { inherits = ["default"] - tags = tag("7.3", "slim-apache", "${PHP_PATCH_MINOR}") + tags = tag("7.3", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "7.3" @@ -933,71 +1012,80 @@ target "php73-slim-apache" { # thecodingmachine/php:7.3-v4-apache target "php73-apache" { - contexts = { - baseapp = "target:php73-slim-apache" - } inherits = ["default"] - tags = tag("7.3", "apache", "${PHP_PATCH_MINOR}") + tags = tag("7.3", "apache") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.3" VARIANT = "apache" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php73-slim-apache" } } # thecodingmachine/php:7.3-v4-apache-node16 target "php73-apache-node16" { - contexts = { - baseapp = "target:php73-apache" - } inherits = ["default"] - tags = tag("7.3", "apache-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node16" + tags = tag("7.3", "apache-node16") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.3" VARIANT = "apache-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php73-apache" } } # thecodingmachine/php:7.3-v4-apache-node14 target "php73-apache-node14" { - contexts = { - baseapp = "target:php73-apache" - } inherits = ["default"] - tags = tag("7.3", "apache-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node14" + tags = tag("7.3", "apache-node14") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.3" VARIANT = "apache-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php73-apache" } } # thecodingmachine/php:7.3-v4-apache-node12 target "php73-apache-node12" { - contexts = { - baseapp = "target:php73-apache" - } inherits = ["default"] - tags = tag("7.3", "apache-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node12" + tags = tag("7.3", "apache-node12") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.3" VARIANT = "apache-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php73-apache" } } # thecodingmachine/php:7.3-v4-apache-node10 target "php73-apache-node10" { - contexts = { - baseapp = "target:php73-apache" - } inherits = ["default"] - tags = tag("7.3", "apache-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node10" + tags = tag("7.3", "apache-node10") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.3" VARIANT = "apache-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php73-apache" } } @@ -1007,7 +1095,7 @@ target "php73-apache-node10" { # thecodingmachine/php:7.3-v4-slim-fpm target "php73-slim-fpm" { inherits = ["default"] - tags = tag("7.3", "slim-fpm", "${PHP_PATCH_MINOR}") + tags = tag("7.3", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "7.3" @@ -1017,71 +1105,80 @@ target "php73-slim-fpm" { # thecodingmachine/php:7.3-v4-fpm target "php73-fpm" { - contexts = { - baseapp = "target:php73-slim-fpm" - } inherits = ["default"] - tags = tag("7.3", "fpm", "${PHP_PATCH_MINOR}") + tags = tag("7.3", "fpm") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.3" VARIANT = "fpm" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php73-slim-fpm" } } # thecodingmachine/php:7.3-v4-fpm-node16 target "php73-fpm-node16" { - contexts = { - baseapp = "target:php73-fpm" - } inherits = ["default"] - tags = tag("7.3", "fpm-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node16" + tags = tag("7.3", "fpm-node16") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.3" VARIANT = "fpm-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php73-fpm" } } # thecodingmachine/php:7.3-v4-fpm-node14 target "php73-fpm-node14" { - contexts = { - baseapp = "target:php73-fpm" - } inherits = ["default"] - tags = tag("7.3", "fpm-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node14" + tags = tag("7.3", "fpm-node14") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.3" VARIANT = "fpm-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php73-fpm" } } # thecodingmachine/php:7.3-v4-fpm-node12 target "php73-fpm-node12" { - contexts = { - baseapp = "target:php73-fpm" - } inherits = ["default"] - tags = tag("7.3", "fpm-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node12" + tags = tag("7.3", "fpm-node12") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.3" VARIANT = "fpm-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php73-fpm" } } # thecodingmachine/php:7.3-v4-fpm-node10 target "php73-fpm-node10" { - contexts = { - baseapp = "target:php73-fpm" - } inherits = ["default"] - tags = tag("7.3", "fpm-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node10" + tags = tag("7.3", "fpm-node10") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.3" VARIANT = "fpm-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php73-fpm" } } @@ -1091,7 +1188,7 @@ target "php73-fpm-node10" { # thecodingmachine/php:7.3-v4-slim-cli target "php73-slim-cli" { inherits = ["default"] - tags = tag("7.3", "slim-cli", "${PHP_PATCH_MINOR}") + tags = tag("7.3", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "7.3" @@ -1101,71 +1198,80 @@ target "php73-slim-cli" { # thecodingmachine/php:7.3-v4-cli target "php73-cli" { - contexts = { - baseapp = "target:php73-slim-cli" - } inherits = ["default"] - tags = tag("7.3", "cli", "${PHP_PATCH_MINOR}") + tags = tag("7.3", "cli") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.3" VARIANT = "cli" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php73-slim-cli" } } # thecodingmachine/php:7.3-v4-cli-node16 target "php73-cli-node16" { - contexts = { - baseapp = "target:php73-cli" - } inherits = ["default"] - tags = tag("7.3", "cli-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node16" + tags = tag("7.3", "cli-node16") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.3" VARIANT = "cli-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php73-cli" } } # thecodingmachine/php:7.3-v4-cli-node14 target "php73-cli-node14" { - contexts = { - baseapp = "target:php73-cli" - } inherits = ["default"] - tags = tag("7.3", "cli-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node14" + tags = tag("7.3", "cli-node14") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.3" VARIANT = "cli-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php73-cli" } } # thecodingmachine/php:7.3-v4-cli-node12 target "php73-cli-node12" { - contexts = { - baseapp = "target:php73-cli" - } inherits = ["default"] - tags = tag("7.3", "cli-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node12" + tags = tag("7.3", "cli-node12") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.3" VARIANT = "cli-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php73-cli" } } # thecodingmachine/php:7.3-v4-cli-node10 target "php73-cli-node10" { - contexts = { - baseapp = "target:php73-cli" - } inherits = ["default"] - tags = tag("7.3", "cli-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node10" + tags = tag("7.3", "cli-node10") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.3" VARIANT = "cli-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php73-cli" } } @@ -1175,7 +1281,7 @@ target "php73-cli-node10" { # thecodingmachine/php:7.2-v4-slim-apache target "php72-slim-apache" { inherits = ["default"] - tags = tag("7.2", "slim-apache", "${PHP_PATCH_MINOR}") + tags = tag("7.2", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { PHP_VERSION = "7.2" @@ -1185,71 +1291,80 @@ target "php72-slim-apache" { # thecodingmachine/php:7.2-v4-apache target "php72-apache" { - contexts = { - baseapp = "target:php72-slim-apache" - } inherits = ["default"] - tags = tag("7.2", "apache", "${PHP_PATCH_MINOR}") + tags = tag("7.2", "apache") dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.2" VARIANT = "apache" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php72-slim-apache" } } # thecodingmachine/php:7.2-v4-apache-node16 target "php72-apache-node16" { - contexts = { - baseapp = "target:php72-apache" - } inherits = ["default"] - tags = tag("7.2", "apache-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node16" + tags = tag("7.2", "apache-node16") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.2" VARIANT = "apache-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php72-apache" } } # thecodingmachine/php:7.2-v4-apache-node14 target "php72-apache-node14" { - contexts = { - baseapp = "target:php72-apache" - } inherits = ["default"] - tags = tag("7.2", "apache-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node14" + tags = tag("7.2", "apache-node14") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.2" VARIANT = "apache-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php72-apache" } } # thecodingmachine/php:7.2-v4-apache-node12 target "php72-apache-node12" { - contexts = { - baseapp = "target:php72-apache" - } inherits = ["default"] - tags = tag("7.2", "apache-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node12" + tags = tag("7.2", "apache-node12") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.2" VARIANT = "apache-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php72-apache" } } # thecodingmachine/php:7.2-v4-apache-node10 target "php72-apache-node10" { - contexts = { - baseapp = "target:php72-apache" - } inherits = ["default"] - tags = tag("7.2", "apache-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.apache.node10" + tags = tag("7.2", "apache-node10") + dockerfile = "Dockerfile.apache" args = { PHP_VERSION = "7.2" VARIANT = "apache-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php72-apache" } } @@ -1259,7 +1374,7 @@ target "php72-apache-node10" { # thecodingmachine/php:7.2-v4-slim-fpm target "php72-slim-fpm" { inherits = ["default"] - tags = tag("7.2", "slim-fpm", "${PHP_PATCH_MINOR}") + tags = tag("7.2", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { PHP_VERSION = "7.2" @@ -1269,71 +1384,80 @@ target "php72-slim-fpm" { # thecodingmachine/php:7.2-v4-fpm target "php72-fpm" { - contexts = { - baseapp = "target:php72-slim-fpm" - } inherits = ["default"] - tags = tag("7.2", "fpm", "${PHP_PATCH_MINOR}") + tags = tag("7.2", "fpm") dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.2" VARIANT = "fpm" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php72-slim-fpm" } } # thecodingmachine/php:7.2-v4-fpm-node16 target "php72-fpm-node16" { - contexts = { - baseapp = "target:php72-fpm" - } inherits = ["default"] - tags = tag("7.2", "fpm-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node16" + tags = tag("7.2", "fpm-node16") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.2" VARIANT = "fpm-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php72-fpm" } } # thecodingmachine/php:7.2-v4-fpm-node14 target "php72-fpm-node14" { - contexts = { - baseapp = "target:php72-fpm" - } inherits = ["default"] - tags = tag("7.2", "fpm-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node14" + tags = tag("7.2", "fpm-node14") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.2" VARIANT = "fpm-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php72-fpm" } } # thecodingmachine/php:7.2-v4-fpm-node12 target "php72-fpm-node12" { - contexts = { - baseapp = "target:php72-fpm" - } inherits = ["default"] - tags = tag("7.2", "fpm-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node12" + tags = tag("7.2", "fpm-node12") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.2" VARIANT = "fpm-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php72-fpm" } } # thecodingmachine/php:7.2-v4-fpm-node10 target "php72-fpm-node10" { - contexts = { - baseapp = "target:php72-fpm" - } inherits = ["default"] - tags = tag("7.2", "fpm-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.fpm.node10" + tags = tag("7.2", "fpm-node10") + dockerfile = "Dockerfile.fpm" args = { PHP_VERSION = "7.2" VARIANT = "fpm-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php72-fpm" } } @@ -1343,7 +1467,7 @@ target "php72-fpm-node10" { # thecodingmachine/php:7.2-v4-slim-cli target "php72-slim-cli" { inherits = ["default"] - tags = tag("7.2", "slim-cli", "${PHP_PATCH_MINOR}") + tags = tag("7.2", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { PHP_VERSION = "7.2" @@ -1353,71 +1477,80 @@ target "php72-slim-cli" { # thecodingmachine/php:7.2-v4-cli target "php72-cli" { - contexts = { - baseapp = "target:php72-slim-cli" - } inherits = ["default"] - tags = tag("7.2", "cli", "${PHP_PATCH_MINOR}") + tags = tag("7.2", "cli") dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.2" VARIANT = "cli" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php72-slim-cli" } } # thecodingmachine/php:7.2-v4-cli-node16 target "php72-cli-node16" { - contexts = { - baseapp = "target:php72-cli" - } inherits = ["default"] - tags = tag("7.2", "cli-node16", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node16" + tags = tag("7.2", "cli-node16") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.2" VARIANT = "cli-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php72-cli" } } # thecodingmachine/php:7.2-v4-cli-node14 target "php72-cli-node14" { - contexts = { - baseapp = "target:php72-cli" - } inherits = ["default"] - tags = tag("7.2", "cli-node14", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node14" + tags = tag("7.2", "cli-node14") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.2" VARIANT = "cli-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php72-cli" } } # thecodingmachine/php:7.2-v4-cli-node12 target "php72-cli-node12" { - contexts = { - baseapp = "target:php72-cli" - } inherits = ["default"] - tags = tag("7.2", "cli-node12", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node12" + tags = tag("7.2", "cli-node12") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.2" VARIANT = "cli-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php72-cli" } } # thecodingmachine/php:7.2-v4-cli-node10 target "php72-cli-node10" { - contexts = { - baseapp = "target:php72-cli" - } inherits = ["default"] - tags = tag("7.2", "cli-node10", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.cli.node10" + tags = tag("7.2", "cli-node10") + dockerfile = "Dockerfile.cli" args = { PHP_VERSION = "7.2" VARIANT = "cli-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php72-cli" } } diff --git a/orbit.yml b/orbit.yml index d55d70f8..e299420e 100644 --- a/orbit.yml +++ b/orbit.yml @@ -23,22 +23,13 @@ tasks: - orbit generate -f utils/Dockerfile.slim.blueprint -o Dockerfile.slim.cli -p "variant,cli" - orbit generate -f utils/Dockerfile.slim.blueprint -o Dockerfile.slim.fpm -p "variant,fpm" - orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.apache -p "variant,apache;node_version," - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.apache.node10 -p "variant,apache;node_version,10" - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.apache.node12 -p "variant,apache;node_version,12" - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.apache.node14 -p "variant,apache;node_version,14" - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.apache.node16 -p "variant,apache;node_version,16" + - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.apache.node -p "variant,apache" - orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.cli -p "variant,cli;node_version," - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.cli.node10 -p "variant,cli;node_version,10" - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.cli.node12 -p "variant,cli;node_version,12" - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.cli.node14 -p "variant,cli;node_version,14" - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.cli.node16 -p "variant,cli;node_version,16" + - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.cli.node -p "variant,cli" - orbit generate -f utils/Dockerfile.blueprint -o Dockerfile.fpm -p "variant,fpm;node_version," - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node10 -p "variant,fpm;node_version,10" - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node12 -p "variant,fpm;node_version,12" - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node14 -p "variant,fpm;node_version,14" - - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node16 -p "variant,fpm;node_version,16" + - orbit generate -f utils/Dockerfile.node.blueprint -o Dockerfile.fpm.node -p "variant,fpm" - |- - sed -i '1i\# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)' Dockerfile.* + sed -i '2i\# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)' Dockerfile.* - orbit generate -f utils/README.blueprint.md -o README.md - |- sed -i '1i\[DO NOT EDIT THIS FILE]: <> (Make yours changes in /utils/README.blueprint.md)' README.md diff --git a/utils/Dockerfile.blueprint b/utils/Dockerfile.blueprint index 8034526f..a3371931 100644 --- a/utils/Dockerfile.blueprint +++ b/utils/Dockerfile.blueprint @@ -1,10 +1,15 @@ +#syntax=docker/dockerfile-upstream:1 ARG INSTALL_CRON=1 ARG INSTALL_COMPOSER=1 ARG PHP_VERSION ARG GLOBAL_VERSION +ARG REPO="thecodingmachine/php" +ARG TAG_PREFIX="" -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-{{ .Orbit.variant }} as baseapp +ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-slim-{{ .Orbit.variant }}" +FROM $FROM_IMAGE LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETOS ARG TARGETARCH diff --git a/utils/Dockerfile.node.blueprint b/utils/Dockerfile.node.blueprint index 2f959b1d..5922ac60 100644 --- a/utils/Dockerfile.node.blueprint +++ b/utils/Dockerfile.node.blueprint @@ -1,9 +1,15 @@ -FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-{{ .Orbit.variant }} as baseapp +#syntax=docker/dockerfile-upstream:1 +ARG REPO="thecodingmachine/php" +ARG TAG_PREFIX="" +ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}:${PHP_VERSION}-${GLOBAL_VERSION}-{{ .Orbit.variant }}" +FROM $FROM_IMAGE LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETOS ARG TARGETARCH ARG BLACKFIRE_VERSION=1 +ARG NODE_VERSION=16 USER root @@ -11,14 +17,14 @@ ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_{{ .Orbit.node_version }}.x | bash - && \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \ apt-get update && \ apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - npm install -g npm{{ if eq "10" .Orbit.node_version }}@^6.14{{end}} && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 21f6874d..42d6436c 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -1,5 +1,7 @@ +#syntax=docker/dockerfile-upstream:1 FROM ubuntu:20.04 LABEL authors="Julien Neuhart , David Négrier " +SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Fixes some weird terminal issues such as broken clear / CTRL+L #ENV TERM=linux @@ -52,7 +54,6 @@ RUN apt-get update \ php${PHP_VERSION}-xml \ php${PHP_VERSION}-zip \ && if [[ "${PHP_VERSION}" =~ ^7 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ - && if [[ "${PHP_VERSION}" =~ ^8 ]]; then apt-get install -y --no-install-recommends php${PHP_VERSION}-json; fi \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* @@ -209,8 +210,8 @@ EXPOSE 80 ENV APACHE_DOCUMENT_ROOT= -RUN sed -ri -e 's!/var/www/html!${ABSOLUTE_APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf -RUN sed -ri -e 's!/var/www/!${ABSOLUTE_APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf +RUN sed -ri -e 's!/var/www/html!${ABSOLUTE_APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf && \ + sed -ri -e 's!/var/www/!${ABSOLUTE_APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf # Let's remove the default Apache php.ini file (it will be copied from TEMPLATE_PHP_INI) RUN rm /etc/php/${PHP_VERSION}/apache2/php.ini @@ -232,8 +233,8 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* # Let's remove the default PHP-FPM php.ini file (it will be copied from TEMPLATE_PHP_INI) -RUN rm /etc/php/${PHP_VERSION}/fpm/php.ini -RUN ln -s /usr/sbin/php-fpm${PHP_VERSION} /usr/sbin/php-fpm +RUN rm /etc/php/${PHP_VERSION}/fpm/php.ini && \ + ln -s /usr/sbin/php-fpm${PHP_VERSION} /usr/sbin/php-fpm COPY utils/fpm-docker.conf /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf COPY utils/fpm-zz-docker.conf /etc/php/${PHP_VERSION}/fpm/pool.d/zz-docker.conf {{end}} @@ -269,7 +270,7 @@ USER docker # | We create an empty known_host file and we launch the ssh-agent # | -RUN mkdir ~/.ssh && touch ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts && eval $(ssh-agent -s) +RUN mkdir ~/.ssh && touch ~/.ssh/known_hosts && chmod 644 ~/.ssh/known_hosts && eval "$(ssh-agent -s)" # |-------------------------------------------------------------------------- @@ -310,7 +311,8 @@ ENV IMAGE_VARIANT={{ .Orbit.variant }} # Add Tini (to be able to stop the container with ctrl-c). # See: https://github.com/krallin/tini -ENV TINI_VERSION v0.16.1 +# FIX https://github.com/krallin/tini/pull/67 +ENV TINI_VERSION v0.19.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini RUN chmod +x /tini @@ -330,8 +332,8 @@ ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] {{if eq .Orbit.variant "apache" }} # Let's register a servername to remove the message "apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message" -RUN echo "ServerName localhost" > /etc/apache2/conf-available/servername.conf -RUN a2enconf servername +RUN echo "ServerName localhost" > /etc/apache2/conf-available/servername.conf && \ + a2enconf servername CMD ["apache2-foreground"] @@ -365,7 +367,7 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P sed -i 's/^group = www-data/;group = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i 's#listen = /run/php/php${PHP_VERSION}-fpm.sock#;listen = /run/php/php${PHP_VERSION}-fpm.sock#g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i "s#pid = /run/php/php${PHP_VERSION}-fpm.pid#;pid = /run/php/php${PHP_VERSION}-fpm.pid#g" /etc/php/${PHP_VERSION}/fpm/php-fpm.conf && \ - if [ "$PHP_VERSION" = "7.2" ]; then \ + if [[ "$PHP_VERSION" = "7.2" ]]; then \ sed -i 's/^log_limit =/;log_limit =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf && \ sed -i 's/^decorate_workers_output =/;decorate_workers_output =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf; \ fi @@ -386,22 +388,21 @@ ONBUILD RUN sudo -E PHP_EXTENSIONS="$PHP_EXTENSIONS" /usr/local/bin/install_sele # | # | Supercronic is a drop-in replacement for cron (for containers). # | -ENV SUPERCRONIC_OPTIONS= +ENV SUPERCRONIC_OPTIONS="" ONBUILD ARG INSTALL_CRON ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \ - SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.9/supercronic-$TARGETOS-$TARGETARCH \ - && echo $SUPERCRONIC_URL \ - && SUPERCRONIC=supercronic-linux-${TARGETARCH} \ - && SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \ - && if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ - elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ - else echo "Target arch '$TARGETARCH' is not supported"; fi; \ - && curl -fsSLO "$SUPERCRONIC_URL" \ - && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ - && chmod +x "$SUPERCRONIC" \ - && sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \ - && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ - fi; + SUPERCRONIC="supercronic-${TARGETOS}-${TARGETARCH}" \ + && SUPERCRONIC_URL="https://github.com/aptible/supercronic/releases/download/v0.1.9/${SUPERCRONIC}" \ + && echo ${SUPERCRONIC_URL} \ + && if [ "$TARGETARCH" = "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \ + elif [ "$TARGETARCH" = "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \ + else echo "Target arch '${TARGETARCH}' is not supported"; exit 1; fi \ + && curl -fsSLO "${SUPERCRONIC_URL}" \ + && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \ + && chmod +x "${SUPERCRONIC}" \ + && sudo mv "${SUPERCRONIC}" "/usr/local/bin/${SUPERCRONIC}" \ + && sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \ + fi # |-------------------------------------------------------------------------- @@ -423,6 +424,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ sudo apt-get clean && \ sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 616bb200..92087550 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -20,14 +20,15 @@ group "php{{ $phpV | replace "." "" }}" { }{{end}} variable "REPO" {default = "thecodingmachine/php"} +variable "TAG_PREFIX" {default = ""} variable "PHP_PATCH_MINOR" {default = ""} variable "GLOBAL_VERSION" {default = "v4"} function "tag" { - params = [PHP_VERSION, VARIANT, PHP_MINOR] + params = [PHP_VERSION, VARIANT] result = [ - "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", - notequal("",PHP_MINOR) ? "${REPO}:${PHP_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "", + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", + notequal("",PHP_PATCH_MINOR) ? "${REPO}:${TAG_PREFIX}${PHP_PATCH_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "", ] } @@ -36,13 +37,10 @@ target "default" { args = { GLOBAL_VERSION = "${GLOBAL_VERSION}" } - platforms = ["linux/amd64"] + #platforms = ["linux/amd64", "linux/arm64"] + platforms = [BAKE_LOCAL_PLATFORM] pull = true - #output = ["customDir"] - #output = ["type=tar,dest=myimage.tar"] - output = ["type=docker"] # load in local docker - #output = ["type=registry"] # push - #output = ["type=image"] # push also ? + output = ["type=docker"] # export in local docker } {{range $phpV := $versions}}{{range $variant := $variants}} @@ -52,7 +50,7 @@ target "default" { # thecodingmachine/php:{{ $phpV }}-v4-slim-{{ $variant }} target "php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" { inherits = ["default"] - tags = tag("{{ $phpV }}", "slim-{{ $variant }}", "${PHP_PATCH_MINOR}") + tags = tag("{{ $phpV }}", "slim-{{ $variant }}") dockerfile = "Dockerfile.slim.{{ $variant }}" args = { PHP_VERSION = "{{ $phpV }}" @@ -62,29 +60,32 @@ target "php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" { # thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }} target "php{{ $phpV | replace "." "" }}-{{ $variant }}" { - contexts = { - baseapp = "target:php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" - } inherits = ["default"] - tags = tag("{{ $phpV }}", "{{ $variant }}", "${PHP_PATCH_MINOR}") + tags = tag("{{ $phpV }}", "{{ $variant }}") dockerfile = "Dockerfile.{{ $variant }}" args = { PHP_VERSION = "{{ $phpV }}" VARIANT = "{{ $variant }}" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php{{ $phpV | replace "." "" }}-slim-{{ $variant }}" } } {{range $nodeV := $nodeVersions}} # thecodingmachine/php:{{ $phpV }}-v4-{{ $variant }}-node{{ $nodeV }} target "php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}" { - contexts = { - baseapp = "target:php{{ $phpV | replace "." "" }}-{{ $variant }}" - } inherits = ["default"] - tags = tag("{{ $phpV }}", "{{ $variant }}-node{{ $nodeV }}", "${PHP_PATCH_MINOR}") - dockerfile = "Dockerfile.{{ $variant }}.node{{ $nodeV }}" + tags = tag("{{ $phpV }}", "{{ $variant }}-node{{ $nodeV }}") + dockerfile = "Dockerfile.{{ $variant }}" args = { PHP_VERSION = "{{ $phpV }}" VARIANT = "{{ $variant }}-node{{ $nodeV }}" + FROM_IMAGE = "fat" + NODE_VERSION = "{{ $nodeV }}" + } + contexts = { + fat = "target:php{{ $phpV | replace "." "" }}-{{ $variant }}" } } {{ end }}{{ end }}{{ end }} From 8d5f39fc7f313cd56e38f47c4ad5278445d60486 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 16:15:21 +0200 Subject: [PATCH 122/162] HOTFIX : Disable tini (didn't work properly with arm) --- Dockerfile.slim.apache | 12 ++++++------ Dockerfile.slim.cli | 12 ++++++------ Dockerfile.slim.fpm | 12 ++++++------ utils/Dockerfile.slim.blueprint | 12 ++++++------ utils/docker-entrypoint.sh | 3 ++- utils/generate_cron.php | 2 -- 6 files changed, 26 insertions(+), 27 deletions(-) diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 43c4c773..3d47ff3c 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -294,12 +294,12 @@ RUN sed -i 's#/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin#/usr/ ENV IMAGE_VARIANT=apache -# Add Tini (to be able to stop the container with ctrl-c). -# See: https://github.com/krallin/tini -# FIX https://github.com/krallin/tini/pull/67 -ENV TINI_VERSION v0.19.0 -ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini -RUN chmod +x /tini +## Add Tini (to be able to stop the container with ctrl-c). +## See: https://github.com/krallin/tini +## FIX https://github.com/krallin/tini/pull/67 +#ENV TINI_VERSION v0.19.0 +#ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini +#RUN chmod +x /tini COPY utils/generate_cron.php /usr/local/bin/generate_cron.php COPY utils/startup_commands.php /usr/local/bin/startup_commands.php diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index d35ed364..817bf938 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -220,12 +220,12 @@ RUN sed -i 's#/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin#/usr/ ENV IMAGE_VARIANT=cli -# Add Tini (to be able to stop the container with ctrl-c). -# See: https://github.com/krallin/tini -# FIX https://github.com/krallin/tini/pull/67 -ENV TINI_VERSION v0.19.0 -ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini -RUN chmod +x /tini +## Add Tini (to be able to stop the container with ctrl-c). +## See: https://github.com/krallin/tini +## FIX https://github.com/krallin/tini/pull/67 +#ENV TINI_VERSION v0.19.0 +#ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini +#RUN chmod +x /tini COPY utils/generate_cron.php /usr/local/bin/generate_cron.php COPY utils/startup_commands.php /usr/local/bin/startup_commands.php diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 8fa126ea..a9b72fa4 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -233,12 +233,12 @@ RUN sed -i 's#/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin#/usr/ ENV IMAGE_VARIANT=fpm -# Add Tini (to be able to stop the container with ctrl-c). -# See: https://github.com/krallin/tini -# FIX https://github.com/krallin/tini/pull/67 -ENV TINI_VERSION v0.19.0 -ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini -RUN chmod +x /tini +## Add Tini (to be able to stop the container with ctrl-c). +## See: https://github.com/krallin/tini +## FIX https://github.com/krallin/tini/pull/67 +#ENV TINI_VERSION v0.19.0 +#ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini +#RUN chmod +x /tini COPY utils/generate_cron.php /usr/local/bin/generate_cron.php COPY utils/startup_commands.php /usr/local/bin/startup_commands.php diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 42d6436c..4c14d2f8 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -309,12 +309,12 @@ RUN sed -i 's#/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin#/usr/ ENV IMAGE_VARIANT={{ .Orbit.variant }} -# Add Tini (to be able to stop the container with ctrl-c). -# See: https://github.com/krallin/tini -# FIX https://github.com/krallin/tini/pull/67 -ENV TINI_VERSION v0.19.0 -ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini -RUN chmod +x /tini +## Add Tini (to be able to stop the container with ctrl-c). +## See: https://github.com/krallin/tini +## FIX https://github.com/krallin/tini/pull/67 +#ENV TINI_VERSION v0.19.0 +#ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini +#RUN chmod +x /tini COPY utils/generate_cron.php /usr/local/bin/generate_cron.php COPY utils/startup_commands.php /usr/local/bin/startup_commands.php diff --git a/utils/docker-entrypoint.sh b/utils/docker-entrypoint.sh index c719a4a3..6b528648 100755 --- a/utils/docker-entrypoint.sh +++ b/utils/docker-entrypoint.sh @@ -2,4 +2,5 @@ set -e -exec "sudo" "-E" "/tini" "-g" "-s" "--" "/usr/local/bin/docker-entrypoint-as-root.sh" "$@"; +#exec "sudo" "-E" "/tini" "-g" "-s" "--" "/usr/local/bin/docker-entrypoint-as-root.sh" "$@"; +exec "sudo" "-E" "/usr/local/bin/docker-entrypoint-as-root.sh" "$@"; diff --git a/utils/generate_cron.php b/utils/generate_cron.php index 96e14f4e..e99db0f5 100644 --- a/utils/generate_cron.php +++ b/utils/generate_cron.php @@ -4,8 +4,6 @@ * The script is run on each start of the container. */ -$tiniPid = $argv[1]; - $found = false; foreach ($_SERVER as $key => $command) { From 98e84b80b5f3972bbbce0218180d57beb6713afe Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 16:15:46 +0200 Subject: [PATCH 123/162] Lint Rename core extensions --- extensions/7.4/xdebug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/7.4/xdebug b/extensions/7.4/xdebug index ee4c5321..2ee34925 120000 --- a/extensions/7.4/xdebug +++ b/extensions/7.4/xdebug @@ -1 +1 @@ -../core/xdebug/ \ No newline at end of file +../core/xdebug \ No newline at end of file From 81b61a8c207410d327a70838c667aeeea0fb26d6 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 16:19:47 +0200 Subject: [PATCH 124/162] HOTFIX : disable *ev*, *rdkafka*, *snmp* and *swoole* for arm64 builds (too long to build) --- README.md | 1 + extensions/core/ev/install.sh | 5 +++++ extensions/core/rdkafka/install.sh | 5 +++++ extensions/core/snmp/install.sh | 5 +++++ extensions/core/swoole/install.sh | 5 +++++ utils/README.blueprint.md | 1 + 6 files changed, 22 insertions(+) diff --git a/README.md b/README.md index 060c7f41..fcca6142 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *event*, *gnupg* are not available in PHP 8.0+ - *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ +- *ev*, *rdkafka*, *snmp*, *swoole* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) ### Enabling/disabling extensions in the fat image diff --git a/extensions/core/ev/install.sh b/extensions/core/ev/install.sh index 88910c5a..89368dac 100755 --- a/extensions/core/ev/install.sh +++ b/extensions/core/ev/install.sh @@ -1,6 +1,11 @@ #!/usr/bin/env bash set -e +if [[ "${TARGETARCH}" == "arm64" ]]; then + # 188 seconds to execute onto arm64 arch + >&2 echo "php-ev is not included with arm64 version (because build time is too long)" + exit 0; +fi export PECL_EXTENSION=ev ../docker-install.sh diff --git a/extensions/core/rdkafka/install.sh b/extensions/core/rdkafka/install.sh index 4a26d0c6..b4320828 100755 --- a/extensions/core/rdkafka/install.sh +++ b/extensions/core/rdkafka/install.sh @@ -1,6 +1,11 @@ #!/usr/bin/env bash set -e +if [[ "${TARGETARCH}" == "arm64" ]]; then + # 176 seconds to execute onto arm64 arch + >&2 echo "php-rdkafka is not included with arm64 version (because build time is too long)" + exit 0; +fi export DEV_DEPENDENCIES="librdkafka-dev" export DEPENDENCIES="librdkafka1" PECL_EXTENSION=rdkafka ../docker-install.sh diff --git a/extensions/core/snmp/install.sh b/extensions/core/snmp/install.sh index d3e18aef..7ed4967e 100755 --- a/extensions/core/snmp/install.sh +++ b/extensions/core/snmp/install.sh @@ -1,6 +1,11 @@ #!/usr/bin/env bash set -e +if [[ "${TARGETARCH}" == "arm64" ]]; then + # 109 seconds to execute onto arm64 arch + >&2 echo "php-snmp is not included with arm64 version (because build time is too long)" + exit 0; +fi export EXTENSION=snmp #export DEV_DEPENDENCIES="libsnmp-dev libssl-dev" #export DEPENDENCIES="snmp libsnmp30 libc6 libpci3 libsensors4 libwrap0 procps libssl1.1" diff --git a/extensions/core/swoole/install.sh b/extensions/core/swoole/install.sh index b941f696..9f7057bc 100755 --- a/extensions/core/swoole/install.sh +++ b/extensions/core/swoole/install.sh @@ -3,6 +3,11 @@ set -e if [[ "${PHP_VERSION}" ~= "^7" ]]; then + if [[ "${TARGETARCH}" == "arm64" ]]; then + # It's too long to compile onto arm64 arch + >&2 echo "php-swoole is not included with arm64 version (because build time is too long)" + exit 0; + fi ## http://pecl.php.net/package/swoole export DEPENDENCIES="zlib1g" export DEV_DEPENDENCIES="zlib1g-dev" diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index cc017b39..990b386e 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -105,6 +105,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *event*, *gnupg* are not available in PHP 8.0+ - *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ +- *ev*, *rdkafka*, *snmp*, *swoole* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) ### Enabling/disabling extensions in the fat image From 259bd56913a238341fb14e97ab66f69363da929f Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 19 Sep 2022 16:20:20 +0200 Subject: [PATCH 125/162] FIX Gitlab-ci --- .github/workflows/workflow.yml | 96 ++++++++++++++++++++++++---------- 1 file changed, 67 insertions(+), 29 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 120fcdab..8e89975d 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -11,55 +11,93 @@ on: # - cron: '42 3 * * 0' jobs: - build_test_maybe_release: + build: strategy: + fail-fast: false matrix: php_version: ['8.1','8.0','7.4', '7.3','7.2'] variant: ['apache','cli','fpm'] - runs-on: ubuntu-latest +# builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "macos-latest"}] + builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "ubuntu-latest"}] + runs-on: ${{ matrix.builder.os }} +# runs-on: self-hosted + name: Build & test ${{ matrix.php_version }}-${{ matrix.variant }} (${{ matrix.builder.arch }}) steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up Docker + # /!\ this action is marked as experimental + # It's required only for macos + if: ${{ matrix.builder.os == 'macos-latest' }} + uses: docker-practice/actions-setup-docker@master - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 + - name: Build + run: | + PHP_VERSION="${{ matrix.php_version }}" + TAG_PREFIX="rc${GITHUB_SHA::7}-" \ + docker buildx bake \ + --set "*.platform=linux/${{ matrix.builder.arch }}" \ + --set "*.output=type=docker" \ + --load \ + php${PHP_VERSION//.}-${{ matrix.variant }}-all + - name: Display tags built + run: | + docker image ls --filter="reference=thecodingmachine/php" --format "{{.CreatedAt}}\t{{.Size}}\t{{.Repository}}:{{.Tag}}" + - name: Test + run: | + TAG_PREFIX="rc${GITHUB_SHA::7}-" \ + PHP_VERSION="${{ matrix.php_version }}" \ + BRANCH="v4" \ + VARIANT="${{ matrix.variant }}" \ + PLATFORM="linux/${{ matrix.builder.arch }}" \ + ./tests-suite/bash_unit -f tap ./tests-suite/*.sh + + publish: + # push ~ schedule + # FIXME : re-enable after testing +# if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} + needs: + - build + runs-on: ubuntu-latest + name: Publish multi-arch to dockerhub + strategy: + fail-fast: false + matrix: + php_version: ['8.1','8.0','7.4', '7.3','7.2'] + variant: ['apache','cli','fpm'] + steps: - name: Checkout - uses: actions/checkout@v1 -# - name: Build locally -# run: | -# PHP_VERSION="${{ matrix.php_version }}" -# docker buildx bake --load \ -# --set "*.platform=linux/amd64" \ -# php${PHP_VERSION//.}-slim-${{ matrix.variant }} -# docker buildx bake --load \ -# --set "*.platform=linux/amd64" \ -# php${PHP_VERSION//.}-${{ matrix.variant }}-all -# PHP_VERSION_MINOR=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-cli php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` -# echo "PHP_VERSION_MINOR=${PHP_VERSION_MINOR}" >> $GITHUB_ENV -# echo "PHP Version : ${PHP_VERSION_MINOR}" >> $GITHUB_STEP_SUMMARY -# docker images --filter=reference=thecodingmachine/php >> $GITHUB_STEP_SUMMARY -# - name: Test ${{ matrix.variant }} -# run: | -# PHP_VERSION="${{ matrix.php_version }}" BRANCH=v4 VARIANT=${{ matrix.variant }} ./test-image.sh -# echo "${{ matrix.variant }} variant OK" >> $GITHUB_STEP_SUMMARY + uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 - name: Login to DockerHub - # Merge ~ push. - if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push to repository - # Merge ~ push. - if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} + - name: Build and push ${{ matrix.php_version }}-${{ matrix.variant }} as multiarch (amd64 and arm64) run: | PHP_VERSION="${{ matrix.php_version }}" + + TAG_PREFIX="rc${GITHUB_SHA::7}-" \ docker buildx bake \ --set "*.platform=linux/amd64,linux/arm64" \ --set "*.output=type=registry" \ php${PHP_VERSION//.}-slim-${{ matrix.variant }} - PHP_PATCH_MINOR=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-cli php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` \ + PHP_PATCH_MINOR=`docker run --rm thecodingmachine/php:rc-${GITHUB_SHA::7}-${{ matrix.php_version }}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` + PHP_VERSION="${{ matrix.php_version }}" + + TAG_PREFIX="rc${GITHUB_SHA::7}-" \ + PHP_PATCH_MINOR="${PHP_VERSION_MINOR}" \ docker buildx bake \ --set "*.platform=linux/amd64,linux/arm64" \ --set "*.output=type=registry" \ php${PHP_VERSION//.}-${{ matrix.variant }}-all - docker images --filter=reference=thecodingmachine/php >> $GITHUB_STEP_SUMMARY + - name: Display tags built + run: | + docker image ls --filter="reference=thecodingmachine/php" --format "{{.CreatedAt}}\t{{.Size}}\t{{.Repository}}:{{.Tag}}" From b27c7cf4ef2d710a5a9aada316390bba3dddc640 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Tue, 20 Sep 2022 16:56:10 +0200 Subject: [PATCH 126/162] FIX node variant was not built --- .github/workflows/workflow.yml | 1 + docker-bake.hcl | 120 ++++++++++++++++---------------- utils/docker-bake.blueprint.hcl | 2 +- 3 files changed, 62 insertions(+), 61 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 8e89975d..a7d6c9b9 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -7,6 +7,7 @@ on: push: branches: - 'v4' +# FIXME : re-enable after testing # schedule: # - cron: '42 3 * * 0' diff --git a/docker-bake.hcl b/docker-bake.hcl index 7eb07bc9..2b321b7f 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -192,7 +192,7 @@ target "php81-apache" { target "php81-apache-node16" { inherits = ["default"] tags = tag("8.1", "apache-node16") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "8.1" VARIANT = "apache-node16" @@ -208,7 +208,7 @@ target "php81-apache-node16" { target "php81-apache-node14" { inherits = ["default"] tags = tag("8.1", "apache-node14") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "8.1" VARIANT = "apache-node14" @@ -224,7 +224,7 @@ target "php81-apache-node14" { target "php81-apache-node12" { inherits = ["default"] tags = tag("8.1", "apache-node12") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "8.1" VARIANT = "apache-node12" @@ -240,7 +240,7 @@ target "php81-apache-node12" { target "php81-apache-node10" { inherits = ["default"] tags = tag("8.1", "apache-node10") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "8.1" VARIANT = "apache-node10" @@ -285,7 +285,7 @@ target "php81-fpm" { target "php81-fpm-node16" { inherits = ["default"] tags = tag("8.1", "fpm-node16") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "8.1" VARIANT = "fpm-node16" @@ -301,7 +301,7 @@ target "php81-fpm-node16" { target "php81-fpm-node14" { inherits = ["default"] tags = tag("8.1", "fpm-node14") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "8.1" VARIANT = "fpm-node14" @@ -317,7 +317,7 @@ target "php81-fpm-node14" { target "php81-fpm-node12" { inherits = ["default"] tags = tag("8.1", "fpm-node12") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "8.1" VARIANT = "fpm-node12" @@ -333,7 +333,7 @@ target "php81-fpm-node12" { target "php81-fpm-node10" { inherits = ["default"] tags = tag("8.1", "fpm-node10") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "8.1" VARIANT = "fpm-node10" @@ -378,7 +378,7 @@ target "php81-cli" { target "php81-cli-node16" { inherits = ["default"] tags = tag("8.1", "cli-node16") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "8.1" VARIANT = "cli-node16" @@ -394,7 +394,7 @@ target "php81-cli-node16" { target "php81-cli-node14" { inherits = ["default"] tags = tag("8.1", "cli-node14") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "8.1" VARIANT = "cli-node14" @@ -410,7 +410,7 @@ target "php81-cli-node14" { target "php81-cli-node12" { inherits = ["default"] tags = tag("8.1", "cli-node12") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "8.1" VARIANT = "cli-node12" @@ -426,7 +426,7 @@ target "php81-cli-node12" { target "php81-cli-node10" { inherits = ["default"] tags = tag("8.1", "cli-node10") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "8.1" VARIANT = "cli-node10" @@ -471,7 +471,7 @@ target "php80-apache" { target "php80-apache-node16" { inherits = ["default"] tags = tag("8.0", "apache-node16") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "8.0" VARIANT = "apache-node16" @@ -487,7 +487,7 @@ target "php80-apache-node16" { target "php80-apache-node14" { inherits = ["default"] tags = tag("8.0", "apache-node14") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "8.0" VARIANT = "apache-node14" @@ -503,7 +503,7 @@ target "php80-apache-node14" { target "php80-apache-node12" { inherits = ["default"] tags = tag("8.0", "apache-node12") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "8.0" VARIANT = "apache-node12" @@ -519,7 +519,7 @@ target "php80-apache-node12" { target "php80-apache-node10" { inherits = ["default"] tags = tag("8.0", "apache-node10") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "8.0" VARIANT = "apache-node10" @@ -564,7 +564,7 @@ target "php80-fpm" { target "php80-fpm-node16" { inherits = ["default"] tags = tag("8.0", "fpm-node16") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "8.0" VARIANT = "fpm-node16" @@ -580,7 +580,7 @@ target "php80-fpm-node16" { target "php80-fpm-node14" { inherits = ["default"] tags = tag("8.0", "fpm-node14") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "8.0" VARIANT = "fpm-node14" @@ -596,7 +596,7 @@ target "php80-fpm-node14" { target "php80-fpm-node12" { inherits = ["default"] tags = tag("8.0", "fpm-node12") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "8.0" VARIANT = "fpm-node12" @@ -612,7 +612,7 @@ target "php80-fpm-node12" { target "php80-fpm-node10" { inherits = ["default"] tags = tag("8.0", "fpm-node10") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "8.0" VARIANT = "fpm-node10" @@ -657,7 +657,7 @@ target "php80-cli" { target "php80-cli-node16" { inherits = ["default"] tags = tag("8.0", "cli-node16") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "8.0" VARIANT = "cli-node16" @@ -673,7 +673,7 @@ target "php80-cli-node16" { target "php80-cli-node14" { inherits = ["default"] tags = tag("8.0", "cli-node14") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "8.0" VARIANT = "cli-node14" @@ -689,7 +689,7 @@ target "php80-cli-node14" { target "php80-cli-node12" { inherits = ["default"] tags = tag("8.0", "cli-node12") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "8.0" VARIANT = "cli-node12" @@ -705,7 +705,7 @@ target "php80-cli-node12" { target "php80-cli-node10" { inherits = ["default"] tags = tag("8.0", "cli-node10") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "8.0" VARIANT = "cli-node10" @@ -750,7 +750,7 @@ target "php74-apache" { target "php74-apache-node16" { inherits = ["default"] tags = tag("7.4", "apache-node16") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.4" VARIANT = "apache-node16" @@ -766,7 +766,7 @@ target "php74-apache-node16" { target "php74-apache-node14" { inherits = ["default"] tags = tag("7.4", "apache-node14") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.4" VARIANT = "apache-node14" @@ -782,7 +782,7 @@ target "php74-apache-node14" { target "php74-apache-node12" { inherits = ["default"] tags = tag("7.4", "apache-node12") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.4" VARIANT = "apache-node12" @@ -798,7 +798,7 @@ target "php74-apache-node12" { target "php74-apache-node10" { inherits = ["default"] tags = tag("7.4", "apache-node10") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.4" VARIANT = "apache-node10" @@ -843,7 +843,7 @@ target "php74-fpm" { target "php74-fpm-node16" { inherits = ["default"] tags = tag("7.4", "fpm-node16") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.4" VARIANT = "fpm-node16" @@ -859,7 +859,7 @@ target "php74-fpm-node16" { target "php74-fpm-node14" { inherits = ["default"] tags = tag("7.4", "fpm-node14") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.4" VARIANT = "fpm-node14" @@ -875,7 +875,7 @@ target "php74-fpm-node14" { target "php74-fpm-node12" { inherits = ["default"] tags = tag("7.4", "fpm-node12") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.4" VARIANT = "fpm-node12" @@ -891,7 +891,7 @@ target "php74-fpm-node12" { target "php74-fpm-node10" { inherits = ["default"] tags = tag("7.4", "fpm-node10") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.4" VARIANT = "fpm-node10" @@ -936,7 +936,7 @@ target "php74-cli" { target "php74-cli-node16" { inherits = ["default"] tags = tag("7.4", "cli-node16") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.4" VARIANT = "cli-node16" @@ -952,7 +952,7 @@ target "php74-cli-node16" { target "php74-cli-node14" { inherits = ["default"] tags = tag("7.4", "cli-node14") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.4" VARIANT = "cli-node14" @@ -968,7 +968,7 @@ target "php74-cli-node14" { target "php74-cli-node12" { inherits = ["default"] tags = tag("7.4", "cli-node12") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.4" VARIANT = "cli-node12" @@ -984,7 +984,7 @@ target "php74-cli-node12" { target "php74-cli-node10" { inherits = ["default"] tags = tag("7.4", "cli-node10") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.4" VARIANT = "cli-node10" @@ -1029,7 +1029,7 @@ target "php73-apache" { target "php73-apache-node16" { inherits = ["default"] tags = tag("7.3", "apache-node16") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.3" VARIANT = "apache-node16" @@ -1045,7 +1045,7 @@ target "php73-apache-node16" { target "php73-apache-node14" { inherits = ["default"] tags = tag("7.3", "apache-node14") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.3" VARIANT = "apache-node14" @@ -1061,7 +1061,7 @@ target "php73-apache-node14" { target "php73-apache-node12" { inherits = ["default"] tags = tag("7.3", "apache-node12") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.3" VARIANT = "apache-node12" @@ -1077,7 +1077,7 @@ target "php73-apache-node12" { target "php73-apache-node10" { inherits = ["default"] tags = tag("7.3", "apache-node10") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.3" VARIANT = "apache-node10" @@ -1122,7 +1122,7 @@ target "php73-fpm" { target "php73-fpm-node16" { inherits = ["default"] tags = tag("7.3", "fpm-node16") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.3" VARIANT = "fpm-node16" @@ -1138,7 +1138,7 @@ target "php73-fpm-node16" { target "php73-fpm-node14" { inherits = ["default"] tags = tag("7.3", "fpm-node14") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.3" VARIANT = "fpm-node14" @@ -1154,7 +1154,7 @@ target "php73-fpm-node14" { target "php73-fpm-node12" { inherits = ["default"] tags = tag("7.3", "fpm-node12") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.3" VARIANT = "fpm-node12" @@ -1170,7 +1170,7 @@ target "php73-fpm-node12" { target "php73-fpm-node10" { inherits = ["default"] tags = tag("7.3", "fpm-node10") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.3" VARIANT = "fpm-node10" @@ -1215,7 +1215,7 @@ target "php73-cli" { target "php73-cli-node16" { inherits = ["default"] tags = tag("7.3", "cli-node16") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.3" VARIANT = "cli-node16" @@ -1231,7 +1231,7 @@ target "php73-cli-node16" { target "php73-cli-node14" { inherits = ["default"] tags = tag("7.3", "cli-node14") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.3" VARIANT = "cli-node14" @@ -1247,7 +1247,7 @@ target "php73-cli-node14" { target "php73-cli-node12" { inherits = ["default"] tags = tag("7.3", "cli-node12") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.3" VARIANT = "cli-node12" @@ -1263,7 +1263,7 @@ target "php73-cli-node12" { target "php73-cli-node10" { inherits = ["default"] tags = tag("7.3", "cli-node10") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.3" VARIANT = "cli-node10" @@ -1308,7 +1308,7 @@ target "php72-apache" { target "php72-apache-node16" { inherits = ["default"] tags = tag("7.2", "apache-node16") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.2" VARIANT = "apache-node16" @@ -1324,7 +1324,7 @@ target "php72-apache-node16" { target "php72-apache-node14" { inherits = ["default"] tags = tag("7.2", "apache-node14") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.2" VARIANT = "apache-node14" @@ -1340,7 +1340,7 @@ target "php72-apache-node14" { target "php72-apache-node12" { inherits = ["default"] tags = tag("7.2", "apache-node12") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.2" VARIANT = "apache-node12" @@ -1356,7 +1356,7 @@ target "php72-apache-node12" { target "php72-apache-node10" { inherits = ["default"] tags = tag("7.2", "apache-node10") - dockerfile = "Dockerfile.apache" + dockerfile = "Dockerfile.apache.node" args = { PHP_VERSION = "7.2" VARIANT = "apache-node10" @@ -1401,7 +1401,7 @@ target "php72-fpm" { target "php72-fpm-node16" { inherits = ["default"] tags = tag("7.2", "fpm-node16") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.2" VARIANT = "fpm-node16" @@ -1417,7 +1417,7 @@ target "php72-fpm-node16" { target "php72-fpm-node14" { inherits = ["default"] tags = tag("7.2", "fpm-node14") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.2" VARIANT = "fpm-node14" @@ -1433,7 +1433,7 @@ target "php72-fpm-node14" { target "php72-fpm-node12" { inherits = ["default"] tags = tag("7.2", "fpm-node12") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.2" VARIANT = "fpm-node12" @@ -1449,7 +1449,7 @@ target "php72-fpm-node12" { target "php72-fpm-node10" { inherits = ["default"] tags = tag("7.2", "fpm-node10") - dockerfile = "Dockerfile.fpm" + dockerfile = "Dockerfile.fpm.node" args = { PHP_VERSION = "7.2" VARIANT = "fpm-node10" @@ -1494,7 +1494,7 @@ target "php72-cli" { target "php72-cli-node16" { inherits = ["default"] tags = tag("7.2", "cli-node16") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.2" VARIANT = "cli-node16" @@ -1510,7 +1510,7 @@ target "php72-cli-node16" { target "php72-cli-node14" { inherits = ["default"] tags = tag("7.2", "cli-node14") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.2" VARIANT = "cli-node14" @@ -1526,7 +1526,7 @@ target "php72-cli-node14" { target "php72-cli-node12" { inherits = ["default"] tags = tag("7.2", "cli-node12") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.2" VARIANT = "cli-node12" @@ -1542,7 +1542,7 @@ target "php72-cli-node12" { target "php72-cli-node10" { inherits = ["default"] tags = tag("7.2", "cli-node10") - dockerfile = "Dockerfile.cli" + dockerfile = "Dockerfile.cli.node" args = { PHP_VERSION = "7.2" VARIANT = "cli-node10" diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 92087550..7cf60788 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -77,7 +77,7 @@ target "php{{ $phpV | replace "." "" }}-{{ $variant }}" { target "php{{ $phpV | replace "." "" }}-{{ $variant }}-node{{ $nodeV }}" { inherits = ["default"] tags = tag("{{ $phpV }}", "{{ $variant }}-node{{ $nodeV }}") - dockerfile = "Dockerfile.{{ $variant }}" + dockerfile = "Dockerfile.{{ $variant }}.node" args = { PHP_VERSION = "{{ $phpV }}" VARIANT = "{{ $variant }}-node{{ $nodeV }}" From 68e5d3ffc49f55ba182fcaad6abe27ad041ace7a Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 21 Sep 2022 10:10:41 +0200 Subject: [PATCH 127/162] Add artifacts and logs docker images tags/digests --- .github/workflows/workflow.yml | 46 ++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index a7d6c9b9..2182582c 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -7,12 +7,11 @@ on: push: branches: - 'v4' -# FIXME : re-enable after testing -# schedule: -# - cron: '42 3 * * 0' + schedule: + - cron: '42 3 * * 0' jobs: - build: + test: strategy: fail-fast: false matrix: @@ -21,8 +20,7 @@ jobs: # builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "macos-latest"}] builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "ubuntu-latest"}] runs-on: ${{ matrix.builder.os }} -# runs-on: self-hosted - name: Build & test ${{ matrix.php_version }}-${{ matrix.variant }} (${{ matrix.builder.arch }}) + name: Test ${{ matrix.php_version }}-${{ matrix.variant }} ${{ matrix.builder.arch }} only steps: - name: Checkout uses: actions/checkout@v3 @@ -58,12 +56,11 @@ jobs: publish: # push ~ schedule - # FIXME : re-enable after testing -# if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} + if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} needs: - - build + - test runs-on: ubuntu-latest - name: Publish multi-arch to dockerhub + name: Publish ${{ matrix.php_version }}-${{ matrix.variant }} multi-arch to dockerhub strategy: fail-fast: false matrix: @@ -81,24 +78,41 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push ${{ matrix.php_version }}-${{ matrix.variant }} as multiarch (amd64 and arm64) + - name: Build and push ${{ matrix.php_version }}-${{ matrix.variant }} with tagged prefix run: | PHP_VERSION="${{ matrix.php_version }}" - TAG_PREFIX="rc${GITHUB_SHA::7}-" \ docker buildx bake \ --set "*.platform=linux/amd64,linux/arm64" \ --set "*.output=type=registry" \ - php${PHP_VERSION//.}-slim-${{ matrix.variant }} + php${PHP_VERSION//.}-${{ matrix.variant }}-all + - name: Fetch minor version of php + run: | + # Retrieve minor version PHP_PATCH_MINOR=`docker run --rm thecodingmachine/php:rc-${GITHUB_SHA::7}-${{ matrix.php_version }}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` + echo "PHP_PATCH_MINOR=${PHP_PATCH_MINOR}" >> $GITHUB_ENV + - name: Build and push ${{ matrix.php_version }}-${{ matrix.variant }} with releases tags (major and minor) + run: | PHP_VERSION="${{ matrix.php_version }}" - - TAG_PREFIX="rc${GITHUB_SHA::7}-" \ PHP_PATCH_MINOR="${PHP_VERSION_MINOR}" \ docker buildx bake \ --set "*.platform=linux/amd64,linux/arm64" \ --set "*.output=type=registry" \ + --metadata-file "/tmp/digests-php${PHP_VERSION//.}-${{ matrix.variant }}.log" php${PHP_VERSION//.}-${{ matrix.variant }}-all + - name: Artifacts + uses: actions/upload-artifact@v3 + with: + name: digests-${{ matrix.php_version }}-${{ matrix.variant }} + path: /tmp/digests-php${PHP_VERSION//.}-${{ matrix.variant }}.log + retention-days: 60 - name: Display tags built run: | - docker image ls --filter="reference=thecodingmachine/php" --format "{{.CreatedAt}}\t{{.Size}}\t{{.Repository}}:{{.Tag}}" + echo "With prefix :" + TAG_PREFIX="rc${GITHUB_SHA::7}-" \ + docker buildx bake php${PHP_VERSION//.}-${{ matrix.variant }}-all --print --progress plain | jq ".target[].tags | join(\" \")" -r + echo "-----" + echo "Regular :" + PHP_PATCH_MINOR="${PHP_VERSION_MINOR}" \ + docker buildx bake php${PHP_VERSION//.}-${{ matrix.variant }}-all --print --progress plain | jq ".target[].tags | join(\" \")" -r + From 848538795203156335fb083e9a73148e4ea06797 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 21 Sep 2022 16:19:10 +0200 Subject: [PATCH 128/162] Add cache Add artifacts for debug --- .github/workflows/workflow.yml | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 2182582c..8647bbe7 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -81,15 +81,17 @@ jobs: - name: Build and push ${{ matrix.php_version }}-${{ matrix.variant }} with tagged prefix run: | PHP_VERSION="${{ matrix.php_version }}" + mkdir -p /tmp/build-cache TAG_PREFIX="rc${GITHUB_SHA::7}-" \ docker buildx bake \ --set "*.platform=linux/amd64,linux/arm64" \ + --cache-to "type=local,mode=max,dest=/tmp/build-cache" \ --set "*.output=type=registry" \ php${PHP_VERSION//.}-${{ matrix.variant }}-all - name: Fetch minor version of php run: | # Retrieve minor version - PHP_PATCH_MINOR=`docker run --rm thecodingmachine/php:rc-${GITHUB_SHA::7}-${{ matrix.php_version }}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` + PHP_PATCH_MINOR=`docker run --rm thecodingmachine/php:rc${GITHUB_SHA::7}-${{ matrix.php_version }}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` echo "PHP_PATCH_MINOR=${PHP_PATCH_MINOR}" >> $GITHUB_ENV - name: Build and push ${{ matrix.php_version }}-${{ matrix.variant }} with releases tags (major and minor) run: | @@ -98,21 +100,23 @@ jobs: docker buildx bake \ --set "*.platform=linux/amd64,linux/arm64" \ --set "*.output=type=registry" \ - --metadata-file "/tmp/digests-php${PHP_VERSION//.}-${{ matrix.variant }}.log" + --cache-to "type=local,mode=max,dest=/tmp/build-cache" \ + --cache-from "type=local,mode=max,dest=/tmp/build-cache" \ + --metadata-file "/tmp/digests.log" php${PHP_VERSION//.}-${{ matrix.variant }}-all - - name: Artifacts - uses: actions/upload-artifact@v3 - with: - name: digests-${{ matrix.php_version }}-${{ matrix.variant }} - path: /tmp/digests-php${PHP_VERSION//.}-${{ matrix.variant }}.log - retention-days: 60 - name: Display tags built run: | - echo "With prefix :" + echo "With prefix :" > "/tmp/tags.log" TAG_PREFIX="rc${GITHUB_SHA::7}-" \ - docker buildx bake php${PHP_VERSION//.}-${{ matrix.variant }}-all --print --progress plain | jq ".target[].tags | join(\" \")" -r - echo "-----" - echo "Regular :" + docker buildx bake php${PHP_VERSION//.}-${{ matrix.variant }}-all --print --progress plain | jq ".target[].tags | join(\" \")" -r >> "/tmp/tags.log" + echo "-----" >> "/tmp/tags.log" + echo "Regular :" >> "/tmp/tags.log" PHP_PATCH_MINOR="${PHP_VERSION_MINOR}" \ - docker buildx bake php${PHP_VERSION//.}-${{ matrix.variant }}-all --print --progress plain | jq ".target[].tags | join(\" \")" -r - + docker buildx bake php${PHP_VERSION//.}-${{ matrix.variant }}-all --print --progress plain | jq ".target[].tags | join(\" \")" -r >> "/tmp/tags.log" + cat "/tmp/tags.log" + - name: Artifacts + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.php_version }}-${{ matrix.variant }}-logs + path: /tmp/{digests,tag}.log + retention-days: 60 From 1959baae160b241c395229d1a5c63e27ced6e4f2 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 21 Sep 2022 18:14:15 +0200 Subject: [PATCH 129/162] Hotfix deploy --- .github/workflows/workflow.yml | 57 +++++++++++++++------------------ docker-bake.hcl | 6 ++-- utils/docker-bake.blueprint.hcl | 6 ++-- 3 files changed, 34 insertions(+), 35 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 8647bbe7..48ce0c17 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -36,7 +36,7 @@ jobs: - name: Build run: | PHP_VERSION="${{ matrix.php_version }}" - TAG_PREFIX="rc${GITHUB_SHA::7}-" \ + TAG_PREFIX="rc${GITHUB_RUN_ID}-" \ docker buildx bake \ --set "*.platform=linux/${{ matrix.builder.arch }}" \ --set "*.output=type=docker" \ @@ -47,7 +47,7 @@ jobs: docker image ls --filter="reference=thecodingmachine/php" --format "{{.CreatedAt}}\t{{.Size}}\t{{.Repository}}:{{.Tag}}" - name: Test run: | - TAG_PREFIX="rc${GITHUB_SHA::7}-" \ + TAG_PREFIX="rc${GITHUB_RUN_ID}-" \ PHP_VERSION="${{ matrix.php_version }}" \ BRANCH="v4" \ VARIANT="${{ matrix.variant }}" \ @@ -78,45 +78,40 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push ${{ matrix.php_version }}-${{ matrix.variant }} with tagged prefix + - name: Fetch minor version of php run: | + # Build slim one PHP_VERSION="${{ matrix.php_version }}" - mkdir -p /tmp/build-cache - TAG_PREFIX="rc${GITHUB_SHA::7}-" \ + TAG_PREFIX="rc${GITHUB_RUN_ID}-" \ docker buildx bake \ - --set "*.platform=linux/amd64,linux/arm64" \ - --cache-to "type=local,mode=max,dest=/tmp/build-cache" \ - --set "*.output=type=registry" \ - php${PHP_VERSION//.}-${{ matrix.variant }}-all - - name: Fetch minor version of php - run: | - # Retrieve minor version - PHP_PATCH_MINOR=`docker run --rm thecodingmachine/php:rc${GITHUB_SHA::7}-${{ matrix.php_version }}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` + --set "*.platform=linux/amd64" \ + --set "*.output=type=docker" \ + --load \ + php${PHP_VERSION//.}-slim-${{ matrix.variant }} + # Retrieve minor + PHP_PATCH_MINOR=`docker run --rm thecodingmachine/php:rc${GITHUB_RUN_ID}-${{ matrix.php_version }}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` echo "PHP_PATCH_MINOR=${PHP_PATCH_MINOR}" >> $GITHUB_ENV - - name: Build and push ${{ matrix.php_version }}-${{ matrix.variant }} with releases tags (major and minor) + - name: Display tags to build + run: | + PHP_VERSION="${{ matrix.php_version }}" + PHP_PATCH_MINOR="${{ env.PHP_PATCH_MINOR }}" \ + TAG_PREFIX="rc${GITHUB_RUN_ID}-" \ + IS_RELEASE="1" \ + docker buildx bake php${PHP_VERSION//.}-${{ matrix.variant }}-all --print --progress plain | jq ".target[].tags | join(\" \")" -r > "/tmp/tags.log" + cat "/tmp/tags.log" + - name: Build and push ${{ matrix.php_version }}-${{ matrix.variant }} run: | PHP_VERSION="${{ matrix.php_version }}" - PHP_PATCH_MINOR="${PHP_VERSION_MINOR}" \ + PHP_PATCH_MINOR="${{ env.PHP_PATCH_MINOR }}" \ + TAG_PREFIX="rc${GITHUB_RUN_ID}-" \ + IS_RELEASE="1" \ docker buildx bake \ --set "*.platform=linux/amd64,linux/arm64" \ --set "*.output=type=registry" \ - --cache-to "type=local,mode=max,dest=/tmp/build-cache" \ - --cache-from "type=local,mode=max,dest=/tmp/build-cache" \ - --metadata-file "/tmp/digests.log" php${PHP_VERSION//.}-${{ matrix.variant }}-all - - name: Display tags built - run: | - echo "With prefix :" > "/tmp/tags.log" - TAG_PREFIX="rc${GITHUB_SHA::7}-" \ - docker buildx bake php${PHP_VERSION//.}-${{ matrix.variant }}-all --print --progress plain | jq ".target[].tags | join(\" \")" -r >> "/tmp/tags.log" - echo "-----" >> "/tmp/tags.log" - echo "Regular :" >> "/tmp/tags.log" - PHP_PATCH_MINOR="${PHP_VERSION_MINOR}" \ - docker buildx bake php${PHP_VERSION//.}-${{ matrix.variant }}-all --print --progress plain | jq ".target[].tags | join(\" \")" -r >> "/tmp/tags.log" - cat "/tmp/tags.log" - - name: Artifacts + - name: Push artifacts uses: actions/upload-artifact@v3 with: - name: ${{ matrix.php_version }}-${{ matrix.variant }}-logs - path: /tmp/{digests,tag}.log + name: ${{ matrix.php_version }}-${{ matrix.variant }} + path: /tmp/tags.log retention-days: 60 diff --git a/docker-bake.hcl b/docker-bake.hcl index 2b321b7f..0d523c9a 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -137,13 +137,15 @@ group "php72" { variable "REPO" {default = "thecodingmachine/php"} variable "TAG_PREFIX" {default = ""} variable "PHP_PATCH_MINOR" {default = ""} +variable "IS_RELEASE" {default = "0"} variable "GLOBAL_VERSION" {default = "v4"} function "tag" { params = [PHP_VERSION, VARIANT] result = [ - "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", - notequal("",PHP_PATCH_MINOR) ? "${REPO}:${TAG_PREFIX}${PHP_PATCH_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "", + equal("1",IS_RELEASE) ? "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}" : "", + equal("1",IS_RELEASE) ? (notequal("",PHP_PATCH_MINOR) ? "${REPO}:${PHP_PATCH_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "") : "", + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", ] } diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 7cf60788..9befdda2 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -22,13 +22,15 @@ group "php{{ $phpV | replace "." "" }}" { variable "REPO" {default = "thecodingmachine/php"} variable "TAG_PREFIX" {default = ""} variable "PHP_PATCH_MINOR" {default = ""} +variable "IS_RELEASE" {default = "0"} variable "GLOBAL_VERSION" {default = "v4"} function "tag" { params = [PHP_VERSION, VARIANT] result = [ - "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", - notequal("",PHP_PATCH_MINOR) ? "${REPO}:${TAG_PREFIX}${PHP_PATCH_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "", + equal("1",IS_RELEASE) ? "${REPO}:${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}" : "", + equal("1",IS_RELEASE) ? (notequal("",PHP_PATCH_MINOR) ? "${REPO}:${PHP_PATCH_MINOR}-${GLOBAL_VERSION}-${VARIANT}": "") : "", + "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-${VARIANT}", ] } From badccebce0ffc61b778852c2fe15a444dbd87f79 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 26 Sep 2022 11:00:09 +0200 Subject: [PATCH 130/162] Missing swoole onto php 7.* --- extensions/core/docker-install.sh | 1 - extensions/core/swoole/install.sh | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/extensions/core/docker-install.sh b/extensions/core/docker-install.sh index 5970ae9a..18c243a6 100755 --- a/extensions/core/docker-install.sh +++ b/extensions/core/docker-install.sh @@ -1,6 +1,5 @@ #!/usr/bin/env bash -set -e set -ex if [ -n "$DEV_DEPENDENCIES" ] || [ -n "$DEPENDENCIES" ]; then diff --git a/extensions/core/swoole/install.sh b/extensions/core/swoole/install.sh index 9f7057bc..03667c9e 100755 --- a/extensions/core/swoole/install.sh +++ b/extensions/core/swoole/install.sh @@ -2,7 +2,7 @@ set -e -if [[ "${PHP_VERSION}" ~= "^7" ]]; then +if [[ "${PHP_VERSION}" =~ ^7 ]]; then if [[ "${TARGETARCH}" == "arm64" ]]; then # It's too long to compile onto arm64 arch >&2 echo "php-swoole is not included with arm64 version (because build time is too long)" From f9be18a7ef19f3baff2d1f7d587418092fcb9a29 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Tue, 27 Sep 2022 20:07:45 +0200 Subject: [PATCH 131/162] Missing uploadprogress --- Makefile | 11 +++++++++-- extensions/core/uploadprogress/install.sh | 6 +++++- tests-suite/php-extensions.sh | 7 +++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index e672b4dc..1b5b9232 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,8 @@ _test-prerequisites: blueprint docker pull ubuntu:20.04 test-quick: ## Test 8.0 and 8.1 quickly - VERSION=8.0 VARIANT=cli $(MAKE) _test-version - VERSION=8.1 VARIANT=cli $(MAKE) _test-version + VERSION=8.0 VARIANT=cli $(MAKE) _test-version-quick + VERSION=8.1 VARIANT=cli $(MAKE) _test-version-quick test-8.1: ## Test php8.1 build only VERSION=8.1 VARIANT=cli $(MAKE) _test-version @@ -30,5 +30,12 @@ _test-version: _test-prerequisites ## Test php build for VERSION="" and VARIANT= PHP_VERSION="$(VERSION)" BRANCH=v4 VARIANT=$(VARIANT) ./tests-suite/bash_unit -f tap ./tests-suite/*.sh || (notify-send -u critical "Tests failed ($(VERSION)-$(VARIANT))" && exit 1) notify-send -u critical "Tests passed with success ($(VERSION)-$(VARIANT))" +_test-version-quick: _test-prerequisites ## Test php build for VERSION="" and VARIANT="" (without node variants) + docker buildx bake --load \ + --set "*.platform=$$(uname -p)" \ + php$${VERSION//.}-slim-$(VARIANT) php$${VERSION//.}-$(VARIANT) + PHP_VERSION="$(VERSION)" BRANCH=v4 VARIANT=$(VARIANT) ./tests-suite/bash_unit -f tap ./tests-suite/*.sh || (notify-send -u critical "Tests failed ($(VERSION)-$(VARIANT))" && exit 1) + notify-send -u critical "Tests passed with success ($(VERSION)-$(VARIANT)) - without node-*" + clean: ## Clean dangles image after build rm -rf /tmp/buildx-cache \ No newline at end of file diff --git a/extensions/core/uploadprogress/install.sh b/extensions/core/uploadprogress/install.sh index 0c1c8f2b..3aa74e32 100755 --- a/extensions/core/uploadprogress/install.sh +++ b/extensions/core/uploadprogress/install.sh @@ -1,6 +1,10 @@ #!/usr/bin/env bash set -e -export PECL_EXTENSION=uploadprogress +#if [[ "${PHP_VERSION}" =~ ^7 ]]; then +# export PECL_EXTENSION=uploadprogress +#else +export EXTENSION=uploadprogress +#fi ../docker-install.sh diff --git a/tests-suite/php-extensions.sh b/tests-suite/php-extensions.sh index 07edece7..fa32f88d 100755 --- a/tests-suite/php-extensions.sh +++ b/tests-suite/php-extensions.sh @@ -17,6 +17,13 @@ test_presenceOfPDO() { RESULT=$(docker run ${RUN_OPTIONS} --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -m | tail -n +1 | grep --color=never PDO) assert_equals "PDO" "${RESULT}" "Missing php-PDO" } +################################################################# +## Let's check that uploadprogress is enabled explicitly with fat +################################################################# +test_presenceOfUploadprogressOnFat() { + RESULT=$(docker run ${RUN_OPTIONS} -e "PHP_EXTENSIONS=uploadprogress" --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -m | tail -n +1 | grep --color=never uploadprogress) + assert_equals "uploadprogress" "${RESULT}" "Missing php-uploadprogress" +} ############################################################ ## Let's check that the extensions are enabled when composer is run ############################################################ From dab80593e6a507caa9883cb94a4029fd917281af Mon Sep 17 00:00:00 2001 From: Minh Vuong Date: Thu, 20 Oct 2022 16:25:14 +0700 Subject: [PATCH 132/162] feat: add support rdkafka extension for PHP 8.1 --- README.md | 2 +- extensions/8.1/rdkafka | 1 + utils/README.blueprint.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) create mode 120000 extensions/8.1/rdkafka diff --git a/README.md b/README.md index fcca6142..c595231a 100644 --- a/README.md +++ b/README.md @@ -186,7 +186,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *event*, *gnupg* are not available in PHP 8.0+ -- *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ +- *gettext*, *ev*, *swoole* are not available in PHP 8.1+ - *ev*, *rdkafka*, *snmp*, *swoole* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) ### Enabling/disabling extensions in the fat image diff --git a/extensions/8.1/rdkafka b/extensions/8.1/rdkafka new file mode 120000 index 00000000..8fce5d9f --- /dev/null +++ b/extensions/8.1/rdkafka @@ -0,0 +1 @@ +../core/rdkafka/ \ No newline at end of file diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 990b386e..b3e99de0 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -104,7 +104,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *mcrypt* is not available anymore in PHP 7.3+ - *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *event*, *gnupg* are not available in PHP 8.0+ -- *gettext*, *ev*, *rdkafka*, *swoole* are not available in PHP 8.1+ +- *gettext*, *ev*, *swoole* are not available in PHP 8.1+ - *ev*, *rdkafka*, *snmp*, *swoole* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) ### Enabling/disabling extensions in the fat image From 854db9888dd0f389b6fe6a27946c700ea577a6b9 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Thu, 3 Nov 2022 12:00:07 +0100 Subject: [PATCH 133/162] Fix npm install with ARG --- Dockerfile.apache.node | 2 +- Dockerfile.cli.node | 2 +- Dockerfile.fpm.node | 2 +- Dockerfile.slim.apache | 2 +- Dockerfile.slim.cli | 2 +- Dockerfile.slim.fpm | 2 +- utils/Dockerfile.node.blueprint | 2 +- utils/Dockerfile.slim.blueprint | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Dockerfile.apache.node b/Dockerfile.apache.node index 7e69988a..cb23c16f 100644 --- a/Dockerfile.apache.node +++ b/Dockerfile.apache.node @@ -25,7 +25,7 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; fi && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.cli.node b/Dockerfile.cli.node index 77437d7c..9972bfbd 100644 --- a/Dockerfile.cli.node +++ b/Dockerfile.cli.node @@ -25,7 +25,7 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; fi && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.fpm.node b/Dockerfile.fpm.node index abd50c2f..1fdac83c 100644 --- a/Dockerfile.fpm.node +++ b/Dockerfile.fpm.node @@ -25,7 +25,7 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; fi && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 3d47ff3c..822e93ff 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -395,7 +395,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn && \ - if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ + if [[ "${NODE_VERSION}" == "10" ]]; then sudo npm install -g npm@^6.14; fi && \ sudo apt-get clean && \ sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 817bf938..6e83f27d 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -300,7 +300,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn && \ - if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ + if [[ "${NODE_VERSION}" == "10" ]]; then sudo npm install -g npm@^6.14; fi && \ sudo apt-get clean && \ sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index a9b72fa4..69ae603e 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -323,7 +323,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn && \ - if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ + if [[ "${NODE_VERSION}" == "10" ]]; then sudo npm install -g npm@^6.14; fi && \ sudo apt-get clean && \ sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; diff --git a/utils/Dockerfile.node.blueprint b/utils/Dockerfile.node.blueprint index 5922ac60..74d4bb17 100644 --- a/utils/Dockerfile.node.blueprint +++ b/utils/Dockerfile.node.blueprint @@ -24,7 +24,7 @@ RUN apt-get update && \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ apt-get update && \ apt-get install -y --no-install-recommends yarn && \ - if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ + if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; fi && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 4c14d2f8..fd50d147 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -424,7 +424,7 @@ ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends yarn && \ - if [[ "${NODE_VERSION}" == "10" ]]; then npm install -g npm@^6.14; else npm install -g npm; fi && \ + if [[ "${NODE_VERSION}" == "10" ]]; then sudo npm install -g npm@^6.14; fi && \ sudo apt-get clean && \ sudo rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*; \ fi; From 17fcbf823b0ae63bf46cd135432e098b474d338c Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Thu, 3 Nov 2022 14:08:06 +0100 Subject: [PATCH 134/162] Add node18 version (lts) --- README.md | 120 +++++++------- docker-bake.hcl | 270 ++++++++++++++++++++++++++++++-- utils/README.blueprint.md | 6 +- utils/docker-bake.blueprint.hcl | 2 +- 4 files changed, 319 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index fcca6142..1605b209 100644 --- a/README.md +++ b/README.md @@ -23,92 +23,92 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ | [thecodingmachine/php:8.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.1.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache) -| [thecodingmachine/php:8.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.1.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node10) -| [thecodingmachine/php:8.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.1.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node12) -| [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.1.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) -| [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `8.1.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) +| [thecodingmachine/php:8.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node10) +| [thecodingmachine/php:8.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node12) +| [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) +| [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) | [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) -| [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.1.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) -| [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.1.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) -| [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.1.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) -| [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `8.1.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) +| [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) +| [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) +| [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) +| [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) | [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) -| [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.1.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) -| [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.1.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) -| [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.1.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) -| [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `8.1.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) +| [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) +| [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) +| [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) +| [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) | [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) | [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) | [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) | [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) -| [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `8.0.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) -| [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) -| [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `8.0.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) -| [thecodingmachine/php:8.0-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `8.0.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node16) +| [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) +| [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) +| [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) +| [thecodingmachine/php:8.0-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node16) | [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) -| [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `8.0.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) -| [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) -| [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `8.0.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) -| [thecodingmachine/php:8.0-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `8.0.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node16) +| [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) +| [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) +| [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) +| [thecodingmachine/php:8.0-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node16) | [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) -| [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `8.0.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) -| [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) -| [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `8.0.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) -| [thecodingmachine/php:8.0-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `8.0.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node16) +| [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) +| [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) +| [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) +| [thecodingmachine/php:8.0-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node16) | [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) | [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) | [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) | [thecodingmachine/php:7.4-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.4.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache) -| [thecodingmachine/php:7.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.4.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node10) -| [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) -| [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) -| [thecodingmachine/php:7.4-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `7.4.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node16) +| [thecodingmachine/php:7.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node10) +| [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) +| [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) +| [thecodingmachine/php:7.4-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node16) | [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) -| [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.4.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) -| [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) -| [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) -| [thecodingmachine/php:7.4-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `7.4.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node16) +| [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) +| [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) +| [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) +| [thecodingmachine/php:7.4-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node16) | [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) -| [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.4.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) -| [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) -| [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) -| [thecodingmachine/php:7.4-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `7.4.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node16) +| [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) +| [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) +| [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) +| [thecodingmachine/php:7.4-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node16) | [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) | [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) | [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) | [thecodingmachine/php:7.3-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.3.x`(1) | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache) -| [thecodingmachine/php:7.3-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.3.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node10) -| [thecodingmachine/php:7.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.3.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node12) -| [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.3.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) -| [thecodingmachine/php:7.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `7.3.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node16) +| [thecodingmachine/php:7.3-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node10) +| [thecodingmachine/php:7.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node12) +| [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) +| [thecodingmachine/php:7.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node16) | [thecodingmachine/php:7.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.3.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm) -| [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.3.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) -| [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.3.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) -| [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.3.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) -| [thecodingmachine/php:7.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `7.3.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node16) +| [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) +| [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) +| [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) +| [thecodingmachine/php:7.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node16) | [thecodingmachine/php:7.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.3.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli) -| [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.3.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) -| [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.3.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) -| [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.3.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) -| [thecodingmachine/php:7.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `7.3.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node16) +| [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) +| [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) +| [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) +| [thecodingmachine/php:7.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node16) | [thecodingmachine/php:7.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.3.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-apache) | [thecodingmachine/php:7.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.3.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-fpm) | [thecodingmachine/php:7.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.3.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-cli) | [thecodingmachine/php:7.2-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.2.x`(1) | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache) -| [thecodingmachine/php:7.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node10) | `7.2.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node10) -| [thecodingmachine/php:7.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node12) | `7.2.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node12) -| [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node14) | `7.2.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) -| [thecodingmachine/php:7.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node16) | `7.2.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node16) +| [thecodingmachine/php:7.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node10) +| [thecodingmachine/php:7.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node12) +| [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) +| [thecodingmachine/php:7.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node16) | [thecodingmachine/php:7.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.2.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm) -| [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node10) | `7.2.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) -| [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node12) | `7.2.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) -| [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node14) | `7.2.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) -| [thecodingmachine/php:7.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node16) | `7.2.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node16) +| [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) +| [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) +| [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) +| [thecodingmachine/php:7.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node16) | [thecodingmachine/php:7.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.2.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli) -| [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node10) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) -| [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node12) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) -| [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node14) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) -| [thecodingmachine/php:7.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node16) | `7.2.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node16) +| [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) +| [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) +| [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) +| [thecodingmachine/php:7.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node16) | [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) | [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) | [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) diff --git a/docker-bake.hcl b/docker-bake.hcl index 0d523c9a..89be8e34 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -15,105 +15,105 @@ group "php81-apache-all" { targets = [ "php81-slim-apache", "php81-apache", - "php81-apache-node16","php81-apache-node14","php81-apache-node12","php81-apache-node10", + "php81-apache-node18","php81-apache-node16","php81-apache-node14","php81-apache-node12","php81-apache-node10", ] } group "php81-fpm-all" { targets = [ "php81-slim-fpm", "php81-fpm", - "php81-fpm-node16","php81-fpm-node14","php81-fpm-node12","php81-fpm-node10", + "php81-fpm-node18","php81-fpm-node16","php81-fpm-node14","php81-fpm-node12","php81-fpm-node10", ] } group "php81-cli-all" { targets = [ "php81-slim-cli", "php81-cli", - "php81-cli-node16","php81-cli-node14","php81-cli-node12","php81-cli-node10", + "php81-cli-node18","php81-cli-node16","php81-cli-node14","php81-cli-node12","php81-cli-node10", ] } group "php80-apache-all" { targets = [ "php80-slim-apache", "php80-apache", - "php80-apache-node16","php80-apache-node14","php80-apache-node12","php80-apache-node10", + "php80-apache-node18","php80-apache-node16","php80-apache-node14","php80-apache-node12","php80-apache-node10", ] } group "php80-fpm-all" { targets = [ "php80-slim-fpm", "php80-fpm", - "php80-fpm-node16","php80-fpm-node14","php80-fpm-node12","php80-fpm-node10", + "php80-fpm-node18","php80-fpm-node16","php80-fpm-node14","php80-fpm-node12","php80-fpm-node10", ] } group "php80-cli-all" { targets = [ "php80-slim-cli", "php80-cli", - "php80-cli-node16","php80-cli-node14","php80-cli-node12","php80-cli-node10", + "php80-cli-node18","php80-cli-node16","php80-cli-node14","php80-cli-node12","php80-cli-node10", ] } group "php74-apache-all" { targets = [ "php74-slim-apache", "php74-apache", - "php74-apache-node16","php74-apache-node14","php74-apache-node12","php74-apache-node10", + "php74-apache-node18","php74-apache-node16","php74-apache-node14","php74-apache-node12","php74-apache-node10", ] } group "php74-fpm-all" { targets = [ "php74-slim-fpm", "php74-fpm", - "php74-fpm-node16","php74-fpm-node14","php74-fpm-node12","php74-fpm-node10", + "php74-fpm-node18","php74-fpm-node16","php74-fpm-node14","php74-fpm-node12","php74-fpm-node10", ] } group "php74-cli-all" { targets = [ "php74-slim-cli", "php74-cli", - "php74-cli-node16","php74-cli-node14","php74-cli-node12","php74-cli-node10", + "php74-cli-node18","php74-cli-node16","php74-cli-node14","php74-cli-node12","php74-cli-node10", ] } group "php73-apache-all" { targets = [ "php73-slim-apache", "php73-apache", - "php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10", + "php73-apache-node18","php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10", ] } group "php73-fpm-all" { targets = [ "php73-slim-fpm", "php73-fpm", - "php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10", + "php73-fpm-node18","php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10", ] } group "php73-cli-all" { targets = [ "php73-slim-cli", "php73-cli", - "php73-cli-node16","php73-cli-node14","php73-cli-node12","php73-cli-node10", + "php73-cli-node18","php73-cli-node16","php73-cli-node14","php73-cli-node12","php73-cli-node10", ] } group "php72-apache-all" { targets = [ "php72-slim-apache", "php72-apache", - "php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10", + "php72-apache-node18","php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10", ] } group "php72-fpm-all" { targets = [ "php72-slim-fpm", "php72-fpm", - "php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10", + "php72-fpm-node18","php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10", ] } group "php72-cli-all" { targets = [ "php72-slim-cli", "php72-cli", - "php72-cli-node16","php72-cli-node14","php72-cli-node12","php72-cli-node10", + "php72-cli-node18","php72-cli-node16","php72-cli-node14","php72-cli-node12","php72-cli-node10", ] } @@ -190,6 +190,22 @@ target "php81-apache" { } } +# thecodingmachine/php:8.1-v4-apache-node18 +target "php81-apache-node18" { + inherits = ["default"] + tags = tag("8.1", "apache-node18") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.1" + VARIANT = "apache-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php81-apache" + } +} + # thecodingmachine/php:8.1-v4-apache-node16 target "php81-apache-node16" { inherits = ["default"] @@ -283,6 +299,22 @@ target "php81-fpm" { } } +# thecodingmachine/php:8.1-v4-fpm-node18 +target "php81-fpm-node18" { + inherits = ["default"] + tags = tag("8.1", "fpm-node18") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.1" + VARIANT = "fpm-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php81-fpm" + } +} + # thecodingmachine/php:8.1-v4-fpm-node16 target "php81-fpm-node16" { inherits = ["default"] @@ -376,6 +408,22 @@ target "php81-cli" { } } +# thecodingmachine/php:8.1-v4-cli-node18 +target "php81-cli-node18" { + inherits = ["default"] + tags = tag("8.1", "cli-node18") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.1" + VARIANT = "cli-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php81-cli" + } +} + # thecodingmachine/php:8.1-v4-cli-node16 target "php81-cli-node16" { inherits = ["default"] @@ -469,6 +517,22 @@ target "php80-apache" { } } +# thecodingmachine/php:8.0-v4-apache-node18 +target "php80-apache-node18" { + inherits = ["default"] + tags = tag("8.0", "apache-node18") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.0" + VARIANT = "apache-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php80-apache" + } +} + # thecodingmachine/php:8.0-v4-apache-node16 target "php80-apache-node16" { inherits = ["default"] @@ -562,6 +626,22 @@ target "php80-fpm" { } } +# thecodingmachine/php:8.0-v4-fpm-node18 +target "php80-fpm-node18" { + inherits = ["default"] + tags = tag("8.0", "fpm-node18") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.0" + VARIANT = "fpm-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php80-fpm" + } +} + # thecodingmachine/php:8.0-v4-fpm-node16 target "php80-fpm-node16" { inherits = ["default"] @@ -655,6 +735,22 @@ target "php80-cli" { } } +# thecodingmachine/php:8.0-v4-cli-node18 +target "php80-cli-node18" { + inherits = ["default"] + tags = tag("8.0", "cli-node18") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.0" + VARIANT = "cli-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php80-cli" + } +} + # thecodingmachine/php:8.0-v4-cli-node16 target "php80-cli-node16" { inherits = ["default"] @@ -748,6 +844,22 @@ target "php74-apache" { } } +# thecodingmachine/php:7.4-v4-apache-node18 +target "php74-apache-node18" { + inherits = ["default"] + tags = tag("7.4", "apache-node18") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "7.4" + VARIANT = "apache-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php74-apache" + } +} + # thecodingmachine/php:7.4-v4-apache-node16 target "php74-apache-node16" { inherits = ["default"] @@ -841,6 +953,22 @@ target "php74-fpm" { } } +# thecodingmachine/php:7.4-v4-fpm-node18 +target "php74-fpm-node18" { + inherits = ["default"] + tags = tag("7.4", "fpm-node18") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "7.4" + VARIANT = "fpm-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php74-fpm" + } +} + # thecodingmachine/php:7.4-v4-fpm-node16 target "php74-fpm-node16" { inherits = ["default"] @@ -934,6 +1062,22 @@ target "php74-cli" { } } +# thecodingmachine/php:7.4-v4-cli-node18 +target "php74-cli-node18" { + inherits = ["default"] + tags = tag("7.4", "cli-node18") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "7.4" + VARIANT = "cli-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php74-cli" + } +} + # thecodingmachine/php:7.4-v4-cli-node16 target "php74-cli-node16" { inherits = ["default"] @@ -1027,6 +1171,22 @@ target "php73-apache" { } } +# thecodingmachine/php:7.3-v4-apache-node18 +target "php73-apache-node18" { + inherits = ["default"] + tags = tag("7.3", "apache-node18") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "7.3" + VARIANT = "apache-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php73-apache" + } +} + # thecodingmachine/php:7.3-v4-apache-node16 target "php73-apache-node16" { inherits = ["default"] @@ -1120,6 +1280,22 @@ target "php73-fpm" { } } +# thecodingmachine/php:7.3-v4-fpm-node18 +target "php73-fpm-node18" { + inherits = ["default"] + tags = tag("7.3", "fpm-node18") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "7.3" + VARIANT = "fpm-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php73-fpm" + } +} + # thecodingmachine/php:7.3-v4-fpm-node16 target "php73-fpm-node16" { inherits = ["default"] @@ -1213,6 +1389,22 @@ target "php73-cli" { } } +# thecodingmachine/php:7.3-v4-cli-node18 +target "php73-cli-node18" { + inherits = ["default"] + tags = tag("7.3", "cli-node18") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "7.3" + VARIANT = "cli-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php73-cli" + } +} + # thecodingmachine/php:7.3-v4-cli-node16 target "php73-cli-node16" { inherits = ["default"] @@ -1306,6 +1498,22 @@ target "php72-apache" { } } +# thecodingmachine/php:7.2-v4-apache-node18 +target "php72-apache-node18" { + inherits = ["default"] + tags = tag("7.2", "apache-node18") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "7.2" + VARIANT = "apache-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php72-apache" + } +} + # thecodingmachine/php:7.2-v4-apache-node16 target "php72-apache-node16" { inherits = ["default"] @@ -1399,6 +1607,22 @@ target "php72-fpm" { } } +# thecodingmachine/php:7.2-v4-fpm-node18 +target "php72-fpm-node18" { + inherits = ["default"] + tags = tag("7.2", "fpm-node18") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "7.2" + VARIANT = "fpm-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php72-fpm" + } +} + # thecodingmachine/php:7.2-v4-fpm-node16 target "php72-fpm-node16" { inherits = ["default"] @@ -1492,6 +1716,22 @@ target "php72-cli" { } } +# thecodingmachine/php:7.2-v4-cli-node18 +target "php72-cli-node18" { + inherits = ["default"] + tags = tag("7.2", "cli-node18") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "7.2" + VARIANT = "cli-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php72-cli" + } +} + # thecodingmachine/php:7.2-v4-cli-node16 target "php72-cli-node16" { inherits = ["default"] diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 990b386e..f394f7c9 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -22,11 +22,11 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ {{range $phpV := $versions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | apache | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | apache | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}) {{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | fpm | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | fpm | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}) {{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node{{ $nodeV }}) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | cli | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | cli | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}) {{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-apache) | [thecodingmachine/php:{{ $phpV }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm) | [thecodingmachine/php:{{ $phpV }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-cli) diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 9befdda2..43836716 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -1,4 +1,4 @@ -{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "16" "14" "12" "10" }} +{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "18" "16" "14" "12" "10" }} group "default" { targets = [ {{range $phpV := $versions}} From b7aeafdb608ff976fcee2ce4533a1bb3efbd29cc Mon Sep 17 00:00:00 2001 From: Quentin Dreyer Date: Tue, 29 Nov 2022 16:44:30 +0100 Subject: [PATCH 135/162] feat: add support ffi extension --- README.md | 3 ++- extensions/7.4/ffi | 1 + extensions/8.0/ffi | 1 + extensions/8.1/ffi | 1 + extensions/core/ffi/install.sh | 6 ++++++ tests-suite/php-extensions.sh | 13 ++++++++++++- utils/README.blueprint.md | 3 ++- 7 files changed, 25 insertions(+), 3 deletions(-) create mode 120000 extensions/7.4/ffi create mode 120000 extensions/8.0/ffi create mode 120000 extensions/8.1/ffi create mode 100644 extensions/core/ffi/install.sh diff --git a/README.md b/README.md index 5dda22df..9aea52a8 100644 --- a/README.md +++ b/README.md @@ -177,7 +177,7 @@ Below is a list of extensions available in this image: **Enabled by default (in addition to extensions enabled in Slim image):** `apcu`, `hash`, `iconv`, `igbinary`, `mysqli`, `mysqlnd`, `redis`, `soap`, `xsl`, `zlib` and all enabled in slim. -**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` +**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.1-v4-cli php -m` @@ -188,6 +188,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *event*, *gnupg* are not available in PHP 8.0+ - *gettext*, *ev*, *swoole* are not available in PHP 8.1+ - *ev*, *rdkafka*, *snmp*, *swoole* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) +- *ffi* is only available in PHP 7.4+ ### Enabling/disabling extensions in the fat image diff --git a/extensions/7.4/ffi b/extensions/7.4/ffi new file mode 120000 index 00000000..bcd5f3f1 --- /dev/null +++ b/extensions/7.4/ffi @@ -0,0 +1 @@ +../core/ffi \ No newline at end of file diff --git a/extensions/8.0/ffi b/extensions/8.0/ffi new file mode 120000 index 00000000..bcd5f3f1 --- /dev/null +++ b/extensions/8.0/ffi @@ -0,0 +1 @@ +../core/ffi \ No newline at end of file diff --git a/extensions/8.1/ffi b/extensions/8.1/ffi new file mode 120000 index 00000000..bcd5f3f1 --- /dev/null +++ b/extensions/8.1/ffi @@ -0,0 +1 @@ +../core/ffi \ No newline at end of file diff --git a/extensions/core/ffi/install.sh b/extensions/core/ffi/install.sh new file mode 100644 index 00000000..6ee7e0ba --- /dev/null +++ b/extensions/core/ffi/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=ffi + +../docker-install.sh diff --git a/tests-suite/php-extensions.sh b/tests-suite/php-extensions.sh index fa32f88d..456e08eb 100755 --- a/tests-suite/php-extensions.sh +++ b/tests-suite/php-extensions.sh @@ -10,7 +10,7 @@ test_presenceOfMbstring() { assert_equals "mbstring" "${RESULT}" "Missing php-mbstring" } ############################################################ -## Let's check that mbstring is enabled by default +## Let's check that PDO is enabled by default ## (it's compiled in PHP) ############################################################ test_presenceOfPDO() { @@ -24,6 +24,17 @@ test_presenceOfUploadprogressOnFat() { RESULT=$(docker run ${RUN_OPTIONS} -e "PHP_EXTENSIONS=uploadprogress" --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -m | tail -n +1 | grep --color=never uploadprogress) assert_equals "uploadprogress" "${RESULT}" "Missing php-uploadprogress" } +################################################################### +## Let's check that FFI is enabled explicitly with fat for PHP 7.4+ +################################################################### +if [[ "${PHP_VERSION}" == "7.2" || "${PHP_VERSION}" == "7.3" ]]; then + echo "-- FFI is only available for PHP 7.4+" +else + test_presenceOfFFIOnFat() { + RESULT=$(docker run ${RUN_OPTIONS} -e "PHP_EXTENSIONS=ffi" --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -m | tail -n +1 | grep --color=never FFI) + assert_equals "FFI" "${RESULT}" "Missing php-FFI" + } +fi ############################################################ ## Let's check that the extensions are enabled when composer is run ############################################################ diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 93dd99d9..3dc677bd 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -95,7 +95,7 @@ Below is a list of extensions available in this image: **Enabled by default (in addition to extensions enabled in Slim image):** `apcu`, `hash`, `iconv`, `igbinary`, `mysqli`, `mysqlnd`, `redis`, `soap`, `xsl`, `zlib` and all enabled in slim. -**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` +**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:{{ $image.php_version }}-v4-cli php -m` @@ -106,6 +106,7 @@ This list can be outdated, you can verify by executing : `docker run --rm -it th - *event*, *gnupg* are not available in PHP 8.0+ - *gettext*, *ev*, *swoole* are not available in PHP 8.1+ - *ev*, *rdkafka*, *snmp*, *swoole* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) +- *ffi* is only available in PHP 7.4+ ### Enabling/disabling extensions in the fat image From ecb1b014aaa48561a99db3f672289796aaf7acb6 Mon Sep 17 00:00:00 2001 From: qkdreyer Date: Thu, 1 Dec 2022 08:59:41 +0100 Subject: [PATCH 136/162] chore: add execution right to ffi --- extensions/core/ffi/install.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 extensions/core/ffi/install.sh diff --git a/extensions/core/ffi/install.sh b/extensions/core/ffi/install.sh old mode 100644 new mode 100755 From 2001e4bb68ce9f80a9b67ed2a465c8cf4f31ffe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:21:04 +0200 Subject: [PATCH 137/162] Fix `uname -p` shell commands --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 1b5b9232..7168661b 100644 --- a/Makefile +++ b/Makefile @@ -25,14 +25,14 @@ test-8.0: ## Test php8.0 build only _test-version: _test-prerequisites ## Test php build for VERSION="" and VARIANT="" docker buildx bake --load \ - --set "*.platform=$$(uname -p)" \ + --set "*.platform=$(uname -p)" \ php$${VERSION//.}-$(VARIANT)-all PHP_VERSION="$(VERSION)" BRANCH=v4 VARIANT=$(VARIANT) ./tests-suite/bash_unit -f tap ./tests-suite/*.sh || (notify-send -u critical "Tests failed ($(VERSION)-$(VARIANT))" && exit 1) notify-send -u critical "Tests passed with success ($(VERSION)-$(VARIANT))" _test-version-quick: _test-prerequisites ## Test php build for VERSION="" and VARIANT="" (without node variants) docker buildx bake --load \ - --set "*.platform=$$(uname -p)" \ + --set "*.platform=$(uname -p)" \ php$${VERSION//.}-slim-$(VARIANT) php$${VERSION//.}-$(VARIANT) PHP_VERSION="$(VERSION)" BRANCH=v4 VARIANT=$(VARIANT) ./tests-suite/bash_unit -f tap ./tests-suite/*.sh || (notify-send -u critical "Tests failed ($(VERSION)-$(VARIANT))" && exit 1) notify-send -u critical "Tests passed with success ($(VERSION)-$(VARIANT)) - without node-*" From 8b987aa18674e3a05126615dd6433d666fcfa271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:21:22 +0200 Subject: [PATCH 138/162] Copy 8.1 extensions to 8.2 --- extensions/8.2/amqp/install.sh | 6 ++ extensions/8.2/apcu/install.sh | 6 ++ extensions/8.2/ast/install.sh | 6 ++ extensions/8.2/bcmath/install.sh | 4 ++ extensions/8.2/blackfire/install.sh | 53 ++++++++++++++++ extensions/8.2/bz2/install.sh | 4 ++ extensions/8.2/dba/install.sh | 4 ++ extensions/8.2/disable_all.sh | 13 ++++ extensions/8.2/docker-install.sh | 77 ++++++++++++++++++++++++ extensions/8.2/ds/install.sh | 4 ++ extensions/8.2/enchant/install.sh | 4 ++ extensions/8.2/ffi/install.sh | 6 ++ extensions/8.2/gd/install.sh | 9 +++ extensions/8.2/gmp/install.sh | 6 ++ extensions/8.2/grpc/install.sh | 19 ++++++ extensions/8.2/igbinary/install.sh | 6 ++ extensions/8.2/imagick/install.sh | 6 ++ extensions/8.2/imap/install.sh | 6 ++ extensions/8.2/install_all.sh | 32 ++++++++++ extensions/8.2/intl/install.sh | 6 ++ extensions/8.2/ldap/install.sh | 8 +++ extensions/8.2/mailparse/install.sh | 4 ++ extensions/8.2/memcached/install.sh | 13 ++++ extensions/8.2/mongodb/install.sh | 6 ++ extensions/8.2/msgpack/install.sh | 4 ++ extensions/8.2/mysqli/install.sh | 11 ++++ extensions/8.2/pcov/install.sh | 7 +++ extensions/8.2/pdo_dblib/install.sh | 8 +++ extensions/8.2/pdo_mysql/install.sh | 11 ++++ extensions/8.2/pdo_pgsql/install.sh | 6 ++ extensions/8.2/pdo_sqlite/install.sh | 6 ++ extensions/8.2/pgsql/install.sh | 6 ++ extensions/8.2/pspell/install.sh | 6 ++ extensions/8.2/rdkafka/install.sh | 11 ++++ extensions/8.2/redis/install.sh | 12 ++++ extensions/8.2/snmp/install.sh | 16 +++++ extensions/8.2/soap/install.sh | 8 +++ extensions/8.2/sqlite3/install.sh | 6 ++ extensions/8.2/tidy/install.sh | 6 ++ extensions/8.2/uploadprogress/install.sh | 10 +++ extensions/8.2/uuid/install.sh | 6 ++ extensions/8.2/xdebug/install.sh | 5 ++ extensions/8.2/xmlrpc/install.sh | 8 +++ extensions/8.2/yaml/install.sh | 6 ++ extensions/8.2/zip/install.sh | 6 ++ 45 files changed, 473 insertions(+) create mode 100755 extensions/8.2/amqp/install.sh create mode 100755 extensions/8.2/apcu/install.sh create mode 100755 extensions/8.2/ast/install.sh create mode 100755 extensions/8.2/bcmath/install.sh create mode 100755 extensions/8.2/blackfire/install.sh create mode 100755 extensions/8.2/bz2/install.sh create mode 100755 extensions/8.2/dba/install.sh create mode 100755 extensions/8.2/disable_all.sh create mode 100755 extensions/8.2/docker-install.sh create mode 100755 extensions/8.2/ds/install.sh create mode 100755 extensions/8.2/enchant/install.sh create mode 100644 extensions/8.2/ffi/install.sh create mode 100755 extensions/8.2/gd/install.sh create mode 100755 extensions/8.2/gmp/install.sh create mode 100755 extensions/8.2/grpc/install.sh create mode 100755 extensions/8.2/igbinary/install.sh create mode 100755 extensions/8.2/imagick/install.sh create mode 100755 extensions/8.2/imap/install.sh create mode 100755 extensions/8.2/install_all.sh create mode 100755 extensions/8.2/intl/install.sh create mode 100755 extensions/8.2/ldap/install.sh create mode 100755 extensions/8.2/mailparse/install.sh create mode 100755 extensions/8.2/memcached/install.sh create mode 100755 extensions/8.2/mongodb/install.sh create mode 100755 extensions/8.2/msgpack/install.sh create mode 100755 extensions/8.2/mysqli/install.sh create mode 100755 extensions/8.2/pcov/install.sh create mode 100755 extensions/8.2/pdo_dblib/install.sh create mode 100755 extensions/8.2/pdo_mysql/install.sh create mode 100755 extensions/8.2/pdo_pgsql/install.sh create mode 100755 extensions/8.2/pdo_sqlite/install.sh create mode 100755 extensions/8.2/pgsql/install.sh create mode 100755 extensions/8.2/pspell/install.sh create mode 100755 extensions/8.2/rdkafka/install.sh create mode 100755 extensions/8.2/redis/install.sh create mode 100755 extensions/8.2/snmp/install.sh create mode 100755 extensions/8.2/soap/install.sh create mode 100755 extensions/8.2/sqlite3/install.sh create mode 100755 extensions/8.2/tidy/install.sh create mode 100755 extensions/8.2/uploadprogress/install.sh create mode 100755 extensions/8.2/uuid/install.sh create mode 100755 extensions/8.2/xdebug/install.sh create mode 100755 extensions/8.2/xmlrpc/install.sh create mode 100755 extensions/8.2/yaml/install.sh create mode 100755 extensions/8.2/zip/install.sh diff --git a/extensions/8.2/amqp/install.sh b/extensions/8.2/amqp/install.sh new file mode 100755 index 00000000..888b2ef5 --- /dev/null +++ b/extensions/8.2/amqp/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=amqp + +../docker-install.sh diff --git a/extensions/8.2/apcu/install.sh b/extensions/8.2/apcu/install.sh new file mode 100755 index 00000000..7e920e3d --- /dev/null +++ b/extensions/8.2/apcu/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=apcu + +../docker-install.sh diff --git a/extensions/8.2/ast/install.sh b/extensions/8.2/ast/install.sh new file mode 100755 index 00000000..c667abce --- /dev/null +++ b/extensions/8.2/ast/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=ast + +../docker-install.sh diff --git a/extensions/8.2/bcmath/install.sh b/extensions/8.2/bcmath/install.sh new file mode 100755 index 00000000..bc14b330 --- /dev/null +++ b/extensions/8.2/bcmath/install.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +set -e +EXTENSION=bcmath ../docker-install.sh diff --git a/extensions/8.2/blackfire/install.sh b/extensions/8.2/blackfire/install.sh new file mode 100755 index 00000000..e0e17927 --- /dev/null +++ b/extensions/8.2/blackfire/install.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +set -e + +# Install Blackfire +if [[ "${BLACKFIRE_VERSION}" == "" ]]; then + echo "Blackfire version is not set in the environment variables. Exiting!" + exit 1 +fi + +# Let's make it flexible: for those who want to be safe, the image will be built with v1 +# Now if you build the image yourself, you can build it with v2, this way everyone gets happy :) + +version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") +# Probe is the same for v1 and v2 +curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/${TARGETOS}/${TARGETARCH}/$version +mkdir -p /tmp/blackfire +tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire +mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so +printf "extension=blackfire.so" > "/etc/php/${PHP_VERSION}/mods-available/blackfire.ini" +rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz + +if [[ "${BLACKFIRE_VERSION}" == "1" ]]; then + # Cli for v1 require specific version + curl -A "Docker" "https://packages.blackfire.io/binaries/blackfire-agent/1.50.0/blackfire-cli-${TARGETOS}"_"${TARGETARCH}" -o /tmp/blackfire + chmod +x /tmp/blackfire + mv /tmp/blackfire /usr/bin/blackfire + rm -Rf /tmp/blackfire +elif [[ "${BLACKFIRE_VERSION}" == "2" ]]; then + # Cli for v2 is latest version + echo "Installing Blackfire version 2..." + mkdir -p /tmp/blackfire + curl -A "Docker" -L https://blackfire.io/api/v1/releases/cli/linux/${TARGETARCH} | tar zxp -C /tmp/blackfire + if ! /tmp/blackfire/blackfire self:version --no-ansi | grep -qE "version 2\.[0-9]+\.[0-9]+"; then + echo "Blackfire installed is not version 2 : $(/tmp/blackfire/blackfire self:version --no-ansi)" + exit 1 + fi + mv /tmp/blackfire/blackfire /usr/bin/blackfire + rm -Rf /tmp/blackfire +else + echo "Blackfire version in environment variable is invalid" + echo "Value: '${BLACKFIRE_VERSION}'" + exit 1 +fi + +# Let's perform a test +phpenmod -v $PHP_VERSION blackfire +/usr/bin/real_php -m | grep "blackfire" +# Check that there is no output on STDERR when starting php: +OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` +[[ "$OUTPUT" == "" ]] +# And now, let's disable it! +phpdismod -v $PHP_VERSION blackfire \ No newline at end of file diff --git a/extensions/8.2/bz2/install.sh b/extensions/8.2/bz2/install.sh new file mode 100755 index 00000000..7979cb76 --- /dev/null +++ b/extensions/8.2/bz2/install.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +set -e +EXTENSION=bz2 ../docker-install.sh diff --git a/extensions/8.2/dba/install.sh b/extensions/8.2/dba/install.sh new file mode 100755 index 00000000..c5ec4aa6 --- /dev/null +++ b/extensions/8.2/dba/install.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +set -e +EXTENSION=dba ../docker-install.sh diff --git a/extensions/8.2/disable_all.sh b/extensions/8.2/disable_all.sh new file mode 100755 index 00000000..e954009c --- /dev/null +++ b/extensions/8.2/disable_all.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -e +set -ex + +for ext in */; do \ + ext_no_slash=${ext%/} + if compgen -G "/etc/php/${PHP_VERSION}/cli/conf.d/*-$ext_no_slash.ini" > /dev/null; then + echo "***************** Disabling $ext_no_slash ******************" + #rm -f /etc/php/${PHP_VERSION}/cli/conf.d/*-$ext_no_slash.ini + phpdismod -v $PHP_VERSION $ext_no_slash + fi +done diff --git a/extensions/8.2/docker-install.sh b/extensions/8.2/docker-install.sh new file mode 100755 index 00000000..18c243a6 --- /dev/null +++ b/extensions/8.2/docker-install.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash + +set -ex + +if [ -n "$DEV_DEPENDENCIES" ] || [ -n "$DEPENDENCIES" ]; then + apt-get install -y --no-install-recommends $DEV_DEPENDENCIES $DEPENDENCIES +fi + +if [ -n "$CONFIGURE_OPTIONS" ]; then + docker-php-ext-configure $EXTENSION $CONFIGURE_OPTIONS +fi + +if [ -n "$EXTENSION" ]; then + set +e + PACKAGE_NAME=${PACKAGE_NAME:-$EXTENSION} + if apt-cache search --names-only "php${PHP_VERSION}-$PACKAGE_NAME" | grep "php${PHP_VERSION}-$PACKAGE_NAME"; then + set -e + apt-get install -y --no-install-recommends php${PHP_VERSION}-$PACKAGE_NAME + else + set -e + apt-get install -y --no-install-recommends php-$PACKAGE_NAME + fi + +fi + +if [ -n "$PECL_EXTENSION" ]; then + # if env ready? + + # is phpize installed? + if which pickle && which phpize; then + echo "pickle found" + which pickle + else + apt-get install -y --no-install-recommends build-essential php-pear php${PHP_VERSION}-dev pkg-config + curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -L -o /usr/local/bin/pickle + chmod +x /usr/local/bin/pickle + fi + + if [ -n "$USE_PECL" ]; then + pecl channel-update pecl.php.net && pecl channel-update pear.php.net + pecl install $PECL_EXTENSION + else + pickle install $PECL_EXTENSION + fi + echo "extension=${PHP_EXT_NAME:-${PECL_EXTENSION}}.so" > /etc/php/${PHP_VERSION}/mods-available/${PHP_EXT_NAME:-${PECL_EXTENSION}}.ini + # Adding this in the list of Ubuntu extensions because we use that list as a base for the modules list. + # TODO: question: cannot we use /etc/php/mods-available instead??? + touch /var/lib/php/modules/${PHP_VERSION}/registry/${PHP_EXT_NAME:-${PECL_EXTENSION}} +fi + +if [ -n "$DEV_DEPENDENCIES" ]; then + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false -o APT::AutoRemove::SuggestsImportant=false $DEV_DEPENDENCIES +fi + +if [ -n "$EXTENSION" ]; then + # Let's perform a test + phpenmod -v $PHP_VERSION $EXTENSION + /usr/bin/real_php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$EXTENSION}}" + # Check that there is no output on STDERR when starting php: + OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` + [[ "$OUTPUT" == "" ]] + # And now, let's disable it! + phpdismod -v $PHP_VERSION $EXTENSION +fi + +if [ -n "$PECL_EXTENSION" ]; then + # Let's perform a test + PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" PHP_VERSION="${PHP_VERSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash + PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" /usr/bin/real_php /usr/local/bin/generate_conf.php > /etc/php/${PHP_VERSION}/cli/conf.d/testextension.ini + + /usr/bin/real_php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$PECL_EXTENSION}}" + # Check that there is no output on STDERR when starting php: + OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` + [[ "$OUTPUT" == "" ]] + PHP_EXTENSIONS="" PHP_VERSION="${PHP_VERSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash + rm /etc/php/${PHP_VERSION}/cli/conf.d/testextension.ini +fi diff --git a/extensions/8.2/ds/install.sh b/extensions/8.2/ds/install.sh new file mode 100755 index 00000000..e0cfcfe7 --- /dev/null +++ b/extensions/8.2/ds/install.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +set -e +EXTENSION=ds ../docker-install.sh diff --git a/extensions/8.2/enchant/install.sh b/extensions/8.2/enchant/install.sh new file mode 100755 index 00000000..1e635978 --- /dev/null +++ b/extensions/8.2/enchant/install.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +set -e +EXTENSION=enchant ../docker-install.sh diff --git a/extensions/8.2/ffi/install.sh b/extensions/8.2/ffi/install.sh new file mode 100644 index 00000000..6ee7e0ba --- /dev/null +++ b/extensions/8.2/ffi/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=ffi + +../docker-install.sh diff --git a/extensions/8.2/gd/install.sh b/extensions/8.2/gd/install.sh new file mode 100755 index 00000000..75ea4f85 --- /dev/null +++ b/extensions/8.2/gd/install.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=gd +#export DEV_DEPENDENCIES="libjpeg62-turbo-dev libpng-dev libxpm-dev libfreetype6-dev" +#export DEPENDENCIES="libjpeg62-turbo libpng16-16 zlib1g libxpm4 libfreetype6" +#export CONFIGURE_OPTIONS="--with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-xpm-dir=/usr/include/" + +../docker-install.sh diff --git a/extensions/8.2/gmp/install.sh b/extensions/8.2/gmp/install.sh new file mode 100755 index 00000000..28a4a0dc --- /dev/null +++ b/extensions/8.2/gmp/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=gmp + +../docker-install.sh diff --git a/extensions/8.2/grpc/install.sh b/extensions/8.2/grpc/install.sh new file mode 100755 index 00000000..896db7f2 --- /dev/null +++ b/extensions/8.2/grpc/install.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=grpc + +../docker-install.sh + +#if [[ "${TARGETARCH}" == "arm64" ]]; then +# # Need few hours to compile onto arm64 arch +# >&2 echo "php-grpc is not included with arm64 version (because build time is too long)" +# exit 0; +#fi +#set -e +#export USE_PECL=1 +#export DEV_DEPENDENCIES=zlib1g-dev +# +#export PECL_EXTENSION=grpc +# +#../docker-install.sh diff --git a/extensions/8.2/igbinary/install.sh b/extensions/8.2/igbinary/install.sh new file mode 100755 index 00000000..4f27ac9c --- /dev/null +++ b/extensions/8.2/igbinary/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=igbinary + +../docker-install.sh diff --git a/extensions/8.2/imagick/install.sh b/extensions/8.2/imagick/install.sh new file mode 100755 index 00000000..14e2c50a --- /dev/null +++ b/extensions/8.2/imagick/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=imagick + +../docker-install.sh diff --git a/extensions/8.2/imap/install.sh b/extensions/8.2/imap/install.sh new file mode 100755 index 00000000..e2c181ac --- /dev/null +++ b/extensions/8.2/imap/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=imap + +../docker-install.sh diff --git a/extensions/8.2/install_all.sh b/extensions/8.2/install_all.sh new file mode 100755 index 00000000..32157e0a --- /dev/null +++ b/extensions/8.2/install_all.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +set -e +set +x + +# Let's disable autoclean of package list after apt-get install +mv /etc/apt/apt.conf.d/docker-clean /tmp/docker-clean + +apt-get update + +mkdir -p /var/log/ext-php/ + +for ext in */; do \ + cd $ext + ext_no_slash=${ext%/} + echo "***************** Installing $ext_no_slash ******************" + LOG="/var/log/ext-php/install-${ext_no_slash}" + start=$(date +%s) + ./install.sh 2>&1 | tee -a "${LOG}.log" + end=$(date +%s) + echo "$(($end-$start)) seconds to execute ${ext_no_slash}" > "${LOG}.time" + cd .. +done + +# Let's enable autoclean again +mv /tmp/docker-clean /etc/apt/apt.conf.d/docker-clean + +apt-get purge -y php-pear build-essential php${PHP_VERSION}-dev pkg-config +apt-get autoremove -y +apt-get clean +rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* +rm -f /usr/local/bin/pickle diff --git a/extensions/8.2/intl/install.sh b/extensions/8.2/intl/install.sh new file mode 100755 index 00000000..2da03435 --- /dev/null +++ b/extensions/8.2/intl/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=intl + +../docker-install.sh diff --git a/extensions/8.2/ldap/install.sh b/extensions/8.2/ldap/install.sh new file mode 100755 index 00000000..d31ba6a2 --- /dev/null +++ b/extensions/8.2/ldap/install.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e + +set -e +export EXTENSION=ldap + +../docker-install.sh diff --git a/extensions/8.2/mailparse/install.sh b/extensions/8.2/mailparse/install.sh new file mode 100755 index 00000000..e7d13311 --- /dev/null +++ b/extensions/8.2/mailparse/install.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +set -e +EXTENSION=mailparse ../docker-install.sh diff --git a/extensions/8.2/memcached/install.sh b/extensions/8.2/memcached/install.sh new file mode 100755 index 00000000..e2d94999 --- /dev/null +++ b/extensions/8.2/memcached/install.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -e +export DEPENDENCIES="php${PHP_VERSION}-igbinary php${PHP_VERSION}-msgpack" +export EXTENSION=memcached + +# we need to do some weird stuff to get memcached working +phpdismod -v $PHP_VERSION igbinary +phpenmod -v $PHP_VERSION igbinary + +../docker-install.sh + +phpdismod -v $PHP_VERSION igbinary diff --git a/extensions/8.2/mongodb/install.sh b/extensions/8.2/mongodb/install.sh new file mode 100755 index 00000000..48464bfb --- /dev/null +++ b/extensions/8.2/mongodb/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=mongodb + +../docker-install.sh diff --git a/extensions/8.2/msgpack/install.sh b/extensions/8.2/msgpack/install.sh new file mode 100755 index 00000000..3ec52567 --- /dev/null +++ b/extensions/8.2/msgpack/install.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +set -e +EXTENSION=msgpack ../docker-install.sh diff --git a/extensions/8.2/mysqli/install.sh b/extensions/8.2/mysqli/install.sh new file mode 100755 index 00000000..30fa6995 --- /dev/null +++ b/extensions/8.2/mysqli/install.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=mysqlnd +export PACKAGE_NAME=mysql + +../docker-install.sh + +# Exception for this package that enables both mysqlnd and mysqli and pdo_mysql +phpdismod -v $PHP_VERSION mysqli +phpdismod -v $PHP_VERSION pdo_mysql diff --git a/extensions/8.2/pcov/install.sh b/extensions/8.2/pcov/install.sh new file mode 100755 index 00000000..8f681d39 --- /dev/null +++ b/extensions/8.2/pcov/install.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=pcov +#export PECL_EXTENSION=pcov + +../docker-install.sh diff --git a/extensions/8.2/pdo_dblib/install.sh b/extensions/8.2/pdo_dblib/install.sh new file mode 100755 index 00000000..d1c70682 --- /dev/null +++ b/extensions/8.2/pdo_dblib/install.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e +set -e +export EXTENSION=sybase +export PHP_EXT_NAME=dblib + +../docker-install.sh diff --git a/extensions/8.2/pdo_mysql/install.sh b/extensions/8.2/pdo_mysql/install.sh new file mode 100755 index 00000000..30fa6995 --- /dev/null +++ b/extensions/8.2/pdo_mysql/install.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=mysqlnd +export PACKAGE_NAME=mysql + +../docker-install.sh + +# Exception for this package that enables both mysqlnd and mysqli and pdo_mysql +phpdismod -v $PHP_VERSION mysqli +phpdismod -v $PHP_VERSION pdo_mysql diff --git a/extensions/8.2/pdo_pgsql/install.sh b/extensions/8.2/pdo_pgsql/install.sh new file mode 100755 index 00000000..d6dec14f --- /dev/null +++ b/extensions/8.2/pdo_pgsql/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=pgsql + +../docker-install.sh diff --git a/extensions/8.2/pdo_sqlite/install.sh b/extensions/8.2/pdo_sqlite/install.sh new file mode 100755 index 00000000..f3a0ced8 --- /dev/null +++ b/extensions/8.2/pdo_sqlite/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=sqlite3 + +../docker-install.sh diff --git a/extensions/8.2/pgsql/install.sh b/extensions/8.2/pgsql/install.sh new file mode 100755 index 00000000..d6dec14f --- /dev/null +++ b/extensions/8.2/pgsql/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=pgsql + +../docker-install.sh diff --git a/extensions/8.2/pspell/install.sh b/extensions/8.2/pspell/install.sh new file mode 100755 index 00000000..4ecfbcd8 --- /dev/null +++ b/extensions/8.2/pspell/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=pspell + +../docker-install.sh diff --git a/extensions/8.2/rdkafka/install.sh b/extensions/8.2/rdkafka/install.sh new file mode 100755 index 00000000..b4320828 --- /dev/null +++ b/extensions/8.2/rdkafka/install.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -e +if [[ "${TARGETARCH}" == "arm64" ]]; then + # 176 seconds to execute onto arm64 arch + >&2 echo "php-rdkafka is not included with arm64 version (because build time is too long)" + exit 0; +fi +export DEV_DEPENDENCIES="librdkafka-dev" +export DEPENDENCIES="librdkafka1" +PECL_EXTENSION=rdkafka ../docker-install.sh diff --git a/extensions/8.2/redis/install.sh b/extensions/8.2/redis/install.sh new file mode 100755 index 00000000..0d5c66c7 --- /dev/null +++ b/extensions/8.2/redis/install.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=redis + +# we need to do some weird stuff to get memcached working +phpdismod -v $PHP_VERSION igbinary +phpenmod -v $PHP_VERSION igbinary + +../docker-install.sh + +phpdismod -v $PHP_VERSION igbinary diff --git a/extensions/8.2/snmp/install.sh b/extensions/8.2/snmp/install.sh new file mode 100755 index 00000000..7ed4967e --- /dev/null +++ b/extensions/8.2/snmp/install.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +set -e +if [[ "${TARGETARCH}" == "arm64" ]]; then + # 109 seconds to execute onto arm64 arch + >&2 echo "php-snmp is not included with arm64 version (because build time is too long)" + exit 0; +fi +export EXTENSION=snmp +#export DEV_DEPENDENCIES="libsnmp-dev libssl-dev" +#export DEPENDENCIES="snmp libsnmp30 libc6 libpci3 libsensors4 libwrap0 procps libssl1.1" +export DEPENDENCIES="snmpd snmp libsnmp-dev snmp-mibs-downloader" + +../docker-install.sh + +#chmod 700 /var/lib/snmp/mib_indexes diff --git a/extensions/8.2/soap/install.sh b/extensions/8.2/soap/install.sh new file mode 100755 index 00000000..0d79262a --- /dev/null +++ b/extensions/8.2/soap/install.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=soap + +../docker-install.sh + + diff --git a/extensions/8.2/sqlite3/install.sh b/extensions/8.2/sqlite3/install.sh new file mode 100755 index 00000000..f3a0ced8 --- /dev/null +++ b/extensions/8.2/sqlite3/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=sqlite3 + +../docker-install.sh diff --git a/extensions/8.2/tidy/install.sh b/extensions/8.2/tidy/install.sh new file mode 100755 index 00000000..1516eee3 --- /dev/null +++ b/extensions/8.2/tidy/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=tidy + +../docker-install.sh diff --git a/extensions/8.2/uploadprogress/install.sh b/extensions/8.2/uploadprogress/install.sh new file mode 100755 index 00000000..3aa74e32 --- /dev/null +++ b/extensions/8.2/uploadprogress/install.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +set -e +#if [[ "${PHP_VERSION}" =~ ^7 ]]; then +# export PECL_EXTENSION=uploadprogress +#else +export EXTENSION=uploadprogress +#fi + +../docker-install.sh diff --git a/extensions/8.2/uuid/install.sh b/extensions/8.2/uuid/install.sh new file mode 100755 index 00000000..25b56135 --- /dev/null +++ b/extensions/8.2/uuid/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=uuid + +../docker-install.sh diff --git a/extensions/8.2/xdebug/install.sh b/extensions/8.2/xdebug/install.sh new file mode 100755 index 00000000..9af11834 --- /dev/null +++ b/extensions/8.2/xdebug/install.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -e +# We need the "host" command to detect the remote host on MacOS and Windows +EXTENSION=xdebug DEPENDENCIES="bind9-host" ../docker-install.sh diff --git a/extensions/8.2/xmlrpc/install.sh b/extensions/8.2/xmlrpc/install.sh new file mode 100755 index 00000000..3c38826c --- /dev/null +++ b/extensions/8.2/xmlrpc/install.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=xmlrpc + +../docker-install.sh + + diff --git a/extensions/8.2/yaml/install.sh b/extensions/8.2/yaml/install.sh new file mode 100755 index 00000000..bbccba66 --- /dev/null +++ b/extensions/8.2/yaml/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=yaml + +../docker-install.sh diff --git a/extensions/8.2/zip/install.sh b/extensions/8.2/zip/install.sh new file mode 100755 index 00000000..ba0c65a1 --- /dev/null +++ b/extensions/8.2/zip/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=zip + +../docker-install.sh From c6ed4e23a64d0c216acade6ab652b53a78fb4b54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:22:33 +0200 Subject: [PATCH 139/162] Add Node 18 to nodeVersions --- utils/README.blueprint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 3dc677bd..9000c650 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -17,7 +17,7 @@ This repository contains a set of developer-friendly, general purpose PHP images ## Images {{ $versions := list "8.1" "8.0" "7.4" "7.3" "7.2" }} -{{ $nodeVersions := list "10" "12" "14" "16" }} +{{ $nodeVersions := list "10" "12" "14" "16" "18" }} | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ From c1b9e4bf8e6d99aa6ceaea09d551dd80ef6762e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:23:01 +0200 Subject: [PATCH 140/162] Add 8.2 to versions --- utils/README.blueprint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 9000c650..32988308 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -16,7 +16,7 @@ This repository contains a set of developer-friendly, general purpose PHP images {{ $image := .Orbit.Images }} ## Images -{{ $versions := list "8.1" "8.0" "7.4" "7.3" "7.2" }} +{{ $versions := list "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }} {{ $nodeVersions := list "10" "12" "14" "16" "18" }} | Name | PHP version | type |variant | NodeJS version | Size From 8949fdc14f176e3f2ec5956b6761cbe477e04795 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:23:45 +0200 Subject: [PATCH 141/162] Use 8.2 as latest Add 8.2 to test-quick Add test-8.2 --- Makefile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7168661b..e806a739 100644 --- a/Makefile +++ b/Makefile @@ -4,14 +4,20 @@ blueprint: ## Generate all blueprints file @if ! type orbit >/dev/null 2>&1; then echo "Missing orbit dependency, please install from https://github.com/gulien/orbit/"; exit 1; fi orbit run generate -test-latest: test-8.1 ## Test the latest build only +test-latest: test-8.2 ## Test the latest build only _test-prerequisites: blueprint docker pull ubuntu:20.04 -test-quick: ## Test 8.0 and 8.1 quickly +test-quick: ## Test 8.0, 8.1 and 8.2 quickly VERSION=8.0 VARIANT=cli $(MAKE) _test-version-quick VERSION=8.1 VARIANT=cli $(MAKE) _test-version-quick + VERSION=8.2 VARIANT=cli $(MAKE) _test-version-quick + +test-8.2: ## Test php8.2 build only + VERSION=8.2 VARIANT=cli $(MAKE) _test-version + VERSION=8.2 VARIANT=apache $(MAKE) _test-version + VERSION=8.2 VARIANT=fpm $(MAKE) _test-version test-8.1: ## Test php8.1 build only VERSION=8.1 VARIANT=cli $(MAKE) _test-version From 24dfcb3c6e99c3edc11aa20d5efc307bef9ed2d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:24:50 +0200 Subject: [PATCH 142/162] Add 8.2 to Github workflows --- .github/workflows/workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 48ce0c17..e0af6f9b 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.1','8.0','7.4', '7.3','7.2'] + php_version: ['8.2','8.1','8.0','7.4','7.3','7.2'] variant: ['apache','cli','fpm'] # builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "macos-latest"}] builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "ubuntu-latest"}] @@ -64,7 +64,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.1','8.0','7.4', '7.3','7.2'] + php_version: ['8.2','8.1','8.0','7.4','7.3','7.2'] variant: ['apache','cli','fpm'] steps: - name: Checkout From 79b8daf5944537604012367290233536ed7cb517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:25:34 +0200 Subject: [PATCH 143/162] Use 8.2 as default --- orbit-images.yml | 2 +- tests-suite/config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/orbit-images.yml b/orbit-images.yml index 44e9f54c..da7a0a6f 100644 --- a/orbit-images.yml +++ b/orbit-images.yml @@ -1 +1 @@ -php_version: "8.1" +php_version: "8.2" diff --git a/tests-suite/config b/tests-suite/config index b99db27a..63c9f432 100755 --- a/tests-suite/config +++ b/tests-suite/config @@ -2,7 +2,7 @@ export PLATFORM="${PLATFORM:-$(uname -p)}" export BUILDTOOL="build --platform=${PLATFORM}" export RUN_OPTIONS="--platform=${PLATFORM}" -export PHP_VERSION=${PHP_VERSION:-8.1} +export PHP_VERSION=${PHP_VERSION:-8.2} export BRANCH=${BRANCH:-v4} export VARIANT=${VARIANT:-apache} export BRANCH_VARIANT="${VARIANT//./-}" From 57c59885e9cb6ca78e984682da33f3911b0681d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:25:43 +0200 Subject: [PATCH 144/162] Add changelog entry --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32bc2116..a4150be2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ ### Minor changes +* **2022-12-18** + * Support for PHP 8.2 + * **2021-09-22** * Preview for PHP 8.1 | PHP 8.1 in release candidate 2 (miss many extensions) * Support for Node v16 | Version LTS From c58a76d5e417e2d100a374cdb52949beee5cdab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:26:06 +0200 Subject: [PATCH 145/162] Add 8.2 to versions list --- utils/docker-bake.blueprint.hcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 43836716..6e0deaff 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -1,4 +1,4 @@ -{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "18" "16" "14" "12" "10" }} +{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "18" "16" "14" "12" "10" }} group "default" { targets = [ {{range $phpV := $versions}} From 79abcdc1caa4fa5565c4331713e501bd6c064456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:26:25 +0200 Subject: [PATCH 146/162] Generated docker-bake.hcl --- docker-bake.hcl | 352 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 352 insertions(+) diff --git a/docker-bake.hcl b/docker-bake.hcl index 89be8e34..925c49ca 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -3,6 +3,7 @@ group "default" { targets = [ + "php82", "php81", "php80", "php74", @@ -11,6 +12,27 @@ group "default" { ] } +group "php82-apache-all" { + targets = [ + "php82-slim-apache", + "php82-apache", + "php82-apache-node18","php82-apache-node16","php82-apache-node14","php82-apache-node12","php82-apache-node10", + ] +} +group "php82-fpm-all" { + targets = [ + "php82-slim-fpm", + "php82-fpm", + "php82-fpm-node18","php82-fpm-node16","php82-fpm-node14","php82-fpm-node12","php82-fpm-node10", + ] +} +group "php82-cli-all" { + targets = [ + "php82-slim-cli", + "php82-cli", + "php82-cli-node18","php82-cli-node16","php82-cli-node14","php82-cli-node12","php82-cli-node10", + ] +} group "php81-apache-all" { targets = [ "php81-slim-apache", @@ -118,6 +140,9 @@ group "php72-cli-all" { } +group "php82" { + targets = ["php82-apache-all","php82-fpm-all","php82-cli-all",] +} group "php81" { targets = ["php81-apache-all","php81-fpm-all","php81-cli-all",] } @@ -161,6 +186,333 @@ target "default" { } +########################### +## PHP 8.2 +########################### +# thecodingmachine/php:8.2-v4-slim-apache +target "php82-slim-apache" { + inherits = ["default"] + tags = tag("8.2", "slim-apache") + dockerfile = "Dockerfile.slim.apache" + args = { + PHP_VERSION = "8.2" + VARIANT = "apache" + } +} + +# thecodingmachine/php:8.2-v4-apache +target "php82-apache" { + inherits = ["default"] + tags = tag("8.2", "apache") + dockerfile = "Dockerfile.apache" + args = { + PHP_VERSION = "8.2" + VARIANT = "apache" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php82-slim-apache" + } +} + +# thecodingmachine/php:8.2-v4-apache-node18 +target "php82-apache-node18" { + inherits = ["default"] + tags = tag("8.2", "apache-node18") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "apache-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php82-apache" + } +} + +# thecodingmachine/php:8.2-v4-apache-node16 +target "php82-apache-node16" { + inherits = ["default"] + tags = tag("8.2", "apache-node16") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "apache-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php82-apache" + } +} + +# thecodingmachine/php:8.2-v4-apache-node14 +target "php82-apache-node14" { + inherits = ["default"] + tags = tag("8.2", "apache-node14") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "apache-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php82-apache" + } +} + +# thecodingmachine/php:8.2-v4-apache-node12 +target "php82-apache-node12" { + inherits = ["default"] + tags = tag("8.2", "apache-node12") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "apache-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php82-apache" + } +} + +# thecodingmachine/php:8.2-v4-apache-node10 +target "php82-apache-node10" { + inherits = ["default"] + tags = tag("8.2", "apache-node10") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "apache-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php82-apache" + } +} + +########################### +## PHP 8.2 +########################### +# thecodingmachine/php:8.2-v4-slim-fpm +target "php82-slim-fpm" { + inherits = ["default"] + tags = tag("8.2", "slim-fpm") + dockerfile = "Dockerfile.slim.fpm" + args = { + PHP_VERSION = "8.2" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:8.2-v4-fpm +target "php82-fpm" { + inherits = ["default"] + tags = tag("8.2", "fpm") + dockerfile = "Dockerfile.fpm" + args = { + PHP_VERSION = "8.2" + VARIANT = "fpm" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php82-slim-fpm" + } +} + +# thecodingmachine/php:8.2-v4-fpm-node18 +target "php82-fpm-node18" { + inherits = ["default"] + tags = tag("8.2", "fpm-node18") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "fpm-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php82-fpm" + } +} + +# thecodingmachine/php:8.2-v4-fpm-node16 +target "php82-fpm-node16" { + inherits = ["default"] + tags = tag("8.2", "fpm-node16") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "fpm-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php82-fpm" + } +} + +# thecodingmachine/php:8.2-v4-fpm-node14 +target "php82-fpm-node14" { + inherits = ["default"] + tags = tag("8.2", "fpm-node14") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "fpm-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php82-fpm" + } +} + +# thecodingmachine/php:8.2-v4-fpm-node12 +target "php82-fpm-node12" { + inherits = ["default"] + tags = tag("8.2", "fpm-node12") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "fpm-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php82-fpm" + } +} + +# thecodingmachine/php:8.2-v4-fpm-node10 +target "php82-fpm-node10" { + inherits = ["default"] + tags = tag("8.2", "fpm-node10") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "fpm-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php82-fpm" + } +} + +########################### +## PHP 8.2 +########################### +# thecodingmachine/php:8.2-v4-slim-cli +target "php82-slim-cli" { + inherits = ["default"] + tags = tag("8.2", "slim-cli") + dockerfile = "Dockerfile.slim.cli" + args = { + PHP_VERSION = "8.2" + VARIANT = "cli" + } +} + +# thecodingmachine/php:8.2-v4-cli +target "php82-cli" { + inherits = ["default"] + tags = tag("8.2", "cli") + dockerfile = "Dockerfile.cli" + args = { + PHP_VERSION = "8.2" + VARIANT = "cli" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php82-slim-cli" + } +} + +# thecodingmachine/php:8.2-v4-cli-node18 +target "php82-cli-node18" { + inherits = ["default"] + tags = tag("8.2", "cli-node18") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "cli-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php82-cli" + } +} + +# thecodingmachine/php:8.2-v4-cli-node16 +target "php82-cli-node16" { + inherits = ["default"] + tags = tag("8.2", "cli-node16") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "cli-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php82-cli" + } +} + +# thecodingmachine/php:8.2-v4-cli-node14 +target "php82-cli-node14" { + inherits = ["default"] + tags = tag("8.2", "cli-node14") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "cli-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php82-cli" + } +} + +# thecodingmachine/php:8.2-v4-cli-node12 +target "php82-cli-node12" { + inherits = ["default"] + tags = tag("8.2", "cli-node12") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "cli-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php82-cli" + } +} + +# thecodingmachine/php:8.2-v4-cli-node10 +target "php82-cli-node10" { + inherits = ["default"] + tags = tag("8.2", "cli-node10") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "cli-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php82-cli" + } +} + ########################### ## PHP 8.1 ########################### From 449290b1e175902944a4484dc1758349bf97cb97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Sun, 18 Dec 2022 20:26:31 +0200 Subject: [PATCH 147/162] Generated README --- README.md | 88 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 62 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 9aea52a8..09476a12 100644 --- a/README.md +++ b/README.md @@ -22,21 +22,45 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ +| [thecodingmachine/php:8.2-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.2.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache) +| [thecodingmachine/php:8.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node10) +| [thecodingmachine/php:8.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node12) +| [thecodingmachine/php:8.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node14) +| [thecodingmachine/php:8.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node16) +| [thecodingmachine/php:8.2-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node18) +| [thecodingmachine/php:8.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.2.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm) +| [thecodingmachine/php:8.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node10) +| [thecodingmachine/php:8.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node12) +| [thecodingmachine/php:8.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node14) +| [thecodingmachine/php:8.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node16) +| [thecodingmachine/php:8.2-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node18) +| [thecodingmachine/php:8.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.2.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli) +| [thecodingmachine/php:8.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node10) +| [thecodingmachine/php:8.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node12) +| [thecodingmachine/php:8.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node14) +| [thecodingmachine/php:8.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node16) +| [thecodingmachine/php:8.2-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node18) +| [thecodingmachine/php:8.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.2.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-apache) +| [thecodingmachine/php:8.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.2.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-fpm) +| [thecodingmachine/php:8.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.2.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-cli) | [thecodingmachine/php:8.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.1.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache) | [thecodingmachine/php:8.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node10) | [thecodingmachine/php:8.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node12) | [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) | [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) +| [thecodingmachine/php:8.1-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node18) | [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) | [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) | [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) | [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) | [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) +| [thecodingmachine/php:8.1-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node18) | [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) | [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) | [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) | [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) | [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) +| [thecodingmachine/php:8.1-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node18) | [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) | [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) | [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) @@ -45,16 +69,19 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) | [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) | [thecodingmachine/php:8.0-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node16) +| [thecodingmachine/php:8.0-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node18) | [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) | [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) | [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) | [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) | [thecodingmachine/php:8.0-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node16) +| [thecodingmachine/php:8.0-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node18) | [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) | [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) | [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) | [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) | [thecodingmachine/php:8.0-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node16) +| [thecodingmachine/php:8.0-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node18) | [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) | [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) | [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) @@ -63,16 +90,19 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) | [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) | [thecodingmachine/php:7.4-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node16) +| [thecodingmachine/php:7.4-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node18) | [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) | [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) | [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) | [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) | [thecodingmachine/php:7.4-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node16) +| [thecodingmachine/php:7.4-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node18) | [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) | [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) | [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) | [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) | [thecodingmachine/php:7.4-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node16) +| [thecodingmachine/php:7.4-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node18) | [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) | [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) | [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) @@ -81,16 +111,19 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node12) | [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) | [thecodingmachine/php:7.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node16) +| [thecodingmachine/php:7.3-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node18) | [thecodingmachine/php:7.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.3.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm) | [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) | [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) | [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) | [thecodingmachine/php:7.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node16) +| [thecodingmachine/php:7.3-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node18) | [thecodingmachine/php:7.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.3.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli) | [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) | [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) | [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) | [thecodingmachine/php:7.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node16) +| [thecodingmachine/php:7.3-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node18) | [thecodingmachine/php:7.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.3.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-apache) | [thecodingmachine/php:7.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.3.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-fpm) | [thecodingmachine/php:7.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.3.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-cli) @@ -99,16 +132,19 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node12) | [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) | [thecodingmachine/php:7.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node16) +| [thecodingmachine/php:7.2-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node18) | [thecodingmachine/php:7.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.2.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm) | [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) | [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) | [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) | [thecodingmachine/php:7.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node16) +| [thecodingmachine/php:7.2-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node18) | [thecodingmachine/php:7.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.2.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli) | [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) | [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) | [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) | [thecodingmachine/php:7.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node16) +| [thecodingmachine/php:7.2-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node18) | [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) | [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) | [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) @@ -132,26 +168,26 @@ These images are based on the [official PHP image](https://hub.docker.com/_/php/ Example with CLI: ```bash -$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:8.1-v4-cli php your-script.php +$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:8.2-v4-cli php your-script.php ``` Example with Apache: ```bash -$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:8.1-v4-apache +$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:8.2-v4-apache ``` Example with PHP-FPM: ```bash -$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:8.1-v4-fpm +$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:8.2-v4-fpm ``` Example with Apache + Node 14.x in a Dockerfile: **Dockerfile** ```Dockerfile -FROM thecodingmachine/php:8.1-v4-apache-node14 +FROM thecodingmachine/php:8.2-v4-apache-node14 COPY src/ /var/www/html/ RUN composer install @@ -165,7 +201,7 @@ This image comes with 2 "types": the *slim* and the **fat** image. These extensions are enabled by default in slim image: `calendar` `ctype` `curl` `date` `dom` `exif` `fileinfo` `filter` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `openssl` `pcntl` `pcre` `PDO` `Phar` `posix` `readline` `shmop` `Reflection` `session` `shmop` `SimpleXML` `sockets` `sodium` `SPL` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `xml` `xmlreader` `xmlwriter` `xsl` `zip` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.1-v4-slim-cli php -m` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.2-v4-slim-cli php -m` The slim image provides a simple way to install the other extensions. You would typically use the "slim" image in a `Dockerfile` when building your own custom image. @@ -179,7 +215,7 @@ Below is a list of extensions available in this image: **Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.1-v4-cli php -m` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.2-v4-cli php -m` **Note**: @@ -200,7 +236,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:8.1-v4-apache-node16 + image: thecodingmachine/php:8.2-v4-apache-node16 environment: # Enable the PostgreSQL extension PHP_EXTENSION_PGSQL: 1 @@ -220,7 +256,7 @@ If you are using the slim image, you can automatically compile the extensions us ```Dockerfile ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql redis soap" -FROM thecodingmachine/php:8.1-v4-slim-apache +FROM thecodingmachine/php:8.2-v4-slim-apache # The build will automatically trigger the download and compilation # of the extensions (thanks to a ONBUILD hook in the slim image) ``` @@ -236,7 +272,7 @@ first FROM): # The PHP_EXTENSIONS ARG will apply to the "slim" image ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql soap" -FROM thecodingmachine/php:8.1-v4-apache-node16 AS builder +FROM thecodingmachine/php:8.2-v4-apache-node16 AS builder COPY --chown=docker:docker sources/web . RUN composer install &&\ @@ -257,7 +293,7 @@ not contain Node, and contains only required extensions. ## Setting parameters in php.ini -By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-8.1/php.ini-development) file that comes with PHP. +By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-8.2/php.ini-development) file that comes with PHP. You can use the production `php.ini` file using the `TEMPLATE_PHP_INI` environment variable: @@ -272,7 +308,7 @@ You can override parameters in `php.ini` using the PHP_INI_XXX environment varia version: '3' services: my_app: - image: thecodingmachine/php:8.1-v4-apache-node16 + image: thecodingmachine/php:8.2-v4-apache-node16 environment: # set the parameter memory_limit=1g PHP_INI_MEMORY_LIMIT: 1g @@ -334,7 +370,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:8.1-v4-apache-node16 + image: thecodingmachine/php:8.2-v4-apache-node16 environment: # Enable the DAV extension for Apache APACHE_EXTENSION_DAV: 1 @@ -352,7 +388,7 @@ APACHE_EXTENSIONS="dav ssl" **Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `brotli` `buffer` `cache` `cache_disk` `cache_socache` `cern_meta` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `http2` `ident` `imagemap` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `md` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php8.0 (depend of your active version)` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_hcheck` `proxy_html` `proxy_http` `proxy_http2` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_redis` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.1-v4-slim-apache a2enmod` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.2-v4-slim-apache a2enmod` ## Debugging @@ -387,7 +423,7 @@ If you use the *slim* images, you can install a NodeJS version with a simple ARG ```Dockerfile ARG NODE_VERSION=14 -FROM thecodingmachine/php:8.1-v4-slim-apache +FROM thecodingmachine/php:8.2-v4-slim-apache # The build will automatically trigger the download of Node 14 # (thanks to a ONBUILD hook in the slim image) ``` @@ -440,7 +476,7 @@ This can be done easily: **Dockerfile** ```Dockerfile -FROM thecodingmachine/php:8.1-v4-apache +FROM thecodingmachine/php:8.2-v4-apache # ... @@ -484,7 +520,7 @@ a single argument before the "FROM" clause in your Dockerfile: ```Dockerfile ARG INSTALL_CRON=1 -FROM thecodingmachine/php:8.1-v4-slim-apache +FROM thecodingmachine/php:8.2-v4-slim-apache # The build triggers automatically the installation of Cron ``` @@ -537,12 +573,12 @@ If such a file is mounted in the image, it will be executed on container startup ```bash docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp \ - -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:8.1-v4-cli php your-script.php + -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:8.2-v4-cli php your-script.php ``` ## Using the CLI variant -The CLI images (thecodingmachine/php:8.1-v4-cli) expect a command to be passed in parameter. +The CLI images (thecodingmachine/php:8.2-v4-cli) expect a command to be passed in parameter. You should override the Docker "command". Important! You should not override the Docker "entrypoint". @@ -550,7 +586,7 @@ Important! You should not override the Docker "entrypoint". **Usage in a Dockerfile:** ```Dockerfile -FROM thecodingmachine/php:8.1-v4-cli +FROM thecodingmachine/php:8.2-v4-cli CMD ["php", "myprogram.php", "some_param"] ``` @@ -562,7 +598,7 @@ CMD ["php", "myprogram.php", "some_param"] version: '3' services: my_app: - image: thecodingmachine/php:8.1-v4-cli + image: thecodingmachine/php:8.2-v4-cli command: php myprogram.php some_param ``` @@ -582,7 +618,7 @@ This option is the easiest way to go if you are using the image on a development version: '3' services: my_app: - image: thecodingmachine/php:8.1-v4-apache-node16 + image: thecodingmachine/php:8.2-v4-apache-node16 volumes: - ~/.ssh:/home/docker/.ssh ``` @@ -603,7 +639,7 @@ Now, let's write a Dockerfile. **Dockerfile** ```yml -FROM thecodingmachine/php:8.1-v4-apache +FROM thecodingmachine/php:8.2-v4-apache ARG SSH_PRIVATE_KEY ARG SSH_KNOWN_HOSTS @@ -641,7 +677,7 @@ kind: Pod spec: containers: - name: foobar - image: thecodingmachine/php:8.1-v4-apache + image: thecodingmachine/php:8.2-v4-apache securityContext: allowPrivilegeEscalation: true # never use "false" here. ``` @@ -663,7 +699,7 @@ Your `docker-compose.yml` file will typically look like this: version: '3.3' services: php: - image: thecodingmachine/php:8.1-v4-apache + image: thecodingmachine/php:8.2-v4-apache ports: - "80:80" environment: @@ -689,7 +725,7 @@ If for some reason, the container name is not "blackfire", you can customize the version: '3.3' services: php: - image: thecodingmachine/php:8.1-v4-apache + image: thecodingmachine/php:8.2-v4-apache environment: PHP_EXTENSION_BLACKFIRE: 1 BLACKFIRE_AGENT: myblackfire @@ -724,7 +760,7 @@ This command will generate all the files from the "blueprint" templates. You can then test your changes using the `build-and-test.sh` command: ```bash -PHP_VERSION=8.1 BRANCH=v4 VARIANT=apache ./build-and-test.sh +PHP_VERSION=8.2 BRANCH=v4 VARIANT=apache ./build-and-test.sh ``` ### Additional environment in build-and-test.sh From 1e3d9a72e7da5ab6c869a0378761be9e5747f7f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Fri, 23 Dec 2022 14:24:56 +0200 Subject: [PATCH 148/162] Use symbolic links in extensions --- extensions/8.2/amqp | 1 + extensions/8.2/amqp/install.sh | 6 -- extensions/8.2/apcu | 1 + extensions/8.2/apcu/install.sh | 6 -- extensions/8.2/ast | 1 + extensions/8.2/ast/install.sh | 6 -- extensions/8.2/bcmath | 1 + extensions/8.2/bcmath/install.sh | 4 -- extensions/8.2/blackfire | 1 + extensions/8.2/blackfire/install.sh | 53 ---------------- extensions/8.2/bz2 | 1 + extensions/8.2/bz2/install.sh | 4 -- extensions/8.2/dba | 1 + extensions/8.2/dba/install.sh | 4 -- extensions/8.2/disable_all.sh | 14 +---- extensions/8.2/docker-install.sh | 78 +----------------------- extensions/8.2/ds | 1 + extensions/8.2/ds/install.sh | 4 -- extensions/8.2/enchant | 1 + extensions/8.2/enchant/install.sh | 4 -- extensions/8.2/ffi | 1 + extensions/8.2/ffi/install.sh | 6 -- extensions/8.2/gd | 1 + extensions/8.2/gd/install.sh | 9 --- extensions/8.2/gmp | 1 + extensions/8.2/gmp/install.sh | 6 -- extensions/8.2/grpc | 1 + extensions/8.2/grpc/install.sh | 19 ------ extensions/8.2/igbinary | 1 + extensions/8.2/igbinary/install.sh | 6 -- extensions/8.2/imagick | 1 + extensions/8.2/imagick/install.sh | 6 -- extensions/8.2/imap | 1 + extensions/8.2/imap/install.sh | 6 -- extensions/8.2/install_all.sh | 33 +--------- extensions/8.2/intl | 1 + extensions/8.2/intl/install.sh | 6 -- extensions/8.2/ldap | 1 + extensions/8.2/ldap/install.sh | 8 --- extensions/8.2/mailparse | 1 + extensions/8.2/mailparse/install.sh | 4 -- extensions/8.2/memcached | 1 + extensions/8.2/memcached/install.sh | 13 ---- extensions/8.2/mongodb | 1 + extensions/8.2/mongodb/install.sh | 6 -- extensions/8.2/msgpack | 1 + extensions/8.2/msgpack/install.sh | 4 -- extensions/8.2/mysqli | 1 + extensions/8.2/mysqli/install.sh | 11 ---- extensions/8.2/pcov | 1 + extensions/8.2/pcov/install.sh | 7 --- extensions/8.2/pdo_dblib | 1 + extensions/8.2/pdo_dblib/install.sh | 8 --- extensions/8.2/pdo_mysql | 1 + extensions/8.2/pdo_mysql/install.sh | 11 ---- extensions/8.2/pdo_pgsql | 1 + extensions/8.2/pdo_pgsql/install.sh | 6 -- extensions/8.2/pdo_sqlite | 1 + extensions/8.2/pdo_sqlite/install.sh | 6 -- extensions/8.2/pgsql | 1 + extensions/8.2/pgsql/install.sh | 6 -- extensions/8.2/pspell | 1 + extensions/8.2/pspell/install.sh | 6 -- extensions/8.2/rdkafka | 1 + extensions/8.2/rdkafka/install.sh | 11 ---- extensions/8.2/redis | 1 + extensions/8.2/redis/install.sh | 12 ---- extensions/8.2/snmp | 1 + extensions/8.2/snmp/install.sh | 16 ----- extensions/8.2/soap | 1 + extensions/8.2/soap/install.sh | 8 --- extensions/8.2/sqlite3 | 1 + extensions/8.2/sqlite3/install.sh | 6 -- extensions/8.2/tidy | 1 + extensions/8.2/tidy/install.sh | 6 -- extensions/8.2/uploadprogress | 1 + extensions/8.2/uploadprogress/install.sh | 10 --- extensions/8.2/uuid | 1 + extensions/8.2/uuid/install.sh | 6 -- extensions/8.2/xdebug | 1 + extensions/8.2/xdebug/install.sh | 5 -- extensions/8.2/xmlrpc | 1 + extensions/8.2/xmlrpc/install.sh | 8 --- extensions/8.2/yaml | 1 + extensions/8.2/yaml/install.sh | 6 -- extensions/8.2/zip | 1 + extensions/8.2/zip/install.sh | 6 -- 87 files changed, 45 insertions(+), 473 deletions(-) create mode 120000 extensions/8.2/amqp delete mode 100755 extensions/8.2/amqp/install.sh create mode 120000 extensions/8.2/apcu delete mode 100755 extensions/8.2/apcu/install.sh create mode 120000 extensions/8.2/ast delete mode 100755 extensions/8.2/ast/install.sh create mode 120000 extensions/8.2/bcmath delete mode 100755 extensions/8.2/bcmath/install.sh create mode 120000 extensions/8.2/blackfire delete mode 100755 extensions/8.2/blackfire/install.sh create mode 120000 extensions/8.2/bz2 delete mode 100755 extensions/8.2/bz2/install.sh create mode 120000 extensions/8.2/dba delete mode 100755 extensions/8.2/dba/install.sh mode change 100755 => 120000 extensions/8.2/disable_all.sh mode change 100755 => 120000 extensions/8.2/docker-install.sh create mode 120000 extensions/8.2/ds delete mode 100755 extensions/8.2/ds/install.sh create mode 120000 extensions/8.2/enchant delete mode 100755 extensions/8.2/enchant/install.sh create mode 120000 extensions/8.2/ffi delete mode 100644 extensions/8.2/ffi/install.sh create mode 120000 extensions/8.2/gd delete mode 100755 extensions/8.2/gd/install.sh create mode 120000 extensions/8.2/gmp delete mode 100755 extensions/8.2/gmp/install.sh create mode 120000 extensions/8.2/grpc delete mode 100755 extensions/8.2/grpc/install.sh create mode 120000 extensions/8.2/igbinary delete mode 100755 extensions/8.2/igbinary/install.sh create mode 120000 extensions/8.2/imagick delete mode 100755 extensions/8.2/imagick/install.sh create mode 120000 extensions/8.2/imap delete mode 100755 extensions/8.2/imap/install.sh mode change 100755 => 120000 extensions/8.2/install_all.sh create mode 120000 extensions/8.2/intl delete mode 100755 extensions/8.2/intl/install.sh create mode 120000 extensions/8.2/ldap delete mode 100755 extensions/8.2/ldap/install.sh create mode 120000 extensions/8.2/mailparse delete mode 100755 extensions/8.2/mailparse/install.sh create mode 120000 extensions/8.2/memcached delete mode 100755 extensions/8.2/memcached/install.sh create mode 120000 extensions/8.2/mongodb delete mode 100755 extensions/8.2/mongodb/install.sh create mode 120000 extensions/8.2/msgpack delete mode 100755 extensions/8.2/msgpack/install.sh create mode 120000 extensions/8.2/mysqli delete mode 100755 extensions/8.2/mysqli/install.sh create mode 120000 extensions/8.2/pcov delete mode 100755 extensions/8.2/pcov/install.sh create mode 120000 extensions/8.2/pdo_dblib delete mode 100755 extensions/8.2/pdo_dblib/install.sh create mode 120000 extensions/8.2/pdo_mysql delete mode 100755 extensions/8.2/pdo_mysql/install.sh create mode 120000 extensions/8.2/pdo_pgsql delete mode 100755 extensions/8.2/pdo_pgsql/install.sh create mode 120000 extensions/8.2/pdo_sqlite delete mode 100755 extensions/8.2/pdo_sqlite/install.sh create mode 120000 extensions/8.2/pgsql delete mode 100755 extensions/8.2/pgsql/install.sh create mode 120000 extensions/8.2/pspell delete mode 100755 extensions/8.2/pspell/install.sh create mode 120000 extensions/8.2/rdkafka delete mode 100755 extensions/8.2/rdkafka/install.sh create mode 120000 extensions/8.2/redis delete mode 100755 extensions/8.2/redis/install.sh create mode 120000 extensions/8.2/snmp delete mode 100755 extensions/8.2/snmp/install.sh create mode 120000 extensions/8.2/soap delete mode 100755 extensions/8.2/soap/install.sh create mode 120000 extensions/8.2/sqlite3 delete mode 100755 extensions/8.2/sqlite3/install.sh create mode 120000 extensions/8.2/tidy delete mode 100755 extensions/8.2/tidy/install.sh create mode 120000 extensions/8.2/uploadprogress delete mode 100755 extensions/8.2/uploadprogress/install.sh create mode 120000 extensions/8.2/uuid delete mode 100755 extensions/8.2/uuid/install.sh create mode 120000 extensions/8.2/xdebug delete mode 100755 extensions/8.2/xdebug/install.sh create mode 120000 extensions/8.2/xmlrpc delete mode 100755 extensions/8.2/xmlrpc/install.sh create mode 120000 extensions/8.2/yaml delete mode 100755 extensions/8.2/yaml/install.sh create mode 120000 extensions/8.2/zip delete mode 100755 extensions/8.2/zip/install.sh diff --git a/extensions/8.2/amqp b/extensions/8.2/amqp new file mode 120000 index 00000000..f66005fc --- /dev/null +++ b/extensions/8.2/amqp @@ -0,0 +1 @@ +../core/amqp \ No newline at end of file diff --git a/extensions/8.2/amqp/install.sh b/extensions/8.2/amqp/install.sh deleted file mode 100755 index 888b2ef5..00000000 --- a/extensions/8.2/amqp/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=amqp - -../docker-install.sh diff --git a/extensions/8.2/apcu b/extensions/8.2/apcu new file mode 120000 index 00000000..ddbb93d6 --- /dev/null +++ b/extensions/8.2/apcu @@ -0,0 +1 @@ +../core/apcu \ No newline at end of file diff --git a/extensions/8.2/apcu/install.sh b/extensions/8.2/apcu/install.sh deleted file mode 100755 index 7e920e3d..00000000 --- a/extensions/8.2/apcu/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=apcu - -../docker-install.sh diff --git a/extensions/8.2/ast b/extensions/8.2/ast new file mode 120000 index 00000000..5241c003 --- /dev/null +++ b/extensions/8.2/ast @@ -0,0 +1 @@ +../core/ast \ No newline at end of file diff --git a/extensions/8.2/ast/install.sh b/extensions/8.2/ast/install.sh deleted file mode 100755 index c667abce..00000000 --- a/extensions/8.2/ast/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=ast - -../docker-install.sh diff --git a/extensions/8.2/bcmath b/extensions/8.2/bcmath new file mode 120000 index 00000000..36953ef1 --- /dev/null +++ b/extensions/8.2/bcmath @@ -0,0 +1 @@ +../core/bcmath \ No newline at end of file diff --git a/extensions/8.2/bcmath/install.sh b/extensions/8.2/bcmath/install.sh deleted file mode 100755 index bc14b330..00000000 --- a/extensions/8.2/bcmath/install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -set -e -EXTENSION=bcmath ../docker-install.sh diff --git a/extensions/8.2/blackfire b/extensions/8.2/blackfire new file mode 120000 index 00000000..1179c0b9 --- /dev/null +++ b/extensions/8.2/blackfire @@ -0,0 +1 @@ +../core/blackfire \ No newline at end of file diff --git a/extensions/8.2/blackfire/install.sh b/extensions/8.2/blackfire/install.sh deleted file mode 100755 index e0e17927..00000000 --- a/extensions/8.2/blackfire/install.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Install Blackfire -if [[ "${BLACKFIRE_VERSION}" == "" ]]; then - echo "Blackfire version is not set in the environment variables. Exiting!" - exit 1 -fi - -# Let's make it flexible: for those who want to be safe, the image will be built with v1 -# Now if you build the image yourself, you can build it with v2, this way everyone gets happy :) - -version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") -# Probe is the same for v1 and v2 -curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/${TARGETOS}/${TARGETARCH}/$version -mkdir -p /tmp/blackfire -tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire -mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so -printf "extension=blackfire.so" > "/etc/php/${PHP_VERSION}/mods-available/blackfire.ini" -rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz - -if [[ "${BLACKFIRE_VERSION}" == "1" ]]; then - # Cli for v1 require specific version - curl -A "Docker" "https://packages.blackfire.io/binaries/blackfire-agent/1.50.0/blackfire-cli-${TARGETOS}"_"${TARGETARCH}" -o /tmp/blackfire - chmod +x /tmp/blackfire - mv /tmp/blackfire /usr/bin/blackfire - rm -Rf /tmp/blackfire -elif [[ "${BLACKFIRE_VERSION}" == "2" ]]; then - # Cli for v2 is latest version - echo "Installing Blackfire version 2..." - mkdir -p /tmp/blackfire - curl -A "Docker" -L https://blackfire.io/api/v1/releases/cli/linux/${TARGETARCH} | tar zxp -C /tmp/blackfire - if ! /tmp/blackfire/blackfire self:version --no-ansi | grep -qE "version 2\.[0-9]+\.[0-9]+"; then - echo "Blackfire installed is not version 2 : $(/tmp/blackfire/blackfire self:version --no-ansi)" - exit 1 - fi - mv /tmp/blackfire/blackfire /usr/bin/blackfire - rm -Rf /tmp/blackfire -else - echo "Blackfire version in environment variable is invalid" - echo "Value: '${BLACKFIRE_VERSION}'" - exit 1 -fi - -# Let's perform a test -phpenmod -v $PHP_VERSION blackfire -/usr/bin/real_php -m | grep "blackfire" -# Check that there is no output on STDERR when starting php: -OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` -[[ "$OUTPUT" == "" ]] -# And now, let's disable it! -phpdismod -v $PHP_VERSION blackfire \ No newline at end of file diff --git a/extensions/8.2/bz2 b/extensions/8.2/bz2 new file mode 120000 index 00000000..34eaa01d --- /dev/null +++ b/extensions/8.2/bz2 @@ -0,0 +1 @@ +../core/bz2 \ No newline at end of file diff --git a/extensions/8.2/bz2/install.sh b/extensions/8.2/bz2/install.sh deleted file mode 100755 index 7979cb76..00000000 --- a/extensions/8.2/bz2/install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -set -e -EXTENSION=bz2 ../docker-install.sh diff --git a/extensions/8.2/dba b/extensions/8.2/dba new file mode 120000 index 00000000..f9598d4d --- /dev/null +++ b/extensions/8.2/dba @@ -0,0 +1 @@ +../core/dba \ No newline at end of file diff --git a/extensions/8.2/dba/install.sh b/extensions/8.2/dba/install.sh deleted file mode 100755 index c5ec4aa6..00000000 --- a/extensions/8.2/dba/install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -set -e -EXTENSION=dba ../docker-install.sh diff --git a/extensions/8.2/disable_all.sh b/extensions/8.2/disable_all.sh deleted file mode 100755 index e954009c..00000000 --- a/extensions/8.2/disable_all.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -ex - -for ext in */; do \ - ext_no_slash=${ext%/} - if compgen -G "/etc/php/${PHP_VERSION}/cli/conf.d/*-$ext_no_slash.ini" > /dev/null; then - echo "***************** Disabling $ext_no_slash ******************" - #rm -f /etc/php/${PHP_VERSION}/cli/conf.d/*-$ext_no_slash.ini - phpdismod -v $PHP_VERSION $ext_no_slash - fi -done diff --git a/extensions/8.2/disable_all.sh b/extensions/8.2/disable_all.sh new file mode 120000 index 00000000..36f58a80 --- /dev/null +++ b/extensions/8.2/disable_all.sh @@ -0,0 +1 @@ +../core/disable_all.sh \ No newline at end of file diff --git a/extensions/8.2/docker-install.sh b/extensions/8.2/docker-install.sh deleted file mode 100755 index 18c243a6..00000000 --- a/extensions/8.2/docker-install.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -if [ -n "$DEV_DEPENDENCIES" ] || [ -n "$DEPENDENCIES" ]; then - apt-get install -y --no-install-recommends $DEV_DEPENDENCIES $DEPENDENCIES -fi - -if [ -n "$CONFIGURE_OPTIONS" ]; then - docker-php-ext-configure $EXTENSION $CONFIGURE_OPTIONS -fi - -if [ -n "$EXTENSION" ]; then - set +e - PACKAGE_NAME=${PACKAGE_NAME:-$EXTENSION} - if apt-cache search --names-only "php${PHP_VERSION}-$PACKAGE_NAME" | grep "php${PHP_VERSION}-$PACKAGE_NAME"; then - set -e - apt-get install -y --no-install-recommends php${PHP_VERSION}-$PACKAGE_NAME - else - set -e - apt-get install -y --no-install-recommends php-$PACKAGE_NAME - fi - -fi - -if [ -n "$PECL_EXTENSION" ]; then - # if env ready? - - # is phpize installed? - if which pickle && which phpize; then - echo "pickle found" - which pickle - else - apt-get install -y --no-install-recommends build-essential php-pear php${PHP_VERSION}-dev pkg-config - curl https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -L -o /usr/local/bin/pickle - chmod +x /usr/local/bin/pickle - fi - - if [ -n "$USE_PECL" ]; then - pecl channel-update pecl.php.net && pecl channel-update pear.php.net - pecl install $PECL_EXTENSION - else - pickle install $PECL_EXTENSION - fi - echo "extension=${PHP_EXT_NAME:-${PECL_EXTENSION}}.so" > /etc/php/${PHP_VERSION}/mods-available/${PHP_EXT_NAME:-${PECL_EXTENSION}}.ini - # Adding this in the list of Ubuntu extensions because we use that list as a base for the modules list. - # TODO: question: cannot we use /etc/php/mods-available instead??? - touch /var/lib/php/modules/${PHP_VERSION}/registry/${PHP_EXT_NAME:-${PECL_EXTENSION}} -fi - -if [ -n "$DEV_DEPENDENCIES" ]; then - apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false -o APT::AutoRemove::SuggestsImportant=false $DEV_DEPENDENCIES -fi - -if [ -n "$EXTENSION" ]; then - # Let's perform a test - phpenmod -v $PHP_VERSION $EXTENSION - /usr/bin/real_php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$EXTENSION}}" - # Check that there is no output on STDERR when starting php: - OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` - [[ "$OUTPUT" == "" ]] - # And now, let's disable it! - phpdismod -v $PHP_VERSION $EXTENSION -fi - -if [ -n "$PECL_EXTENSION" ]; then - # Let's perform a test - PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" PHP_VERSION="${PHP_VERSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash - PHP_EXTENSIONS="${PHP_EXT_NAME:-$PECL_EXTENSION}" /usr/bin/real_php /usr/local/bin/generate_conf.php > /etc/php/${PHP_VERSION}/cli/conf.d/testextension.ini - - /usr/bin/real_php -m | grep "${PHP_EXT_PHP_NAME:-${PHP_EXT_NAME:-$PECL_EXTENSION}}" - # Check that there is no output on STDERR when starting php: - OUTPUT=`/usr/bin/real_php -r "echo '';" 2>&1` - [[ "$OUTPUT" == "" ]] - PHP_EXTENSIONS="" PHP_VERSION="${PHP_VERSION}" /usr/bin/real_php /usr/local/bin/setup_extensions.php | bash - rm /etc/php/${PHP_VERSION}/cli/conf.d/testextension.ini -fi diff --git a/extensions/8.2/docker-install.sh b/extensions/8.2/docker-install.sh new file mode 120000 index 00000000..245891f8 --- /dev/null +++ b/extensions/8.2/docker-install.sh @@ -0,0 +1 @@ +../core/docker-install.sh \ No newline at end of file diff --git a/extensions/8.2/ds b/extensions/8.2/ds new file mode 120000 index 00000000..edbe1af6 --- /dev/null +++ b/extensions/8.2/ds @@ -0,0 +1 @@ +../core/ds \ No newline at end of file diff --git a/extensions/8.2/ds/install.sh b/extensions/8.2/ds/install.sh deleted file mode 100755 index e0cfcfe7..00000000 --- a/extensions/8.2/ds/install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -set -e -EXTENSION=ds ../docker-install.sh diff --git a/extensions/8.2/enchant b/extensions/8.2/enchant new file mode 120000 index 00000000..aa197129 --- /dev/null +++ b/extensions/8.2/enchant @@ -0,0 +1 @@ +../core/enchant \ No newline at end of file diff --git a/extensions/8.2/enchant/install.sh b/extensions/8.2/enchant/install.sh deleted file mode 100755 index 1e635978..00000000 --- a/extensions/8.2/enchant/install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -set -e -EXTENSION=enchant ../docker-install.sh diff --git a/extensions/8.2/ffi b/extensions/8.2/ffi new file mode 120000 index 00000000..bcd5f3f1 --- /dev/null +++ b/extensions/8.2/ffi @@ -0,0 +1 @@ +../core/ffi \ No newline at end of file diff --git a/extensions/8.2/ffi/install.sh b/extensions/8.2/ffi/install.sh deleted file mode 100644 index 6ee7e0ba..00000000 --- a/extensions/8.2/ffi/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=ffi - -../docker-install.sh diff --git a/extensions/8.2/gd b/extensions/8.2/gd new file mode 120000 index 00000000..c4cfd1f9 --- /dev/null +++ b/extensions/8.2/gd @@ -0,0 +1 @@ +../core/gd \ No newline at end of file diff --git a/extensions/8.2/gd/install.sh b/extensions/8.2/gd/install.sh deleted file mode 100755 index 75ea4f85..00000000 --- a/extensions/8.2/gd/install.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=gd -#export DEV_DEPENDENCIES="libjpeg62-turbo-dev libpng-dev libxpm-dev libfreetype6-dev" -#export DEPENDENCIES="libjpeg62-turbo libpng16-16 zlib1g libxpm4 libfreetype6" -#export CONFIGURE_OPTIONS="--with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-xpm-dir=/usr/include/" - -../docker-install.sh diff --git a/extensions/8.2/gmp b/extensions/8.2/gmp new file mode 120000 index 00000000..d3dce5ec --- /dev/null +++ b/extensions/8.2/gmp @@ -0,0 +1 @@ +../core/gmp \ No newline at end of file diff --git a/extensions/8.2/gmp/install.sh b/extensions/8.2/gmp/install.sh deleted file mode 100755 index 28a4a0dc..00000000 --- a/extensions/8.2/gmp/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=gmp - -../docker-install.sh diff --git a/extensions/8.2/grpc b/extensions/8.2/grpc new file mode 120000 index 00000000..57533a58 --- /dev/null +++ b/extensions/8.2/grpc @@ -0,0 +1 @@ +../core/grpc \ No newline at end of file diff --git a/extensions/8.2/grpc/install.sh b/extensions/8.2/grpc/install.sh deleted file mode 100755 index 896db7f2..00000000 --- a/extensions/8.2/grpc/install.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=grpc - -../docker-install.sh - -#if [[ "${TARGETARCH}" == "arm64" ]]; then -# # Need few hours to compile onto arm64 arch -# >&2 echo "php-grpc is not included with arm64 version (because build time is too long)" -# exit 0; -#fi -#set -e -#export USE_PECL=1 -#export DEV_DEPENDENCIES=zlib1g-dev -# -#export PECL_EXTENSION=grpc -# -#../docker-install.sh diff --git a/extensions/8.2/igbinary b/extensions/8.2/igbinary new file mode 120000 index 00000000..c57a5ab9 --- /dev/null +++ b/extensions/8.2/igbinary @@ -0,0 +1 @@ +../core/igbinary \ No newline at end of file diff --git a/extensions/8.2/igbinary/install.sh b/extensions/8.2/igbinary/install.sh deleted file mode 100755 index 4f27ac9c..00000000 --- a/extensions/8.2/igbinary/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=igbinary - -../docker-install.sh diff --git a/extensions/8.2/imagick b/extensions/8.2/imagick new file mode 120000 index 00000000..a55b99bc --- /dev/null +++ b/extensions/8.2/imagick @@ -0,0 +1 @@ +../core/imagick \ No newline at end of file diff --git a/extensions/8.2/imagick/install.sh b/extensions/8.2/imagick/install.sh deleted file mode 100755 index 14e2c50a..00000000 --- a/extensions/8.2/imagick/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=imagick - -../docker-install.sh diff --git a/extensions/8.2/imap b/extensions/8.2/imap new file mode 120000 index 00000000..4ee55a28 --- /dev/null +++ b/extensions/8.2/imap @@ -0,0 +1 @@ +../core/imap \ No newline at end of file diff --git a/extensions/8.2/imap/install.sh b/extensions/8.2/imap/install.sh deleted file mode 100755 index e2c181ac..00000000 --- a/extensions/8.2/imap/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=imap - -../docker-install.sh diff --git a/extensions/8.2/install_all.sh b/extensions/8.2/install_all.sh deleted file mode 100755 index 32157e0a..00000000 --- a/extensions/8.2/install_all.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -e -set +x - -# Let's disable autoclean of package list after apt-get install -mv /etc/apt/apt.conf.d/docker-clean /tmp/docker-clean - -apt-get update - -mkdir -p /var/log/ext-php/ - -for ext in */; do \ - cd $ext - ext_no_slash=${ext%/} - echo "***************** Installing $ext_no_slash ******************" - LOG="/var/log/ext-php/install-${ext_no_slash}" - start=$(date +%s) - ./install.sh 2>&1 | tee -a "${LOG}.log" - end=$(date +%s) - echo "$(($end-$start)) seconds to execute ${ext_no_slash}" > "${LOG}.time" - cd .. -done - -# Let's enable autoclean again -mv /tmp/docker-clean /etc/apt/apt.conf.d/docker-clean - -apt-get purge -y php-pear build-essential php${PHP_VERSION}-dev pkg-config -apt-get autoremove -y -apt-get clean -rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -rm -f /usr/local/bin/pickle diff --git a/extensions/8.2/install_all.sh b/extensions/8.2/install_all.sh new file mode 120000 index 00000000..615edbef --- /dev/null +++ b/extensions/8.2/install_all.sh @@ -0,0 +1 @@ +../core/install_all.sh \ No newline at end of file diff --git a/extensions/8.2/intl b/extensions/8.2/intl new file mode 120000 index 00000000..dd21da0b --- /dev/null +++ b/extensions/8.2/intl @@ -0,0 +1 @@ +../core/intl \ No newline at end of file diff --git a/extensions/8.2/intl/install.sh b/extensions/8.2/intl/install.sh deleted file mode 100755 index 2da03435..00000000 --- a/extensions/8.2/intl/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=intl - -../docker-install.sh diff --git a/extensions/8.2/ldap b/extensions/8.2/ldap new file mode 120000 index 00000000..394c7519 --- /dev/null +++ b/extensions/8.2/ldap @@ -0,0 +1 @@ +../core/ldap \ No newline at end of file diff --git a/extensions/8.2/ldap/install.sh b/extensions/8.2/ldap/install.sh deleted file mode 100755 index d31ba6a2..00000000 --- a/extensions/8.2/ldap/install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -set -e - -set -e -export EXTENSION=ldap - -../docker-install.sh diff --git a/extensions/8.2/mailparse b/extensions/8.2/mailparse new file mode 120000 index 00000000..e29c74c5 --- /dev/null +++ b/extensions/8.2/mailparse @@ -0,0 +1 @@ +../core/mailparse \ No newline at end of file diff --git a/extensions/8.2/mailparse/install.sh b/extensions/8.2/mailparse/install.sh deleted file mode 100755 index e7d13311..00000000 --- a/extensions/8.2/mailparse/install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -set -e -EXTENSION=mailparse ../docker-install.sh diff --git a/extensions/8.2/memcached b/extensions/8.2/memcached new file mode 120000 index 00000000..13f2ea8c --- /dev/null +++ b/extensions/8.2/memcached @@ -0,0 +1 @@ +../core/memcached \ No newline at end of file diff --git a/extensions/8.2/memcached/install.sh b/extensions/8.2/memcached/install.sh deleted file mode 100755 index e2d94999..00000000 --- a/extensions/8.2/memcached/install.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e -export DEPENDENCIES="php${PHP_VERSION}-igbinary php${PHP_VERSION}-msgpack" -export EXTENSION=memcached - -# we need to do some weird stuff to get memcached working -phpdismod -v $PHP_VERSION igbinary -phpenmod -v $PHP_VERSION igbinary - -../docker-install.sh - -phpdismod -v $PHP_VERSION igbinary diff --git a/extensions/8.2/mongodb b/extensions/8.2/mongodb new file mode 120000 index 00000000..7898c8e7 --- /dev/null +++ b/extensions/8.2/mongodb @@ -0,0 +1 @@ +../core/mongodb \ No newline at end of file diff --git a/extensions/8.2/mongodb/install.sh b/extensions/8.2/mongodb/install.sh deleted file mode 100755 index 48464bfb..00000000 --- a/extensions/8.2/mongodb/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=mongodb - -../docker-install.sh diff --git a/extensions/8.2/msgpack b/extensions/8.2/msgpack new file mode 120000 index 00000000..2a72eaa8 --- /dev/null +++ b/extensions/8.2/msgpack @@ -0,0 +1 @@ +../core/msgpack \ No newline at end of file diff --git a/extensions/8.2/msgpack/install.sh b/extensions/8.2/msgpack/install.sh deleted file mode 100755 index 3ec52567..00000000 --- a/extensions/8.2/msgpack/install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -set -e -EXTENSION=msgpack ../docker-install.sh diff --git a/extensions/8.2/mysqli b/extensions/8.2/mysqli new file mode 120000 index 00000000..401b7fbf --- /dev/null +++ b/extensions/8.2/mysqli @@ -0,0 +1 @@ +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.2/mysqli/install.sh b/extensions/8.2/mysqli/install.sh deleted file mode 100755 index 30fa6995..00000000 --- a/extensions/8.2/mysqli/install.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=mysqlnd -export PACKAGE_NAME=mysql - -../docker-install.sh - -# Exception for this package that enables both mysqlnd and mysqli and pdo_mysql -phpdismod -v $PHP_VERSION mysqli -phpdismod -v $PHP_VERSION pdo_mysql diff --git a/extensions/8.2/pcov b/extensions/8.2/pcov new file mode 120000 index 00000000..b99a0dd2 --- /dev/null +++ b/extensions/8.2/pcov @@ -0,0 +1 @@ +../core/pcov \ No newline at end of file diff --git a/extensions/8.2/pcov/install.sh b/extensions/8.2/pcov/install.sh deleted file mode 100755 index 8f681d39..00000000 --- a/extensions/8.2/pcov/install.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=pcov -#export PECL_EXTENSION=pcov - -../docker-install.sh diff --git a/extensions/8.2/pdo_dblib b/extensions/8.2/pdo_dblib new file mode 120000 index 00000000..2261140c --- /dev/null +++ b/extensions/8.2/pdo_dblib @@ -0,0 +1 @@ +../core/pdo_dblib \ No newline at end of file diff --git a/extensions/8.2/pdo_dblib/install.sh b/extensions/8.2/pdo_dblib/install.sh deleted file mode 100755 index d1c70682..00000000 --- a/extensions/8.2/pdo_dblib/install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -e -export EXTENSION=sybase -export PHP_EXT_NAME=dblib - -../docker-install.sh diff --git a/extensions/8.2/pdo_mysql b/extensions/8.2/pdo_mysql new file mode 120000 index 00000000..401b7fbf --- /dev/null +++ b/extensions/8.2/pdo_mysql @@ -0,0 +1 @@ +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.2/pdo_mysql/install.sh b/extensions/8.2/pdo_mysql/install.sh deleted file mode 100755 index 30fa6995..00000000 --- a/extensions/8.2/pdo_mysql/install.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=mysqlnd -export PACKAGE_NAME=mysql - -../docker-install.sh - -# Exception for this package that enables both mysqlnd and mysqli and pdo_mysql -phpdismod -v $PHP_VERSION mysqli -phpdismod -v $PHP_VERSION pdo_mysql diff --git a/extensions/8.2/pdo_pgsql b/extensions/8.2/pdo_pgsql new file mode 120000 index 00000000..3a0bda2d --- /dev/null +++ b/extensions/8.2/pdo_pgsql @@ -0,0 +1 @@ +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.2/pdo_pgsql/install.sh b/extensions/8.2/pdo_pgsql/install.sh deleted file mode 100755 index d6dec14f..00000000 --- a/extensions/8.2/pdo_pgsql/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=pgsql - -../docker-install.sh diff --git a/extensions/8.2/pdo_sqlite b/extensions/8.2/pdo_sqlite new file mode 120000 index 00000000..84c26578 --- /dev/null +++ b/extensions/8.2/pdo_sqlite @@ -0,0 +1 @@ +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/8.2/pdo_sqlite/install.sh b/extensions/8.2/pdo_sqlite/install.sh deleted file mode 100755 index f3a0ced8..00000000 --- a/extensions/8.2/pdo_sqlite/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=sqlite3 - -../docker-install.sh diff --git a/extensions/8.2/pgsql b/extensions/8.2/pgsql new file mode 120000 index 00000000..3a0bda2d --- /dev/null +++ b/extensions/8.2/pgsql @@ -0,0 +1 @@ +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.2/pgsql/install.sh b/extensions/8.2/pgsql/install.sh deleted file mode 100755 index d6dec14f..00000000 --- a/extensions/8.2/pgsql/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=pgsql - -../docker-install.sh diff --git a/extensions/8.2/pspell b/extensions/8.2/pspell new file mode 120000 index 00000000..9be96fd9 --- /dev/null +++ b/extensions/8.2/pspell @@ -0,0 +1 @@ +../core/pspell \ No newline at end of file diff --git a/extensions/8.2/pspell/install.sh b/extensions/8.2/pspell/install.sh deleted file mode 100755 index 4ecfbcd8..00000000 --- a/extensions/8.2/pspell/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=pspell - -../docker-install.sh diff --git a/extensions/8.2/rdkafka b/extensions/8.2/rdkafka new file mode 120000 index 00000000..8fce5d9f --- /dev/null +++ b/extensions/8.2/rdkafka @@ -0,0 +1 @@ +../core/rdkafka/ \ No newline at end of file diff --git a/extensions/8.2/rdkafka/install.sh b/extensions/8.2/rdkafka/install.sh deleted file mode 100755 index b4320828..00000000 --- a/extensions/8.2/rdkafka/install.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e -if [[ "${TARGETARCH}" == "arm64" ]]; then - # 176 seconds to execute onto arm64 arch - >&2 echo "php-rdkafka is not included with arm64 version (because build time is too long)" - exit 0; -fi -export DEV_DEPENDENCIES="librdkafka-dev" -export DEPENDENCIES="librdkafka1" -PECL_EXTENSION=rdkafka ../docker-install.sh diff --git a/extensions/8.2/redis b/extensions/8.2/redis new file mode 120000 index 00000000..0727c021 --- /dev/null +++ b/extensions/8.2/redis @@ -0,0 +1 @@ +../core/redis \ No newline at end of file diff --git a/extensions/8.2/redis/install.sh b/extensions/8.2/redis/install.sh deleted file mode 100755 index 0d5c66c7..00000000 --- a/extensions/8.2/redis/install.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=redis - -# we need to do some weird stuff to get memcached working -phpdismod -v $PHP_VERSION igbinary -phpenmod -v $PHP_VERSION igbinary - -../docker-install.sh - -phpdismod -v $PHP_VERSION igbinary diff --git a/extensions/8.2/snmp b/extensions/8.2/snmp new file mode 120000 index 00000000..f2249ffe --- /dev/null +++ b/extensions/8.2/snmp @@ -0,0 +1 @@ +../core/snmp \ No newline at end of file diff --git a/extensions/8.2/snmp/install.sh b/extensions/8.2/snmp/install.sh deleted file mode 100755 index 7ed4967e..00000000 --- a/extensions/8.2/snmp/install.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -set -e -if [[ "${TARGETARCH}" == "arm64" ]]; then - # 109 seconds to execute onto arm64 arch - >&2 echo "php-snmp is not included with arm64 version (because build time is too long)" - exit 0; -fi -export EXTENSION=snmp -#export DEV_DEPENDENCIES="libsnmp-dev libssl-dev" -#export DEPENDENCIES="snmp libsnmp30 libc6 libpci3 libsensors4 libwrap0 procps libssl1.1" -export DEPENDENCIES="snmpd snmp libsnmp-dev snmp-mibs-downloader" - -../docker-install.sh - -#chmod 700 /var/lib/snmp/mib_indexes diff --git a/extensions/8.2/soap b/extensions/8.2/soap new file mode 120000 index 00000000..ea63abf6 --- /dev/null +++ b/extensions/8.2/soap @@ -0,0 +1 @@ +../core/soap \ No newline at end of file diff --git a/extensions/8.2/soap/install.sh b/extensions/8.2/soap/install.sh deleted file mode 100755 index 0d79262a..00000000 --- a/extensions/8.2/soap/install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=soap - -../docker-install.sh - - diff --git a/extensions/8.2/sqlite3 b/extensions/8.2/sqlite3 new file mode 120000 index 00000000..84c26578 --- /dev/null +++ b/extensions/8.2/sqlite3 @@ -0,0 +1 @@ +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/8.2/sqlite3/install.sh b/extensions/8.2/sqlite3/install.sh deleted file mode 100755 index f3a0ced8..00000000 --- a/extensions/8.2/sqlite3/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=sqlite3 - -../docker-install.sh diff --git a/extensions/8.2/tidy b/extensions/8.2/tidy new file mode 120000 index 00000000..e0434e64 --- /dev/null +++ b/extensions/8.2/tidy @@ -0,0 +1 @@ +../core/tidy \ No newline at end of file diff --git a/extensions/8.2/tidy/install.sh b/extensions/8.2/tidy/install.sh deleted file mode 100755 index 1516eee3..00000000 --- a/extensions/8.2/tidy/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=tidy - -../docker-install.sh diff --git a/extensions/8.2/uploadprogress b/extensions/8.2/uploadprogress new file mode 120000 index 00000000..6b4b74d0 --- /dev/null +++ b/extensions/8.2/uploadprogress @@ -0,0 +1 @@ +../core/uploadprogress \ No newline at end of file diff --git a/extensions/8.2/uploadprogress/install.sh b/extensions/8.2/uploadprogress/install.sh deleted file mode 100755 index 3aa74e32..00000000 --- a/extensions/8.2/uploadprogress/install.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -set -e -#if [[ "${PHP_VERSION}" =~ ^7 ]]; then -# export PECL_EXTENSION=uploadprogress -#else -export EXTENSION=uploadprogress -#fi - -../docker-install.sh diff --git a/extensions/8.2/uuid b/extensions/8.2/uuid new file mode 120000 index 00000000..7a522046 --- /dev/null +++ b/extensions/8.2/uuid @@ -0,0 +1 @@ +../core/uuid \ No newline at end of file diff --git a/extensions/8.2/uuid/install.sh b/extensions/8.2/uuid/install.sh deleted file mode 100755 index 25b56135..00000000 --- a/extensions/8.2/uuid/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=uuid - -../docker-install.sh diff --git a/extensions/8.2/xdebug b/extensions/8.2/xdebug new file mode 120000 index 00000000..2ee34925 --- /dev/null +++ b/extensions/8.2/xdebug @@ -0,0 +1 @@ +../core/xdebug \ No newline at end of file diff --git a/extensions/8.2/xdebug/install.sh b/extensions/8.2/xdebug/install.sh deleted file mode 100755 index 9af11834..00000000 --- a/extensions/8.2/xdebug/install.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -set -e -# We need the "host" command to detect the remote host on MacOS and Windows -EXTENSION=xdebug DEPENDENCIES="bind9-host" ../docker-install.sh diff --git a/extensions/8.2/xmlrpc b/extensions/8.2/xmlrpc new file mode 120000 index 00000000..2833c799 --- /dev/null +++ b/extensions/8.2/xmlrpc @@ -0,0 +1 @@ +../core/xmlrpc \ No newline at end of file diff --git a/extensions/8.2/xmlrpc/install.sh b/extensions/8.2/xmlrpc/install.sh deleted file mode 100755 index 3c38826c..00000000 --- a/extensions/8.2/xmlrpc/install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=xmlrpc - -../docker-install.sh - - diff --git a/extensions/8.2/yaml b/extensions/8.2/yaml new file mode 120000 index 00000000..4be2658a --- /dev/null +++ b/extensions/8.2/yaml @@ -0,0 +1 @@ +../core/yaml \ No newline at end of file diff --git a/extensions/8.2/yaml/install.sh b/extensions/8.2/yaml/install.sh deleted file mode 100755 index bbccba66..00000000 --- a/extensions/8.2/yaml/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=yaml - -../docker-install.sh diff --git a/extensions/8.2/zip b/extensions/8.2/zip new file mode 120000 index 00000000..98c05831 --- /dev/null +++ b/extensions/8.2/zip @@ -0,0 +1 @@ +../core/zip \ No newline at end of file diff --git a/extensions/8.2/zip/install.sh b/extensions/8.2/zip/install.sh deleted file mode 100755 index ba0c65a1..00000000 --- a/extensions/8.2/zip/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -set -e -export EXTENSION=zip - -../docker-install.sh From d2f99492a816391a246349767e9938c45bfa888b Mon Sep 17 00:00:00 2001 From: Ali Afsharzadeh Date: Sun, 9 Jul 2023 14:37:01 +0330 Subject: [PATCH 149/162] refactor: remove duplicate line --- extensions/core/pdo_dblib/install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/extensions/core/pdo_dblib/install.sh b/extensions/core/pdo_dblib/install.sh index d1c70682..c250b045 100755 --- a/extensions/core/pdo_dblib/install.sh +++ b/extensions/core/pdo_dblib/install.sh @@ -1,6 +1,5 @@ #!/usr/bin/env bash -set -e set -e export EXTENSION=sybase export PHP_EXT_NAME=dblib From 9b063b964b1b62ad93a701602710d90f08f8cdfd Mon Sep 17 00:00:00 2001 From: Dylan Bridgman Date: Wed, 13 Sep 2023 17:22:22 +0200 Subject: [PATCH 150/162] Change node to the new scriptless install for v16 and above --- utils/Dockerfile.node.blueprint | 8 +++++++- utils/Dockerfile.slim.blueprint | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/utils/Dockerfile.node.blueprint b/utils/Dockerfile.node.blueprint index 74d4bb17..7bc65c2d 100644 --- a/utils/Dockerfile.node.blueprint +++ b/utils/Dockerfile.node.blueprint @@ -17,7 +17,13 @@ ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \ + if [[ "${NODE_VERSION}" -lt "16" ]]; then \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash -; \ + else \ + sudo mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; \ + fi && \ apt-get update && \ apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index fd50d147..3aad60f1 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -417,7 +417,13 @@ ONBUILD ARG NODE_VERSION ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash - && \ + if [[ "${NODE_VERSION}" -lt "16" ]]; then \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash -; \ + else \ + sudo mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; \ + fi && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ From b872ee3552c400e5b9cf5ab924d44a3dd561205f Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Thu, 14 Sep 2023 16:28:34 +0200 Subject: [PATCH 151/162] new node way : update blueprint --- Dockerfile.apache.node | 8 +++++++- Dockerfile.cli.node | 8 +++++++- Dockerfile.fpm.node | 8 +++++++- Dockerfile.slim.apache | 8 +++++++- Dockerfile.slim.cli | 8 +++++++- Dockerfile.slim.fpm | 8 +++++++- 6 files changed, 42 insertions(+), 6 deletions(-) diff --git a/Dockerfile.apache.node b/Dockerfile.apache.node index cb23c16f..d80e1457 100644 --- a/Dockerfile.apache.node +++ b/Dockerfile.apache.node @@ -18,7 +18,13 @@ ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \ + if [[ "${NODE_VERSION}" -lt "16" ]]; then \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash -; \ + else \ + sudo mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; \ + fi && \ apt-get update && \ apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ diff --git a/Dockerfile.cli.node b/Dockerfile.cli.node index 9972bfbd..40d4c2fc 100644 --- a/Dockerfile.cli.node +++ b/Dockerfile.cli.node @@ -18,7 +18,13 @@ ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \ + if [[ "${NODE_VERSION}" -lt "16" ]]; then \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash -; \ + else \ + sudo mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; \ + fi && \ apt-get update && \ apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ diff --git a/Dockerfile.fpm.node b/Dockerfile.fpm.node index 1fdac83c..aea6fc11 100644 --- a/Dockerfile.fpm.node +++ b/Dockerfile.fpm.node @@ -18,7 +18,13 @@ ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION} RUN apt-get update && \ apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \ + if [[ "${NODE_VERSION}" -lt "16" ]]; then \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash -; \ + else \ + sudo mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; \ + fi && \ apt-get update && \ apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 822e93ff..96683011 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -388,7 +388,13 @@ ONBUILD ARG NODE_VERSION ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash - && \ + if [[ "${NODE_VERSION}" -lt "16" ]]; then \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash -; \ + else \ + sudo mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; \ + fi && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ diff --git a/Dockerfile.slim.cli b/Dockerfile.slim.cli index 6e83f27d..2fb784c8 100644 --- a/Dockerfile.slim.cli +++ b/Dockerfile.slim.cli @@ -293,7 +293,13 @@ ONBUILD ARG NODE_VERSION ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash - && \ + if [[ "${NODE_VERSION}" -lt "16" ]]; then \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash -; \ + else \ + sudo mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; \ + fi && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index 69ae603e..dab403ac 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -316,7 +316,13 @@ ONBUILD ARG NODE_VERSION ONBUILD RUN if [ -n "$NODE_VERSION" ]; then \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends gnupg && \ - curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash - && \ + if [[ "${NODE_VERSION}" -lt "16" ]]; then \ + curl -sL https://deb.nodesource.com/setup_${NODE_VERSION}.x | sudo bash -; \ + else \ + sudo mkdir -p /etc/apt/keyrings && \ + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ + echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; \ + fi && \ sudo apt-get update && \ sudo apt-get install -y --no-install-recommends nodejs && \ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \ From 1e259a2692710a5b87cda9aa128b404e12a01ad9 Mon Sep 17 00:00:00 2001 From: Ali Afsharzadeh Date: Wed, 13 Dec 2023 20:05:24 +0330 Subject: [PATCH 152/162] feat: add support for php 8.3 --- .github/workflows/workflow.yml | 4 +- CHANGELOG.md | 3 + Makefile | 10 +- README.md | 73 ++++--- docker-bake.hcl | 352 +++++++++++++++++++++++++++++++ extensions/8.3/amqp | 1 + extensions/8.3/apcu | 1 + extensions/8.3/ast | 1 + extensions/8.3/bcmath | 1 + extensions/8.3/blackfire | 1 + extensions/8.3/bz2 | 1 + extensions/8.3/dba | 1 + extensions/8.3/disable_all.sh | 1 + extensions/8.3/docker-install.sh | 1 + extensions/8.3/ds | 1 + extensions/8.3/enchant | 1 + extensions/8.3/ffi | 1 + extensions/8.3/gd | 1 + extensions/8.3/gmp | 1 + extensions/8.3/grpc | 1 + extensions/8.3/igbinary | 1 + extensions/8.3/imagick | 1 + extensions/8.3/imap | 1 + extensions/8.3/install_all.sh | 1 + extensions/8.3/intl | 1 + extensions/8.3/ldap | 1 + extensions/8.3/mailparse | 1 + extensions/8.3/memcached | 1 + extensions/8.3/mongodb | 1 + extensions/8.3/msgpack | 1 + extensions/8.3/mysqli | 1 + extensions/8.3/pcov | 1 + extensions/8.3/pdo_dblib | 1 + extensions/8.3/pdo_mysql | 1 + extensions/8.3/pdo_pgsql | 1 + extensions/8.3/pdo_sqlite | 1 + extensions/8.3/pgsql | 1 + extensions/8.3/pspell | 1 + extensions/8.3/rdkafka | 1 + extensions/8.3/redis | 1 + extensions/8.3/snmp | 1 + extensions/8.3/soap | 1 + extensions/8.3/sqlite3 | 1 + extensions/8.3/tidy | 1 + extensions/8.3/uploadprogress | 1 + extensions/8.3/uuid | 1 + extensions/8.3/xdebug | 1 + extensions/8.3/xmlrpc | 1 + extensions/8.3/yaml | 1 + extensions/8.3/zip | 1 + orbit-images.yml | 2 +- tests-suite/config | 2 +- utils/README.blueprint.md | 2 +- utils/docker-bake.blueprint.hcl | 2 +- 54 files changed, 461 insertions(+), 34 deletions(-) create mode 120000 extensions/8.3/amqp create mode 120000 extensions/8.3/apcu create mode 120000 extensions/8.3/ast create mode 120000 extensions/8.3/bcmath create mode 120000 extensions/8.3/blackfire create mode 120000 extensions/8.3/bz2 create mode 120000 extensions/8.3/dba create mode 120000 extensions/8.3/disable_all.sh create mode 120000 extensions/8.3/docker-install.sh create mode 120000 extensions/8.3/ds create mode 120000 extensions/8.3/enchant create mode 120000 extensions/8.3/ffi create mode 120000 extensions/8.3/gd create mode 120000 extensions/8.3/gmp create mode 120000 extensions/8.3/grpc create mode 120000 extensions/8.3/igbinary create mode 120000 extensions/8.3/imagick create mode 120000 extensions/8.3/imap create mode 120000 extensions/8.3/install_all.sh create mode 120000 extensions/8.3/intl create mode 120000 extensions/8.3/ldap create mode 120000 extensions/8.3/mailparse create mode 120000 extensions/8.3/memcached create mode 120000 extensions/8.3/mongodb create mode 120000 extensions/8.3/msgpack create mode 120000 extensions/8.3/mysqli create mode 120000 extensions/8.3/pcov create mode 120000 extensions/8.3/pdo_dblib create mode 120000 extensions/8.3/pdo_mysql create mode 120000 extensions/8.3/pdo_pgsql create mode 120000 extensions/8.3/pdo_sqlite create mode 120000 extensions/8.3/pgsql create mode 120000 extensions/8.3/pspell create mode 120000 extensions/8.3/rdkafka create mode 120000 extensions/8.3/redis create mode 120000 extensions/8.3/snmp create mode 120000 extensions/8.3/soap create mode 120000 extensions/8.3/sqlite3 create mode 120000 extensions/8.3/tidy create mode 120000 extensions/8.3/uploadprogress create mode 120000 extensions/8.3/uuid create mode 120000 extensions/8.3/xdebug create mode 120000 extensions/8.3/xmlrpc create mode 120000 extensions/8.3/yaml create mode 120000 extensions/8.3/zip diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index e0af6f9b..d3b5fb28 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.2','8.1','8.0','7.4','7.3','7.2'] + php_version: ['8.3','8.2','8.1','8.0','7.4','7.3','7.2'] variant: ['apache','cli','fpm'] # builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "macos-latest"}] builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "ubuntu-latest"}] @@ -64,7 +64,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.2','8.1','8.0','7.4','7.3','7.2'] + php_version: ['8.3','8.2','8.1','8.0','7.4','7.3','7.2'] variant: ['apache','cli','fpm'] steps: - name: Checkout diff --git a/CHANGELOG.md b/CHANGELOG.md index a4150be2..4d266df2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ ### Minor changes +* **2023-12-13** + * Support for PHP 8.3 + * **2022-12-18** * Support for PHP 8.2 diff --git a/Makefile b/Makefile index e806a739..dcd2c5bf 100644 --- a/Makefile +++ b/Makefile @@ -4,15 +4,21 @@ blueprint: ## Generate all blueprints file @if ! type orbit >/dev/null 2>&1; then echo "Missing orbit dependency, please install from https://github.com/gulien/orbit/"; exit 1; fi orbit run generate -test-latest: test-8.2 ## Test the latest build only +test-latest: test-8.3 ## Test the latest build only _test-prerequisites: blueprint docker pull ubuntu:20.04 -test-quick: ## Test 8.0, 8.1 and 8.2 quickly +test-quick: ## Test 8.0, 8.1, 8.2 and 8.3 quickly VERSION=8.0 VARIANT=cli $(MAKE) _test-version-quick VERSION=8.1 VARIANT=cli $(MAKE) _test-version-quick VERSION=8.2 VARIANT=cli $(MAKE) _test-version-quick + VERSION=8.3 VARIANT=cli $(MAKE) _test-version-quick + +test-8.3: ## Test php8.3 build only + VERSION=8.3 VARIANT=cli $(MAKE) _test-version + VERSION=8.3 VARIANT=apache $(MAKE) _test-version + VERSION=8.3 VARIANT=fpm $(MAKE) _test-version test-8.2: ## Test php8.2 build only VERSION=8.2 VARIANT=cli $(MAKE) _test-version diff --git a/README.md b/README.md index 09476a12..23a97876 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,27 @@ This repository contains a set of developer-friendly, general purpose PHP images | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ +| [thecodingmachine/php:8.3-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.3.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache) +| [thecodingmachine/php:8.3-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node10) +| [thecodingmachine/php:8.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node12) +| [thecodingmachine/php:8.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node14) +| [thecodingmachine/php:8.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node16) +| [thecodingmachine/php:8.3-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node18) +| [thecodingmachine/php:8.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.3.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm) +| [thecodingmachine/php:8.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node10) +| [thecodingmachine/php:8.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node12) +| [thecodingmachine/php:8.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node14) +| [thecodingmachine/php:8.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node16) +| [thecodingmachine/php:8.3-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node18) +| [thecodingmachine/php:8.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.3.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli) +| [thecodingmachine/php:8.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node10) +| [thecodingmachine/php:8.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node12) +| [thecodingmachine/php:8.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node14) +| [thecodingmachine/php:8.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node16) +| [thecodingmachine/php:8.3-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node18) +| [thecodingmachine/php:8.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.3.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-apache) +| [thecodingmachine/php:8.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.3.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-fpm) +| [thecodingmachine/php:8.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.3.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-cli) | [thecodingmachine/php:8.2-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.2.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache) | [thecodingmachine/php:8.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node10) | [thecodingmachine/php:8.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node12) @@ -168,26 +189,26 @@ These images are based on the [official PHP image](https://hub.docker.com/_/php/ Example with CLI: ```bash -$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:8.2-v4-cli php your-script.php +$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:8.3-v4-cli php your-script.php ``` Example with Apache: ```bash -$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:8.2-v4-apache +$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:8.3-v4-apache ``` Example with PHP-FPM: ```bash -$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:8.2-v4-fpm +$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:8.3-v4-fpm ``` Example with Apache + Node 14.x in a Dockerfile: **Dockerfile** ```Dockerfile -FROM thecodingmachine/php:8.2-v4-apache-node14 +FROM thecodingmachine/php:8.3-v4-apache-node14 COPY src/ /var/www/html/ RUN composer install @@ -201,7 +222,7 @@ This image comes with 2 "types": the *slim* and the **fat** image. These extensions are enabled by default in slim image: `calendar` `ctype` `curl` `date` `dom` `exif` `fileinfo` `filter` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `openssl` `pcntl` `pcre` `PDO` `Phar` `posix` `readline` `shmop` `Reflection` `session` `shmop` `SimpleXML` `sockets` `sodium` `SPL` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `xml` `xmlreader` `xmlwriter` `xsl` `zip` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.2-v4-slim-cli php -m` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.3-v4-slim-cli php -m` The slim image provides a simple way to install the other extensions. You would typically use the "slim" image in a `Dockerfile` when building your own custom image. @@ -215,7 +236,7 @@ Below is a list of extensions available in this image: **Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.2-v4-cli php -m` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.3-v4-cli php -m` **Note**: @@ -236,7 +257,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:8.2-v4-apache-node16 + image: thecodingmachine/php:8.3-v4-apache-node16 environment: # Enable the PostgreSQL extension PHP_EXTENSION_PGSQL: 1 @@ -256,7 +277,7 @@ If you are using the slim image, you can automatically compile the extensions us ```Dockerfile ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql redis soap" -FROM thecodingmachine/php:8.2-v4-slim-apache +FROM thecodingmachine/php:8.3-v4-slim-apache # The build will automatically trigger the download and compilation # of the extensions (thanks to a ONBUILD hook in the slim image) ``` @@ -272,7 +293,7 @@ first FROM): # The PHP_EXTENSIONS ARG will apply to the "slim" image ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql soap" -FROM thecodingmachine/php:8.2-v4-apache-node16 AS builder +FROM thecodingmachine/php:8.3-v4-apache-node16 AS builder COPY --chown=docker:docker sources/web . RUN composer install &&\ @@ -293,7 +314,7 @@ not contain Node, and contains only required extensions. ## Setting parameters in php.ini -By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-8.2/php.ini-development) file that comes with PHP. +By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-8.3/php.ini-development) file that comes with PHP. You can use the production `php.ini` file using the `TEMPLATE_PHP_INI` environment variable: @@ -308,7 +329,7 @@ You can override parameters in `php.ini` using the PHP_INI_XXX environment varia version: '3' services: my_app: - image: thecodingmachine/php:8.2-v4-apache-node16 + image: thecodingmachine/php:8.3-v4-apache-node16 environment: # set the parameter memory_limit=1g PHP_INI_MEMORY_LIMIT: 1g @@ -370,7 +391,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:8.2-v4-apache-node16 + image: thecodingmachine/php:8.3-v4-apache-node16 environment: # Enable the DAV extension for Apache APACHE_EXTENSION_DAV: 1 @@ -388,7 +409,7 @@ APACHE_EXTENSIONS="dav ssl" **Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `brotli` `buffer` `cache` `cache_disk` `cache_socache` `cern_meta` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `http2` `ident` `imagemap` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `md` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php8.0 (depend of your active version)` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_hcheck` `proxy_html` `proxy_http` `proxy_http2` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_redis` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.2-v4-slim-apache a2enmod` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.3-v4-slim-apache a2enmod` ## Debugging @@ -423,7 +444,7 @@ If you use the *slim* images, you can install a NodeJS version with a simple ARG ```Dockerfile ARG NODE_VERSION=14 -FROM thecodingmachine/php:8.2-v4-slim-apache +FROM thecodingmachine/php:8.3-v4-slim-apache # The build will automatically trigger the download of Node 14 # (thanks to a ONBUILD hook in the slim image) ``` @@ -476,7 +497,7 @@ This can be done easily: **Dockerfile** ```Dockerfile -FROM thecodingmachine/php:8.2-v4-apache +FROM thecodingmachine/php:8.3-v4-apache # ... @@ -520,7 +541,7 @@ a single argument before the "FROM" clause in your Dockerfile: ```Dockerfile ARG INSTALL_CRON=1 -FROM thecodingmachine/php:8.2-v4-slim-apache +FROM thecodingmachine/php:8.3-v4-slim-apache # The build triggers automatically the installation of Cron ``` @@ -573,12 +594,12 @@ If such a file is mounted in the image, it will be executed on container startup ```bash docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp \ - -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:8.2-v4-cli php your-script.php + -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:8.3-v4-cli php your-script.php ``` ## Using the CLI variant -The CLI images (thecodingmachine/php:8.2-v4-cli) expect a command to be passed in parameter. +The CLI images (thecodingmachine/php:8.3-v4-cli) expect a command to be passed in parameter. You should override the Docker "command". Important! You should not override the Docker "entrypoint". @@ -586,7 +607,7 @@ Important! You should not override the Docker "entrypoint". **Usage in a Dockerfile:** ```Dockerfile -FROM thecodingmachine/php:8.2-v4-cli +FROM thecodingmachine/php:8.3-v4-cli CMD ["php", "myprogram.php", "some_param"] ``` @@ -598,7 +619,7 @@ CMD ["php", "myprogram.php", "some_param"] version: '3' services: my_app: - image: thecodingmachine/php:8.2-v4-cli + image: thecodingmachine/php:8.3-v4-cli command: php myprogram.php some_param ``` @@ -618,7 +639,7 @@ This option is the easiest way to go if you are using the image on a development version: '3' services: my_app: - image: thecodingmachine/php:8.2-v4-apache-node16 + image: thecodingmachine/php:8.3-v4-apache-node16 volumes: - ~/.ssh:/home/docker/.ssh ``` @@ -639,7 +660,7 @@ Now, let's write a Dockerfile. **Dockerfile** ```yml -FROM thecodingmachine/php:8.2-v4-apache +FROM thecodingmachine/php:8.3-v4-apache ARG SSH_PRIVATE_KEY ARG SSH_KNOWN_HOSTS @@ -677,7 +698,7 @@ kind: Pod spec: containers: - name: foobar - image: thecodingmachine/php:8.2-v4-apache + image: thecodingmachine/php:8.3-v4-apache securityContext: allowPrivilegeEscalation: true # never use "false" here. ``` @@ -699,7 +720,7 @@ Your `docker-compose.yml` file will typically look like this: version: '3.3' services: php: - image: thecodingmachine/php:8.2-v4-apache + image: thecodingmachine/php:8.3-v4-apache ports: - "80:80" environment: @@ -725,7 +746,7 @@ If for some reason, the container name is not "blackfire", you can customize the version: '3.3' services: php: - image: thecodingmachine/php:8.2-v4-apache + image: thecodingmachine/php:8.3-v4-apache environment: PHP_EXTENSION_BLACKFIRE: 1 BLACKFIRE_AGENT: myblackfire @@ -760,7 +781,7 @@ This command will generate all the files from the "blueprint" templates. You can then test your changes using the `build-and-test.sh` command: ```bash -PHP_VERSION=8.2 BRANCH=v4 VARIANT=apache ./build-and-test.sh +PHP_VERSION=8.3 BRANCH=v4 VARIANT=apache ./build-and-test.sh ``` ### Additional environment in build-and-test.sh diff --git a/docker-bake.hcl b/docker-bake.hcl index 925c49ca..86002205 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -3,6 +3,7 @@ group "default" { targets = [ + "php83", "php82", "php81", "php80", @@ -12,6 +13,27 @@ group "default" { ] } +group "php83-apache-all" { + targets = [ + "php83-slim-apache", + "php83-apache", + "php83-apache-node18","php83-apache-node16","php83-apache-node14","php83-apache-node12","php83-apache-node10", + ] +} +group "php83-fpm-all" { + targets = [ + "php83-slim-fpm", + "php83-fpm", + "php83-fpm-node18","php83-fpm-node16","php83-fpm-node14","php83-fpm-node12","php83-fpm-node10", + ] +} +group "php83-cli-all" { + targets = [ + "php83-slim-cli", + "php83-cli", + "php83-cli-node18","php83-cli-node16","php83-cli-node14","php83-cli-node12","php83-cli-node10", + ] +} group "php82-apache-all" { targets = [ "php82-slim-apache", @@ -140,6 +162,9 @@ group "php72-cli-all" { } +group "php83" { + targets = ["php83-apache-all","php83-fpm-all","php83-cli-all",] +} group "php82" { targets = ["php82-apache-all","php82-fpm-all","php82-cli-all",] } @@ -186,6 +211,333 @@ target "default" { } +########################### +## PHP 8.3 +########################### +# thecodingmachine/php:8.3-v4-slim-apache +target "php83-slim-apache" { + inherits = ["default"] + tags = tag("8.3", "slim-apache") + dockerfile = "Dockerfile.slim.apache" + args = { + PHP_VERSION = "8.3" + VARIANT = "apache" + } +} + +# thecodingmachine/php:8.3-v4-apache +target "php83-apache" { + inherits = ["default"] + tags = tag("8.3", "apache") + dockerfile = "Dockerfile.apache" + args = { + PHP_VERSION = "8.3" + VARIANT = "apache" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php83-slim-apache" + } +} + +# thecodingmachine/php:8.3-v4-apache-node18 +target "php83-apache-node18" { + inherits = ["default"] + tags = tag("8.3", "apache-node18") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "apache-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php83-apache" + } +} + +# thecodingmachine/php:8.3-v4-apache-node16 +target "php83-apache-node16" { + inherits = ["default"] + tags = tag("8.3", "apache-node16") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "apache-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php83-apache" + } +} + +# thecodingmachine/php:8.3-v4-apache-node14 +target "php83-apache-node14" { + inherits = ["default"] + tags = tag("8.3", "apache-node14") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "apache-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php83-apache" + } +} + +# thecodingmachine/php:8.3-v4-apache-node12 +target "php83-apache-node12" { + inherits = ["default"] + tags = tag("8.3", "apache-node12") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "apache-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php83-apache" + } +} + +# thecodingmachine/php:8.3-v4-apache-node10 +target "php83-apache-node10" { + inherits = ["default"] + tags = tag("8.3", "apache-node10") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "apache-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php83-apache" + } +} + +########################### +## PHP 8.3 +########################### +# thecodingmachine/php:8.3-v4-slim-fpm +target "php83-slim-fpm" { + inherits = ["default"] + tags = tag("8.3", "slim-fpm") + dockerfile = "Dockerfile.slim.fpm" + args = { + PHP_VERSION = "8.3" + VARIANT = "fpm" + } +} + +# thecodingmachine/php:8.3-v4-fpm +target "php83-fpm" { + inherits = ["default"] + tags = tag("8.3", "fpm") + dockerfile = "Dockerfile.fpm" + args = { + PHP_VERSION = "8.3" + VARIANT = "fpm" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php83-slim-fpm" + } +} + +# thecodingmachine/php:8.3-v4-fpm-node18 +target "php83-fpm-node18" { + inherits = ["default"] + tags = tag("8.3", "fpm-node18") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "fpm-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php83-fpm" + } +} + +# thecodingmachine/php:8.3-v4-fpm-node16 +target "php83-fpm-node16" { + inherits = ["default"] + tags = tag("8.3", "fpm-node16") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "fpm-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php83-fpm" + } +} + +# thecodingmachine/php:8.3-v4-fpm-node14 +target "php83-fpm-node14" { + inherits = ["default"] + tags = tag("8.3", "fpm-node14") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "fpm-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php83-fpm" + } +} + +# thecodingmachine/php:8.3-v4-fpm-node12 +target "php83-fpm-node12" { + inherits = ["default"] + tags = tag("8.3", "fpm-node12") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "fpm-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php83-fpm" + } +} + +# thecodingmachine/php:8.3-v4-fpm-node10 +target "php83-fpm-node10" { + inherits = ["default"] + tags = tag("8.3", "fpm-node10") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "fpm-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php83-fpm" + } +} + +########################### +## PHP 8.3 +########################### +# thecodingmachine/php:8.3-v4-slim-cli +target "php83-slim-cli" { + inherits = ["default"] + tags = tag("8.3", "slim-cli") + dockerfile = "Dockerfile.slim.cli" + args = { + PHP_VERSION = "8.3" + VARIANT = "cli" + } +} + +# thecodingmachine/php:8.3-v4-cli +target "php83-cli" { + inherits = ["default"] + tags = tag("8.3", "cli") + dockerfile = "Dockerfile.cli" + args = { + PHP_VERSION = "8.3" + VARIANT = "cli" + FROM_IMAGE = "slim" + } + contexts = { + slim = "target:php83-slim-cli" + } +} + +# thecodingmachine/php:8.3-v4-cli-node18 +target "php83-cli-node18" { + inherits = ["default"] + tags = tag("8.3", "cli-node18") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "cli-node18" + FROM_IMAGE = "fat" + NODE_VERSION = "18" + } + contexts = { + fat = "target:php83-cli" + } +} + +# thecodingmachine/php:8.3-v4-cli-node16 +target "php83-cli-node16" { + inherits = ["default"] + tags = tag("8.3", "cli-node16") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "cli-node16" + FROM_IMAGE = "fat" + NODE_VERSION = "16" + } + contexts = { + fat = "target:php83-cli" + } +} + +# thecodingmachine/php:8.3-v4-cli-node14 +target "php83-cli-node14" { + inherits = ["default"] + tags = tag("8.3", "cli-node14") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "cli-node14" + FROM_IMAGE = "fat" + NODE_VERSION = "14" + } + contexts = { + fat = "target:php83-cli" + } +} + +# thecodingmachine/php:8.3-v4-cli-node12 +target "php83-cli-node12" { + inherits = ["default"] + tags = tag("8.3", "cli-node12") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "cli-node12" + FROM_IMAGE = "fat" + NODE_VERSION = "12" + } + contexts = { + fat = "target:php83-cli" + } +} + +# thecodingmachine/php:8.3-v4-cli-node10 +target "php83-cli-node10" { + inherits = ["default"] + tags = tag("8.3", "cli-node10") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "cli-node10" + FROM_IMAGE = "fat" + NODE_VERSION = "10" + } + contexts = { + fat = "target:php83-cli" + } +} + ########################### ## PHP 8.2 ########################### diff --git a/extensions/8.3/amqp b/extensions/8.3/amqp new file mode 120000 index 00000000..f66005fc --- /dev/null +++ b/extensions/8.3/amqp @@ -0,0 +1 @@ +../core/amqp \ No newline at end of file diff --git a/extensions/8.3/apcu b/extensions/8.3/apcu new file mode 120000 index 00000000..ddbb93d6 --- /dev/null +++ b/extensions/8.3/apcu @@ -0,0 +1 @@ +../core/apcu \ No newline at end of file diff --git a/extensions/8.3/ast b/extensions/8.3/ast new file mode 120000 index 00000000..5241c003 --- /dev/null +++ b/extensions/8.3/ast @@ -0,0 +1 @@ +../core/ast \ No newline at end of file diff --git a/extensions/8.3/bcmath b/extensions/8.3/bcmath new file mode 120000 index 00000000..36953ef1 --- /dev/null +++ b/extensions/8.3/bcmath @@ -0,0 +1 @@ +../core/bcmath \ No newline at end of file diff --git a/extensions/8.3/blackfire b/extensions/8.3/blackfire new file mode 120000 index 00000000..1179c0b9 --- /dev/null +++ b/extensions/8.3/blackfire @@ -0,0 +1 @@ +../core/blackfire \ No newline at end of file diff --git a/extensions/8.3/bz2 b/extensions/8.3/bz2 new file mode 120000 index 00000000..34eaa01d --- /dev/null +++ b/extensions/8.3/bz2 @@ -0,0 +1 @@ +../core/bz2 \ No newline at end of file diff --git a/extensions/8.3/dba b/extensions/8.3/dba new file mode 120000 index 00000000..f9598d4d --- /dev/null +++ b/extensions/8.3/dba @@ -0,0 +1 @@ +../core/dba \ No newline at end of file diff --git a/extensions/8.3/disable_all.sh b/extensions/8.3/disable_all.sh new file mode 120000 index 00000000..36f58a80 --- /dev/null +++ b/extensions/8.3/disable_all.sh @@ -0,0 +1 @@ +../core/disable_all.sh \ No newline at end of file diff --git a/extensions/8.3/docker-install.sh b/extensions/8.3/docker-install.sh new file mode 120000 index 00000000..245891f8 --- /dev/null +++ b/extensions/8.3/docker-install.sh @@ -0,0 +1 @@ +../core/docker-install.sh \ No newline at end of file diff --git a/extensions/8.3/ds b/extensions/8.3/ds new file mode 120000 index 00000000..edbe1af6 --- /dev/null +++ b/extensions/8.3/ds @@ -0,0 +1 @@ +../core/ds \ No newline at end of file diff --git a/extensions/8.3/enchant b/extensions/8.3/enchant new file mode 120000 index 00000000..aa197129 --- /dev/null +++ b/extensions/8.3/enchant @@ -0,0 +1 @@ +../core/enchant \ No newline at end of file diff --git a/extensions/8.3/ffi b/extensions/8.3/ffi new file mode 120000 index 00000000..bcd5f3f1 --- /dev/null +++ b/extensions/8.3/ffi @@ -0,0 +1 @@ +../core/ffi \ No newline at end of file diff --git a/extensions/8.3/gd b/extensions/8.3/gd new file mode 120000 index 00000000..c4cfd1f9 --- /dev/null +++ b/extensions/8.3/gd @@ -0,0 +1 @@ +../core/gd \ No newline at end of file diff --git a/extensions/8.3/gmp b/extensions/8.3/gmp new file mode 120000 index 00000000..d3dce5ec --- /dev/null +++ b/extensions/8.3/gmp @@ -0,0 +1 @@ +../core/gmp \ No newline at end of file diff --git a/extensions/8.3/grpc b/extensions/8.3/grpc new file mode 120000 index 00000000..57533a58 --- /dev/null +++ b/extensions/8.3/grpc @@ -0,0 +1 @@ +../core/grpc \ No newline at end of file diff --git a/extensions/8.3/igbinary b/extensions/8.3/igbinary new file mode 120000 index 00000000..c57a5ab9 --- /dev/null +++ b/extensions/8.3/igbinary @@ -0,0 +1 @@ +../core/igbinary \ No newline at end of file diff --git a/extensions/8.3/imagick b/extensions/8.3/imagick new file mode 120000 index 00000000..a55b99bc --- /dev/null +++ b/extensions/8.3/imagick @@ -0,0 +1 @@ +../core/imagick \ No newline at end of file diff --git a/extensions/8.3/imap b/extensions/8.3/imap new file mode 120000 index 00000000..4ee55a28 --- /dev/null +++ b/extensions/8.3/imap @@ -0,0 +1 @@ +../core/imap \ No newline at end of file diff --git a/extensions/8.3/install_all.sh b/extensions/8.3/install_all.sh new file mode 120000 index 00000000..615edbef --- /dev/null +++ b/extensions/8.3/install_all.sh @@ -0,0 +1 @@ +../core/install_all.sh \ No newline at end of file diff --git a/extensions/8.3/intl b/extensions/8.3/intl new file mode 120000 index 00000000..dd21da0b --- /dev/null +++ b/extensions/8.3/intl @@ -0,0 +1 @@ +../core/intl \ No newline at end of file diff --git a/extensions/8.3/ldap b/extensions/8.3/ldap new file mode 120000 index 00000000..394c7519 --- /dev/null +++ b/extensions/8.3/ldap @@ -0,0 +1 @@ +../core/ldap \ No newline at end of file diff --git a/extensions/8.3/mailparse b/extensions/8.3/mailparse new file mode 120000 index 00000000..e29c74c5 --- /dev/null +++ b/extensions/8.3/mailparse @@ -0,0 +1 @@ +../core/mailparse \ No newline at end of file diff --git a/extensions/8.3/memcached b/extensions/8.3/memcached new file mode 120000 index 00000000..13f2ea8c --- /dev/null +++ b/extensions/8.3/memcached @@ -0,0 +1 @@ +../core/memcached \ No newline at end of file diff --git a/extensions/8.3/mongodb b/extensions/8.3/mongodb new file mode 120000 index 00000000..7898c8e7 --- /dev/null +++ b/extensions/8.3/mongodb @@ -0,0 +1 @@ +../core/mongodb \ No newline at end of file diff --git a/extensions/8.3/msgpack b/extensions/8.3/msgpack new file mode 120000 index 00000000..2a72eaa8 --- /dev/null +++ b/extensions/8.3/msgpack @@ -0,0 +1 @@ +../core/msgpack \ No newline at end of file diff --git a/extensions/8.3/mysqli b/extensions/8.3/mysqli new file mode 120000 index 00000000..401b7fbf --- /dev/null +++ b/extensions/8.3/mysqli @@ -0,0 +1 @@ +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.3/pcov b/extensions/8.3/pcov new file mode 120000 index 00000000..b99a0dd2 --- /dev/null +++ b/extensions/8.3/pcov @@ -0,0 +1 @@ +../core/pcov \ No newline at end of file diff --git a/extensions/8.3/pdo_dblib b/extensions/8.3/pdo_dblib new file mode 120000 index 00000000..2261140c --- /dev/null +++ b/extensions/8.3/pdo_dblib @@ -0,0 +1 @@ +../core/pdo_dblib \ No newline at end of file diff --git a/extensions/8.3/pdo_mysql b/extensions/8.3/pdo_mysql new file mode 120000 index 00000000..401b7fbf --- /dev/null +++ b/extensions/8.3/pdo_mysql @@ -0,0 +1 @@ +../core/pdo_mysql \ No newline at end of file diff --git a/extensions/8.3/pdo_pgsql b/extensions/8.3/pdo_pgsql new file mode 120000 index 00000000..3a0bda2d --- /dev/null +++ b/extensions/8.3/pdo_pgsql @@ -0,0 +1 @@ +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.3/pdo_sqlite b/extensions/8.3/pdo_sqlite new file mode 120000 index 00000000..84c26578 --- /dev/null +++ b/extensions/8.3/pdo_sqlite @@ -0,0 +1 @@ +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/8.3/pgsql b/extensions/8.3/pgsql new file mode 120000 index 00000000..3a0bda2d --- /dev/null +++ b/extensions/8.3/pgsql @@ -0,0 +1 @@ +../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/8.3/pspell b/extensions/8.3/pspell new file mode 120000 index 00000000..9be96fd9 --- /dev/null +++ b/extensions/8.3/pspell @@ -0,0 +1 @@ +../core/pspell \ No newline at end of file diff --git a/extensions/8.3/rdkafka b/extensions/8.3/rdkafka new file mode 120000 index 00000000..8fce5d9f --- /dev/null +++ b/extensions/8.3/rdkafka @@ -0,0 +1 @@ +../core/rdkafka/ \ No newline at end of file diff --git a/extensions/8.3/redis b/extensions/8.3/redis new file mode 120000 index 00000000..0727c021 --- /dev/null +++ b/extensions/8.3/redis @@ -0,0 +1 @@ +../core/redis \ No newline at end of file diff --git a/extensions/8.3/snmp b/extensions/8.3/snmp new file mode 120000 index 00000000..f2249ffe --- /dev/null +++ b/extensions/8.3/snmp @@ -0,0 +1 @@ +../core/snmp \ No newline at end of file diff --git a/extensions/8.3/soap b/extensions/8.3/soap new file mode 120000 index 00000000..ea63abf6 --- /dev/null +++ b/extensions/8.3/soap @@ -0,0 +1 @@ +../core/soap \ No newline at end of file diff --git a/extensions/8.3/sqlite3 b/extensions/8.3/sqlite3 new file mode 120000 index 00000000..84c26578 --- /dev/null +++ b/extensions/8.3/sqlite3 @@ -0,0 +1 @@ +../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/8.3/tidy b/extensions/8.3/tidy new file mode 120000 index 00000000..e0434e64 --- /dev/null +++ b/extensions/8.3/tidy @@ -0,0 +1 @@ +../core/tidy \ No newline at end of file diff --git a/extensions/8.3/uploadprogress b/extensions/8.3/uploadprogress new file mode 120000 index 00000000..6b4b74d0 --- /dev/null +++ b/extensions/8.3/uploadprogress @@ -0,0 +1 @@ +../core/uploadprogress \ No newline at end of file diff --git a/extensions/8.3/uuid b/extensions/8.3/uuid new file mode 120000 index 00000000..7a522046 --- /dev/null +++ b/extensions/8.3/uuid @@ -0,0 +1 @@ +../core/uuid \ No newline at end of file diff --git a/extensions/8.3/xdebug b/extensions/8.3/xdebug new file mode 120000 index 00000000..2ee34925 --- /dev/null +++ b/extensions/8.3/xdebug @@ -0,0 +1 @@ +../core/xdebug \ No newline at end of file diff --git a/extensions/8.3/xmlrpc b/extensions/8.3/xmlrpc new file mode 120000 index 00000000..2833c799 --- /dev/null +++ b/extensions/8.3/xmlrpc @@ -0,0 +1 @@ +../core/xmlrpc \ No newline at end of file diff --git a/extensions/8.3/yaml b/extensions/8.3/yaml new file mode 120000 index 00000000..4be2658a --- /dev/null +++ b/extensions/8.3/yaml @@ -0,0 +1 @@ +../core/yaml \ No newline at end of file diff --git a/extensions/8.3/zip b/extensions/8.3/zip new file mode 120000 index 00000000..98c05831 --- /dev/null +++ b/extensions/8.3/zip @@ -0,0 +1 @@ +../core/zip \ No newline at end of file diff --git a/orbit-images.yml b/orbit-images.yml index da7a0a6f..864a10e4 100644 --- a/orbit-images.yml +++ b/orbit-images.yml @@ -1 +1 @@ -php_version: "8.2" +php_version: "8.3" diff --git a/tests-suite/config b/tests-suite/config index 63c9f432..0d9adf50 100755 --- a/tests-suite/config +++ b/tests-suite/config @@ -2,7 +2,7 @@ export PLATFORM="${PLATFORM:-$(uname -p)}" export BUILDTOOL="build --platform=${PLATFORM}" export RUN_OPTIONS="--platform=${PLATFORM}" -export PHP_VERSION=${PHP_VERSION:-8.2} +export PHP_VERSION=${PHP_VERSION:-8.3} export BRANCH=${BRANCH:-v4} export VARIANT=${VARIANT:-apache} export BRANCH_VARIANT="${VARIANT//./-}" diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 32988308..87bc3c0e 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -16,7 +16,7 @@ This repository contains a set of developer-friendly, general purpose PHP images {{ $image := .Orbit.Images }} ## Images -{{ $versions := list "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }} +{{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }} {{ $nodeVersions := list "10" "12" "14" "16" "18" }} | Name | PHP version | type |variant | NodeJS version | Size diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 6e0deaff..1004501f 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -1,4 +1,4 @@ -{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "18" "16" "14" "12" "10" }} +{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "18" "16" "14" "12" "10" }} group "default" { targets = [ {{range $phpV := $versions}} From 7a73b5285352fbb6d17c252462942f8cf8a7630e Mon Sep 17 00:00:00 2001 From: Ali Afsharzadeh Date: Wed, 13 Dec 2023 20:12:57 +0330 Subject: [PATCH 153/162] feat: add support for node 20 --- CHANGELOG.md | 1 + README.md | 21 ++ docker-bake.hcl | 378 ++++++++++++++++++++++++++++++-- utils/README.blueprint.md | 2 +- utils/docker-bake.blueprint.hcl | 2 +- 5 files changed, 381 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d266df2..b449ed66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ * **2023-12-13** * Support for PHP 8.3 + * Support for Node v20 * **2022-12-18** * Support for PHP 8.2 diff --git a/README.md b/README.md index 23a97876..4b37aa48 100644 --- a/README.md +++ b/README.md @@ -28,18 +28,21 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node14) | [thecodingmachine/php:8.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node16) | [thecodingmachine/php:8.3-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node18) +| [thecodingmachine/php:8.3-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node20) | [thecodingmachine/php:8.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.3.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm) | [thecodingmachine/php:8.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node10) | [thecodingmachine/php:8.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node12) | [thecodingmachine/php:8.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node14) | [thecodingmachine/php:8.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node16) | [thecodingmachine/php:8.3-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node18) +| [thecodingmachine/php:8.3-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node20) | [thecodingmachine/php:8.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.3.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli) | [thecodingmachine/php:8.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node10) | [thecodingmachine/php:8.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node12) | [thecodingmachine/php:8.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node14) | [thecodingmachine/php:8.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node16) | [thecodingmachine/php:8.3-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node18) +| [thecodingmachine/php:8.3-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node20) | [thecodingmachine/php:8.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.3.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-apache) | [thecodingmachine/php:8.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.3.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-fpm) | [thecodingmachine/php:8.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.3.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-cli) @@ -49,18 +52,21 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node14) | [thecodingmachine/php:8.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node16) | [thecodingmachine/php:8.2-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node18) +| [thecodingmachine/php:8.2-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node20) | [thecodingmachine/php:8.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.2.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm) | [thecodingmachine/php:8.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node10) | [thecodingmachine/php:8.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node12) | [thecodingmachine/php:8.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node14) | [thecodingmachine/php:8.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node16) | [thecodingmachine/php:8.2-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node18) +| [thecodingmachine/php:8.2-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node20) | [thecodingmachine/php:8.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.2.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli) | [thecodingmachine/php:8.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node10) | [thecodingmachine/php:8.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node12) | [thecodingmachine/php:8.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node14) | [thecodingmachine/php:8.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node16) | [thecodingmachine/php:8.2-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node18) +| [thecodingmachine/php:8.2-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node20) | [thecodingmachine/php:8.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.2.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-apache) | [thecodingmachine/php:8.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.2.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-fpm) | [thecodingmachine/php:8.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.2.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-cli) @@ -70,18 +76,21 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) | [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) | [thecodingmachine/php:8.1-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node18) +| [thecodingmachine/php:8.1-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node20) | [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) | [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) | [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) | [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) | [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) | [thecodingmachine/php:8.1-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node18) +| [thecodingmachine/php:8.1-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node20) | [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) | [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) | [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) | [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) | [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) | [thecodingmachine/php:8.1-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node18) +| [thecodingmachine/php:8.1-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node20) | [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) | [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) | [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) @@ -91,18 +100,21 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) | [thecodingmachine/php:8.0-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node16) | [thecodingmachine/php:8.0-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node18) +| [thecodingmachine/php:8.0-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node20) | [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) | [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) | [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) | [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) | [thecodingmachine/php:8.0-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node16) | [thecodingmachine/php:8.0-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node18) +| [thecodingmachine/php:8.0-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node20) | [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) | [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) | [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) | [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) | [thecodingmachine/php:8.0-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node16) | [thecodingmachine/php:8.0-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node18) +| [thecodingmachine/php:8.0-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node20) | [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) | [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) | [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) @@ -112,18 +124,21 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) | [thecodingmachine/php:7.4-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node16) | [thecodingmachine/php:7.4-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node18) +| [thecodingmachine/php:7.4-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node20) | [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) | [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) | [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) | [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) | [thecodingmachine/php:7.4-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node16) | [thecodingmachine/php:7.4-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node18) +| [thecodingmachine/php:7.4-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node20) | [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) | [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) | [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) | [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) | [thecodingmachine/php:7.4-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node16) | [thecodingmachine/php:7.4-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node18) +| [thecodingmachine/php:7.4-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node20) | [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) | [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) | [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) @@ -133,18 +148,21 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) | [thecodingmachine/php:7.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node16) | [thecodingmachine/php:7.3-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node18) +| [thecodingmachine/php:7.3-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node20) | [thecodingmachine/php:7.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.3.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm) | [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) | [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) | [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) | [thecodingmachine/php:7.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node16) | [thecodingmachine/php:7.3-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node18) +| [thecodingmachine/php:7.3-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node20) | [thecodingmachine/php:7.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.3.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli) | [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) | [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) | [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) | [thecodingmachine/php:7.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node16) | [thecodingmachine/php:7.3-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node18) +| [thecodingmachine/php:7.3-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node20) | [thecodingmachine/php:7.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.3.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-apache) | [thecodingmachine/php:7.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.3.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-fpm) | [thecodingmachine/php:7.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.3.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-cli) @@ -154,18 +172,21 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) | [thecodingmachine/php:7.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node16) | [thecodingmachine/php:7.2-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node18) +| [thecodingmachine/php:7.2-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node20) | [thecodingmachine/php:7.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.2.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm) | [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) | [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) | [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) | [thecodingmachine/php:7.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node16) | [thecodingmachine/php:7.2-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node18) +| [thecodingmachine/php:7.2-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node20) | [thecodingmachine/php:7.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.2.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli) | [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) | [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) | [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) | [thecodingmachine/php:7.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node16) | [thecodingmachine/php:7.2-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node18) +| [thecodingmachine/php:7.2-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node20) | [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) | [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) | [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) diff --git a/docker-bake.hcl b/docker-bake.hcl index 86002205..7a1d8ec3 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -17,147 +17,147 @@ group "php83-apache-all" { targets = [ "php83-slim-apache", "php83-apache", - "php83-apache-node18","php83-apache-node16","php83-apache-node14","php83-apache-node12","php83-apache-node10", + "php83-apache-node20","php83-apache-node18","php83-apache-node16","php83-apache-node14","php83-apache-node12","php83-apache-node10", ] } group "php83-fpm-all" { targets = [ "php83-slim-fpm", "php83-fpm", - "php83-fpm-node18","php83-fpm-node16","php83-fpm-node14","php83-fpm-node12","php83-fpm-node10", + "php83-fpm-node20","php83-fpm-node18","php83-fpm-node16","php83-fpm-node14","php83-fpm-node12","php83-fpm-node10", ] } group "php83-cli-all" { targets = [ "php83-slim-cli", "php83-cli", - "php83-cli-node18","php83-cli-node16","php83-cli-node14","php83-cli-node12","php83-cli-node10", + "php83-cli-node20","php83-cli-node18","php83-cli-node16","php83-cli-node14","php83-cli-node12","php83-cli-node10", ] } group "php82-apache-all" { targets = [ "php82-slim-apache", "php82-apache", - "php82-apache-node18","php82-apache-node16","php82-apache-node14","php82-apache-node12","php82-apache-node10", + "php82-apache-node20","php82-apache-node18","php82-apache-node16","php82-apache-node14","php82-apache-node12","php82-apache-node10", ] } group "php82-fpm-all" { targets = [ "php82-slim-fpm", "php82-fpm", - "php82-fpm-node18","php82-fpm-node16","php82-fpm-node14","php82-fpm-node12","php82-fpm-node10", + "php82-fpm-node20","php82-fpm-node18","php82-fpm-node16","php82-fpm-node14","php82-fpm-node12","php82-fpm-node10", ] } group "php82-cli-all" { targets = [ "php82-slim-cli", "php82-cli", - "php82-cli-node18","php82-cli-node16","php82-cli-node14","php82-cli-node12","php82-cli-node10", + "php82-cli-node20","php82-cli-node18","php82-cli-node16","php82-cli-node14","php82-cli-node12","php82-cli-node10", ] } group "php81-apache-all" { targets = [ "php81-slim-apache", "php81-apache", - "php81-apache-node18","php81-apache-node16","php81-apache-node14","php81-apache-node12","php81-apache-node10", + "php81-apache-node20","php81-apache-node18","php81-apache-node16","php81-apache-node14","php81-apache-node12","php81-apache-node10", ] } group "php81-fpm-all" { targets = [ "php81-slim-fpm", "php81-fpm", - "php81-fpm-node18","php81-fpm-node16","php81-fpm-node14","php81-fpm-node12","php81-fpm-node10", + "php81-fpm-node20","php81-fpm-node18","php81-fpm-node16","php81-fpm-node14","php81-fpm-node12","php81-fpm-node10", ] } group "php81-cli-all" { targets = [ "php81-slim-cli", "php81-cli", - "php81-cli-node18","php81-cli-node16","php81-cli-node14","php81-cli-node12","php81-cli-node10", + "php81-cli-node20","php81-cli-node18","php81-cli-node16","php81-cli-node14","php81-cli-node12","php81-cli-node10", ] } group "php80-apache-all" { targets = [ "php80-slim-apache", "php80-apache", - "php80-apache-node18","php80-apache-node16","php80-apache-node14","php80-apache-node12","php80-apache-node10", + "php80-apache-node20","php80-apache-node18","php80-apache-node16","php80-apache-node14","php80-apache-node12","php80-apache-node10", ] } group "php80-fpm-all" { targets = [ "php80-slim-fpm", "php80-fpm", - "php80-fpm-node18","php80-fpm-node16","php80-fpm-node14","php80-fpm-node12","php80-fpm-node10", + "php80-fpm-node20","php80-fpm-node18","php80-fpm-node16","php80-fpm-node14","php80-fpm-node12","php80-fpm-node10", ] } group "php80-cli-all" { targets = [ "php80-slim-cli", "php80-cli", - "php80-cli-node18","php80-cli-node16","php80-cli-node14","php80-cli-node12","php80-cli-node10", + "php80-cli-node20","php80-cli-node18","php80-cli-node16","php80-cli-node14","php80-cli-node12","php80-cli-node10", ] } group "php74-apache-all" { targets = [ "php74-slim-apache", "php74-apache", - "php74-apache-node18","php74-apache-node16","php74-apache-node14","php74-apache-node12","php74-apache-node10", + "php74-apache-node20","php74-apache-node18","php74-apache-node16","php74-apache-node14","php74-apache-node12","php74-apache-node10", ] } group "php74-fpm-all" { targets = [ "php74-slim-fpm", "php74-fpm", - "php74-fpm-node18","php74-fpm-node16","php74-fpm-node14","php74-fpm-node12","php74-fpm-node10", + "php74-fpm-node20","php74-fpm-node18","php74-fpm-node16","php74-fpm-node14","php74-fpm-node12","php74-fpm-node10", ] } group "php74-cli-all" { targets = [ "php74-slim-cli", "php74-cli", - "php74-cli-node18","php74-cli-node16","php74-cli-node14","php74-cli-node12","php74-cli-node10", + "php74-cli-node20","php74-cli-node18","php74-cli-node16","php74-cli-node14","php74-cli-node12","php74-cli-node10", ] } group "php73-apache-all" { targets = [ "php73-slim-apache", "php73-apache", - "php73-apache-node18","php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10", + "php73-apache-node20","php73-apache-node18","php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10", ] } group "php73-fpm-all" { targets = [ "php73-slim-fpm", "php73-fpm", - "php73-fpm-node18","php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10", + "php73-fpm-node20","php73-fpm-node18","php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10", ] } group "php73-cli-all" { targets = [ "php73-slim-cli", "php73-cli", - "php73-cli-node18","php73-cli-node16","php73-cli-node14","php73-cli-node12","php73-cli-node10", + "php73-cli-node20","php73-cli-node18","php73-cli-node16","php73-cli-node14","php73-cli-node12","php73-cli-node10", ] } group "php72-apache-all" { targets = [ "php72-slim-apache", "php72-apache", - "php72-apache-node18","php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10", + "php72-apache-node20","php72-apache-node18","php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10", ] } group "php72-fpm-all" { targets = [ "php72-slim-fpm", "php72-fpm", - "php72-fpm-node18","php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10", + "php72-fpm-node20","php72-fpm-node18","php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10", ] } group "php72-cli-all" { targets = [ "php72-slim-cli", "php72-cli", - "php72-cli-node18","php72-cli-node16","php72-cli-node14","php72-cli-node12","php72-cli-node10", + "php72-cli-node20","php72-cli-node18","php72-cli-node16","php72-cli-node14","php72-cli-node12","php72-cli-node10", ] } @@ -240,6 +240,22 @@ target "php83-apache" { } } +# thecodingmachine/php:8.3-v4-apache-node20 +target "php83-apache-node20" { + inherits = ["default"] + tags = tag("8.3", "apache-node20") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "apache-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php83-apache" + } +} + # thecodingmachine/php:8.3-v4-apache-node18 target "php83-apache-node18" { inherits = ["default"] @@ -349,6 +365,22 @@ target "php83-fpm" { } } +# thecodingmachine/php:8.3-v4-fpm-node20 +target "php83-fpm-node20" { + inherits = ["default"] + tags = tag("8.3", "fpm-node20") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "fpm-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php83-fpm" + } +} + # thecodingmachine/php:8.3-v4-fpm-node18 target "php83-fpm-node18" { inherits = ["default"] @@ -458,6 +490,22 @@ target "php83-cli" { } } +# thecodingmachine/php:8.3-v4-cli-node20 +target "php83-cli-node20" { + inherits = ["default"] + tags = tag("8.3", "cli-node20") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "cli-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php83-cli" + } +} + # thecodingmachine/php:8.3-v4-cli-node18 target "php83-cli-node18" { inherits = ["default"] @@ -567,6 +615,22 @@ target "php82-apache" { } } +# thecodingmachine/php:8.2-v4-apache-node20 +target "php82-apache-node20" { + inherits = ["default"] + tags = tag("8.2", "apache-node20") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "apache-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php82-apache" + } +} + # thecodingmachine/php:8.2-v4-apache-node18 target "php82-apache-node18" { inherits = ["default"] @@ -676,6 +740,22 @@ target "php82-fpm" { } } +# thecodingmachine/php:8.2-v4-fpm-node20 +target "php82-fpm-node20" { + inherits = ["default"] + tags = tag("8.2", "fpm-node20") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "fpm-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php82-fpm" + } +} + # thecodingmachine/php:8.2-v4-fpm-node18 target "php82-fpm-node18" { inherits = ["default"] @@ -785,6 +865,22 @@ target "php82-cli" { } } +# thecodingmachine/php:8.2-v4-cli-node20 +target "php82-cli-node20" { + inherits = ["default"] + tags = tag("8.2", "cli-node20") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "cli-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php82-cli" + } +} + # thecodingmachine/php:8.2-v4-cli-node18 target "php82-cli-node18" { inherits = ["default"] @@ -894,6 +990,22 @@ target "php81-apache" { } } +# thecodingmachine/php:8.1-v4-apache-node20 +target "php81-apache-node20" { + inherits = ["default"] + tags = tag("8.1", "apache-node20") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.1" + VARIANT = "apache-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php81-apache" + } +} + # thecodingmachine/php:8.1-v4-apache-node18 target "php81-apache-node18" { inherits = ["default"] @@ -1003,6 +1115,22 @@ target "php81-fpm" { } } +# thecodingmachine/php:8.1-v4-fpm-node20 +target "php81-fpm-node20" { + inherits = ["default"] + tags = tag("8.1", "fpm-node20") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.1" + VARIANT = "fpm-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php81-fpm" + } +} + # thecodingmachine/php:8.1-v4-fpm-node18 target "php81-fpm-node18" { inherits = ["default"] @@ -1112,6 +1240,22 @@ target "php81-cli" { } } +# thecodingmachine/php:8.1-v4-cli-node20 +target "php81-cli-node20" { + inherits = ["default"] + tags = tag("8.1", "cli-node20") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.1" + VARIANT = "cli-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php81-cli" + } +} + # thecodingmachine/php:8.1-v4-cli-node18 target "php81-cli-node18" { inherits = ["default"] @@ -1221,6 +1365,22 @@ target "php80-apache" { } } +# thecodingmachine/php:8.0-v4-apache-node20 +target "php80-apache-node20" { + inherits = ["default"] + tags = tag("8.0", "apache-node20") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.0" + VARIANT = "apache-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php80-apache" + } +} + # thecodingmachine/php:8.0-v4-apache-node18 target "php80-apache-node18" { inherits = ["default"] @@ -1330,6 +1490,22 @@ target "php80-fpm" { } } +# thecodingmachine/php:8.0-v4-fpm-node20 +target "php80-fpm-node20" { + inherits = ["default"] + tags = tag("8.0", "fpm-node20") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.0" + VARIANT = "fpm-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php80-fpm" + } +} + # thecodingmachine/php:8.0-v4-fpm-node18 target "php80-fpm-node18" { inherits = ["default"] @@ -1439,6 +1615,22 @@ target "php80-cli" { } } +# thecodingmachine/php:8.0-v4-cli-node20 +target "php80-cli-node20" { + inherits = ["default"] + tags = tag("8.0", "cli-node20") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.0" + VARIANT = "cli-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php80-cli" + } +} + # thecodingmachine/php:8.0-v4-cli-node18 target "php80-cli-node18" { inherits = ["default"] @@ -1548,6 +1740,22 @@ target "php74-apache" { } } +# thecodingmachine/php:7.4-v4-apache-node20 +target "php74-apache-node20" { + inherits = ["default"] + tags = tag("7.4", "apache-node20") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "7.4" + VARIANT = "apache-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php74-apache" + } +} + # thecodingmachine/php:7.4-v4-apache-node18 target "php74-apache-node18" { inherits = ["default"] @@ -1657,6 +1865,22 @@ target "php74-fpm" { } } +# thecodingmachine/php:7.4-v4-fpm-node20 +target "php74-fpm-node20" { + inherits = ["default"] + tags = tag("7.4", "fpm-node20") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "7.4" + VARIANT = "fpm-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php74-fpm" + } +} + # thecodingmachine/php:7.4-v4-fpm-node18 target "php74-fpm-node18" { inherits = ["default"] @@ -1766,6 +1990,22 @@ target "php74-cli" { } } +# thecodingmachine/php:7.4-v4-cli-node20 +target "php74-cli-node20" { + inherits = ["default"] + tags = tag("7.4", "cli-node20") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "7.4" + VARIANT = "cli-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php74-cli" + } +} + # thecodingmachine/php:7.4-v4-cli-node18 target "php74-cli-node18" { inherits = ["default"] @@ -1875,6 +2115,22 @@ target "php73-apache" { } } +# thecodingmachine/php:7.3-v4-apache-node20 +target "php73-apache-node20" { + inherits = ["default"] + tags = tag("7.3", "apache-node20") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "7.3" + VARIANT = "apache-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php73-apache" + } +} + # thecodingmachine/php:7.3-v4-apache-node18 target "php73-apache-node18" { inherits = ["default"] @@ -1984,6 +2240,22 @@ target "php73-fpm" { } } +# thecodingmachine/php:7.3-v4-fpm-node20 +target "php73-fpm-node20" { + inherits = ["default"] + tags = tag("7.3", "fpm-node20") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "7.3" + VARIANT = "fpm-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php73-fpm" + } +} + # thecodingmachine/php:7.3-v4-fpm-node18 target "php73-fpm-node18" { inherits = ["default"] @@ -2093,6 +2365,22 @@ target "php73-cli" { } } +# thecodingmachine/php:7.3-v4-cli-node20 +target "php73-cli-node20" { + inherits = ["default"] + tags = tag("7.3", "cli-node20") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "7.3" + VARIANT = "cli-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php73-cli" + } +} + # thecodingmachine/php:7.3-v4-cli-node18 target "php73-cli-node18" { inherits = ["default"] @@ -2202,6 +2490,22 @@ target "php72-apache" { } } +# thecodingmachine/php:7.2-v4-apache-node20 +target "php72-apache-node20" { + inherits = ["default"] + tags = tag("7.2", "apache-node20") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "7.2" + VARIANT = "apache-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php72-apache" + } +} + # thecodingmachine/php:7.2-v4-apache-node18 target "php72-apache-node18" { inherits = ["default"] @@ -2311,6 +2615,22 @@ target "php72-fpm" { } } +# thecodingmachine/php:7.2-v4-fpm-node20 +target "php72-fpm-node20" { + inherits = ["default"] + tags = tag("7.2", "fpm-node20") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "7.2" + VARIANT = "fpm-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php72-fpm" + } +} + # thecodingmachine/php:7.2-v4-fpm-node18 target "php72-fpm-node18" { inherits = ["default"] @@ -2420,6 +2740,22 @@ target "php72-cli" { } } +# thecodingmachine/php:7.2-v4-cli-node20 +target "php72-cli-node20" { + inherits = ["default"] + tags = tag("7.2", "cli-node20") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "7.2" + VARIANT = "cli-node20" + FROM_IMAGE = "fat" + NODE_VERSION = "20" + } + contexts = { + fat = "target:php72-cli" + } +} + # thecodingmachine/php:7.2-v4-cli-node18 target "php72-cli-node18" { inherits = ["default"] diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 87bc3c0e..3733cb2e 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -17,7 +17,7 @@ This repository contains a set of developer-friendly, general purpose PHP images ## Images {{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }} -{{ $nodeVersions := list "10" "12" "14" "16" "18" }} +{{ $nodeVersions := list "10" "12" "14" "16" "18" "20" }} | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 1004501f..caed041b 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -1,4 +1,4 @@ -{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "18" "16" "14" "12" "10" }} +{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "20" "18" "16" "14" "12" "10" }} group "default" { targets = [ {{range $phpV := $versions}} From a4f7ddbd07775906e9bb76f42ed34c0f5aef3742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Gr=C3=A9aux?= Date: Thu, 11 Jan 2024 17:26:33 +0100 Subject: [PATCH 154/162] added excimer extension --- extensions/7.2/excimer/install.sh | 1 + extensions/7.3/excimer/install.sh | 1 + extensions/7.4/excimer/install.sh | 1 + extensions/8.0/excimer/install.sh | 1 + extensions/8.1/excimer/install.sh | 1 + extensions/8.2/excimer/install.sh | 1 + extensions/8.3/excimer/install.sh | 1 + extensions/core/excimer/install.sh | 6 ++++++ utils/README.blueprint.md | 2 +- 9 files changed, 14 insertions(+), 1 deletion(-) create mode 100755 extensions/7.2/excimer/install.sh create mode 100755 extensions/7.3/excimer/install.sh create mode 100755 extensions/7.4/excimer/install.sh create mode 100755 extensions/8.0/excimer/install.sh create mode 100755 extensions/8.1/excimer/install.sh create mode 100755 extensions/8.2/excimer/install.sh create mode 100755 extensions/8.3/excimer/install.sh create mode 100755 extensions/core/excimer/install.sh diff --git a/extensions/7.2/excimer/install.sh b/extensions/7.2/excimer/install.sh new file mode 100755 index 00000000..4e099313 --- /dev/null +++ b/extensions/7.2/excimer/install.sh @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/7.3/excimer/install.sh b/extensions/7.3/excimer/install.sh new file mode 100755 index 00000000..4e099313 --- /dev/null +++ b/extensions/7.3/excimer/install.sh @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/7.4/excimer/install.sh b/extensions/7.4/excimer/install.sh new file mode 100755 index 00000000..4e099313 --- /dev/null +++ b/extensions/7.4/excimer/install.sh @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/8.0/excimer/install.sh b/extensions/8.0/excimer/install.sh new file mode 100755 index 00000000..4e099313 --- /dev/null +++ b/extensions/8.0/excimer/install.sh @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/8.1/excimer/install.sh b/extensions/8.1/excimer/install.sh new file mode 100755 index 00000000..4e099313 --- /dev/null +++ b/extensions/8.1/excimer/install.sh @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/8.2/excimer/install.sh b/extensions/8.2/excimer/install.sh new file mode 100755 index 00000000..4e099313 --- /dev/null +++ b/extensions/8.2/excimer/install.sh @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/8.3/excimer/install.sh b/extensions/8.3/excimer/install.sh new file mode 100755 index 00000000..4e099313 --- /dev/null +++ b/extensions/8.3/excimer/install.sh @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/core/excimer/install.sh b/extensions/core/excimer/install.sh new file mode 100755 index 00000000..d40973b9 --- /dev/null +++ b/extensions/core/excimer/install.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +export EXTENSION=excimer + +../docker-install.sh diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 3733cb2e..16160312 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -95,7 +95,7 @@ Below is a list of extensions available in this image: **Enabled by default (in addition to extensions enabled in Slim image):** `apcu`, `hash`, `iconv`, `igbinary`, `mysqli`, `mysqlnd`, `redis`, `soap`, `xsl`, `zlib` and all enabled in slim. -**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` +**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `excimer` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:{{ $image.php_version }}-v4-cli php -m` From 05cbb2d94a210b8712d7c035caa913030df223ac Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Wed, 31 Jan 2024 14:21:43 +0100 Subject: [PATCH 155/162] Update gitlab action for node16 deprecation --- .github/workflows/workflow.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index e0af6f9b..ab3fad72 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -23,16 +23,16 @@ jobs: name: Test ${{ matrix.php_version }}-${{ matrix.variant }} ${{ matrix.builder.arch }} only steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Docker # /!\ this action is marked as experimental # It's required only for macos if: ${{ matrix.builder.os == 'macos-latest' }} uses: docker-practice/actions-setup-docker@master - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Build run: | PHP_VERSION="${{ matrix.php_version }}" @@ -68,13 +68,13 @@ jobs: variant: ['apache','cli','fpm'] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From adcc30583e33b8f379b74a88f71dfd91c9431515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Fri, 31 May 2024 08:56:25 +0300 Subject: [PATCH 156/162] Add Node v22 --- CHANGELOG.md | 3 +++ utils/README.blueprint.md | 2 +- utils/docker-bake.blueprint.hcl | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b449ed66..d5a70851 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ ### Minor changes +* **2024-05-31** + * Support for Node v22 + * **2023-12-13** * Support for PHP 8.3 * Support for Node v20 diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index 16160312..a326fad1 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -17,7 +17,7 @@ This repository contains a set of developer-friendly, general purpose PHP images ## Images {{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }} -{{ $nodeVersions := list "10" "12" "14" "16" "18" "20" }} +{{ $nodeVersions := list "10" "12" "14" "16" "18" "20" "22" }} | Name | PHP version | type |variant | NodeJS version | Size |-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index caed041b..61cbcc3d 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -1,4 +1,4 @@ -{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "20" "18" "16" "14" "12" "10" }} +{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "22" "20" "18" "16" "14" "12" "10" }} group "default" { targets = [ {{range $phpV := $versions}} From bc68dcf272be6ed26b5455b089b53ddae35ee3e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Fri, 31 May 2024 08:56:34 +0300 Subject: [PATCH 157/162] Built files --- README.md | 23 ++- docker-bake.hcl | 378 +++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 379 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 4b37aa48..273afe0d 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node16) | [thecodingmachine/php:8.3-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node18) | [thecodingmachine/php:8.3-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node20) +| [thecodingmachine/php:8.3-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node22) | [thecodingmachine/php:8.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.3.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm) | [thecodingmachine/php:8.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node10) | [thecodingmachine/php:8.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node12) @@ -36,6 +37,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node16) | [thecodingmachine/php:8.3-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node18) | [thecodingmachine/php:8.3-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node20) +| [thecodingmachine/php:8.3-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node22) | [thecodingmachine/php:8.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.3.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli) | [thecodingmachine/php:8.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node10) | [thecodingmachine/php:8.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node12) @@ -43,6 +45,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node16) | [thecodingmachine/php:8.3-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node18) | [thecodingmachine/php:8.3-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node20) +| [thecodingmachine/php:8.3-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node22) | [thecodingmachine/php:8.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.3.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-apache) | [thecodingmachine/php:8.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.3.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-fpm) | [thecodingmachine/php:8.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.3.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-cli) @@ -53,6 +56,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node16) | [thecodingmachine/php:8.2-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node18) | [thecodingmachine/php:8.2-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node20) +| [thecodingmachine/php:8.2-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node22) | [thecodingmachine/php:8.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.2.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm) | [thecodingmachine/php:8.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node10) | [thecodingmachine/php:8.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node12) @@ -60,6 +64,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node16) | [thecodingmachine/php:8.2-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node18) | [thecodingmachine/php:8.2-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node20) +| [thecodingmachine/php:8.2-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node22) | [thecodingmachine/php:8.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.2.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli) | [thecodingmachine/php:8.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node10) | [thecodingmachine/php:8.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node12) @@ -67,6 +72,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node16) | [thecodingmachine/php:8.2-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node18) | [thecodingmachine/php:8.2-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node20) +| [thecodingmachine/php:8.2-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node22) | [thecodingmachine/php:8.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.2.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-apache) | [thecodingmachine/php:8.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.2.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-fpm) | [thecodingmachine/php:8.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.2.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-cli) @@ -77,6 +83,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.1-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node16) | [thecodingmachine/php:8.1-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node18) | [thecodingmachine/php:8.1-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node20) +| [thecodingmachine/php:8.1-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node22) | [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) | [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) | [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) @@ -84,6 +91,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.1-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node16) | [thecodingmachine/php:8.1-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node18) | [thecodingmachine/php:8.1-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node20) +| [thecodingmachine/php:8.1-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node22) | [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) | [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) | [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) @@ -91,6 +99,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.1-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node16) | [thecodingmachine/php:8.1-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node18) | [thecodingmachine/php:8.1-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node20) +| [thecodingmachine/php:8.1-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node22) | [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) | [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) | [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) @@ -101,6 +110,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.0-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node16) | [thecodingmachine/php:8.0-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node18) | [thecodingmachine/php:8.0-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node20) +| [thecodingmachine/php:8.0-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node22) | [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) | [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) | [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) @@ -108,6 +118,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.0-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node16) | [thecodingmachine/php:8.0-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node18) | [thecodingmachine/php:8.0-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node20) +| [thecodingmachine/php:8.0-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node22) | [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) | [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) | [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) @@ -115,6 +126,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.0-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node16) | [thecodingmachine/php:8.0-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node18) | [thecodingmachine/php:8.0-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node20) +| [thecodingmachine/php:8.0-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node22) | [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) | [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) | [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) @@ -125,6 +137,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.4-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node16) | [thecodingmachine/php:7.4-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node18) | [thecodingmachine/php:7.4-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node20) +| [thecodingmachine/php:7.4-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node22) | [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) | [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) | [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) @@ -132,6 +145,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.4-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node16) | [thecodingmachine/php:7.4-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node18) | [thecodingmachine/php:7.4-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node20) +| [thecodingmachine/php:7.4-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node22) | [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) | [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) | [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) @@ -139,6 +153,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.4-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node16) | [thecodingmachine/php:7.4-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node18) | [thecodingmachine/php:7.4-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node20) +| [thecodingmachine/php:7.4-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node22) | [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) | [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) | [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) @@ -149,6 +164,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node16) | [thecodingmachine/php:7.3-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node18) | [thecodingmachine/php:7.3-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node20) +| [thecodingmachine/php:7.3-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node22) | [thecodingmachine/php:7.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.3.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm) | [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) | [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) @@ -156,6 +172,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node16) | [thecodingmachine/php:7.3-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node18) | [thecodingmachine/php:7.3-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node20) +| [thecodingmachine/php:7.3-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node22) | [thecodingmachine/php:7.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.3.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli) | [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) | [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) @@ -163,6 +180,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node16) | [thecodingmachine/php:7.3-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node18) | [thecodingmachine/php:7.3-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node20) +| [thecodingmachine/php:7.3-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node22) | [thecodingmachine/php:7.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.3.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-apache) | [thecodingmachine/php:7.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.3.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-fpm) | [thecodingmachine/php:7.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.3.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-cli) @@ -173,6 +191,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node16) | [thecodingmachine/php:7.2-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node18) | [thecodingmachine/php:7.2-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node20) +| [thecodingmachine/php:7.2-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node22) | [thecodingmachine/php:7.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.2.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm) | [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) | [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) @@ -180,6 +199,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node16) | [thecodingmachine/php:7.2-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node18) | [thecodingmachine/php:7.2-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node20) +| [thecodingmachine/php:7.2-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node22) | [thecodingmachine/php:7.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.2.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli) | [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) | [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) @@ -187,6 +207,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:7.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node16) | [thecodingmachine/php:7.2-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node18) | [thecodingmachine/php:7.2-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node20) +| [thecodingmachine/php:7.2-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node22) | [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) | [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) | [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) @@ -255,7 +276,7 @@ Below is a list of extensions available in this image: **Enabled by default (in addition to extensions enabled in Slim image):** `apcu`, `hash`, `iconv`, `igbinary`, `mysqli`, `mysqlnd`, `redis`, `soap`, `xsl`, `zlib` and all enabled in slim. -**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` +**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `excimer` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.3-v4-cli php -m` diff --git a/docker-bake.hcl b/docker-bake.hcl index 7a1d8ec3..1ed63a44 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -17,147 +17,147 @@ group "php83-apache-all" { targets = [ "php83-slim-apache", "php83-apache", - "php83-apache-node20","php83-apache-node18","php83-apache-node16","php83-apache-node14","php83-apache-node12","php83-apache-node10", + "php83-apache-node22","php83-apache-node20","php83-apache-node18","php83-apache-node16","php83-apache-node14","php83-apache-node12","php83-apache-node10", ] } group "php83-fpm-all" { targets = [ "php83-slim-fpm", "php83-fpm", - "php83-fpm-node20","php83-fpm-node18","php83-fpm-node16","php83-fpm-node14","php83-fpm-node12","php83-fpm-node10", + "php83-fpm-node22","php83-fpm-node20","php83-fpm-node18","php83-fpm-node16","php83-fpm-node14","php83-fpm-node12","php83-fpm-node10", ] } group "php83-cli-all" { targets = [ "php83-slim-cli", "php83-cli", - "php83-cli-node20","php83-cli-node18","php83-cli-node16","php83-cli-node14","php83-cli-node12","php83-cli-node10", + "php83-cli-node22","php83-cli-node20","php83-cli-node18","php83-cli-node16","php83-cli-node14","php83-cli-node12","php83-cli-node10", ] } group "php82-apache-all" { targets = [ "php82-slim-apache", "php82-apache", - "php82-apache-node20","php82-apache-node18","php82-apache-node16","php82-apache-node14","php82-apache-node12","php82-apache-node10", + "php82-apache-node22","php82-apache-node20","php82-apache-node18","php82-apache-node16","php82-apache-node14","php82-apache-node12","php82-apache-node10", ] } group "php82-fpm-all" { targets = [ "php82-slim-fpm", "php82-fpm", - "php82-fpm-node20","php82-fpm-node18","php82-fpm-node16","php82-fpm-node14","php82-fpm-node12","php82-fpm-node10", + "php82-fpm-node22","php82-fpm-node20","php82-fpm-node18","php82-fpm-node16","php82-fpm-node14","php82-fpm-node12","php82-fpm-node10", ] } group "php82-cli-all" { targets = [ "php82-slim-cli", "php82-cli", - "php82-cli-node20","php82-cli-node18","php82-cli-node16","php82-cli-node14","php82-cli-node12","php82-cli-node10", + "php82-cli-node22","php82-cli-node20","php82-cli-node18","php82-cli-node16","php82-cli-node14","php82-cli-node12","php82-cli-node10", ] } group "php81-apache-all" { targets = [ "php81-slim-apache", "php81-apache", - "php81-apache-node20","php81-apache-node18","php81-apache-node16","php81-apache-node14","php81-apache-node12","php81-apache-node10", + "php81-apache-node22","php81-apache-node20","php81-apache-node18","php81-apache-node16","php81-apache-node14","php81-apache-node12","php81-apache-node10", ] } group "php81-fpm-all" { targets = [ "php81-slim-fpm", "php81-fpm", - "php81-fpm-node20","php81-fpm-node18","php81-fpm-node16","php81-fpm-node14","php81-fpm-node12","php81-fpm-node10", + "php81-fpm-node22","php81-fpm-node20","php81-fpm-node18","php81-fpm-node16","php81-fpm-node14","php81-fpm-node12","php81-fpm-node10", ] } group "php81-cli-all" { targets = [ "php81-slim-cli", "php81-cli", - "php81-cli-node20","php81-cli-node18","php81-cli-node16","php81-cli-node14","php81-cli-node12","php81-cli-node10", + "php81-cli-node22","php81-cli-node20","php81-cli-node18","php81-cli-node16","php81-cli-node14","php81-cli-node12","php81-cli-node10", ] } group "php80-apache-all" { targets = [ "php80-slim-apache", "php80-apache", - "php80-apache-node20","php80-apache-node18","php80-apache-node16","php80-apache-node14","php80-apache-node12","php80-apache-node10", + "php80-apache-node22","php80-apache-node20","php80-apache-node18","php80-apache-node16","php80-apache-node14","php80-apache-node12","php80-apache-node10", ] } group "php80-fpm-all" { targets = [ "php80-slim-fpm", "php80-fpm", - "php80-fpm-node20","php80-fpm-node18","php80-fpm-node16","php80-fpm-node14","php80-fpm-node12","php80-fpm-node10", + "php80-fpm-node22","php80-fpm-node20","php80-fpm-node18","php80-fpm-node16","php80-fpm-node14","php80-fpm-node12","php80-fpm-node10", ] } group "php80-cli-all" { targets = [ "php80-slim-cli", "php80-cli", - "php80-cli-node20","php80-cli-node18","php80-cli-node16","php80-cli-node14","php80-cli-node12","php80-cli-node10", + "php80-cli-node22","php80-cli-node20","php80-cli-node18","php80-cli-node16","php80-cli-node14","php80-cli-node12","php80-cli-node10", ] } group "php74-apache-all" { targets = [ "php74-slim-apache", "php74-apache", - "php74-apache-node20","php74-apache-node18","php74-apache-node16","php74-apache-node14","php74-apache-node12","php74-apache-node10", + "php74-apache-node22","php74-apache-node20","php74-apache-node18","php74-apache-node16","php74-apache-node14","php74-apache-node12","php74-apache-node10", ] } group "php74-fpm-all" { targets = [ "php74-slim-fpm", "php74-fpm", - "php74-fpm-node20","php74-fpm-node18","php74-fpm-node16","php74-fpm-node14","php74-fpm-node12","php74-fpm-node10", + "php74-fpm-node22","php74-fpm-node20","php74-fpm-node18","php74-fpm-node16","php74-fpm-node14","php74-fpm-node12","php74-fpm-node10", ] } group "php74-cli-all" { targets = [ "php74-slim-cli", "php74-cli", - "php74-cli-node20","php74-cli-node18","php74-cli-node16","php74-cli-node14","php74-cli-node12","php74-cli-node10", + "php74-cli-node22","php74-cli-node20","php74-cli-node18","php74-cli-node16","php74-cli-node14","php74-cli-node12","php74-cli-node10", ] } group "php73-apache-all" { targets = [ "php73-slim-apache", "php73-apache", - "php73-apache-node20","php73-apache-node18","php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10", + "php73-apache-node22","php73-apache-node20","php73-apache-node18","php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10", ] } group "php73-fpm-all" { targets = [ "php73-slim-fpm", "php73-fpm", - "php73-fpm-node20","php73-fpm-node18","php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10", + "php73-fpm-node22","php73-fpm-node20","php73-fpm-node18","php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10", ] } group "php73-cli-all" { targets = [ "php73-slim-cli", "php73-cli", - "php73-cli-node20","php73-cli-node18","php73-cli-node16","php73-cli-node14","php73-cli-node12","php73-cli-node10", + "php73-cli-node22","php73-cli-node20","php73-cli-node18","php73-cli-node16","php73-cli-node14","php73-cli-node12","php73-cli-node10", ] } group "php72-apache-all" { targets = [ "php72-slim-apache", "php72-apache", - "php72-apache-node20","php72-apache-node18","php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10", + "php72-apache-node22","php72-apache-node20","php72-apache-node18","php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10", ] } group "php72-fpm-all" { targets = [ "php72-slim-fpm", "php72-fpm", - "php72-fpm-node20","php72-fpm-node18","php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10", + "php72-fpm-node22","php72-fpm-node20","php72-fpm-node18","php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10", ] } group "php72-cli-all" { targets = [ "php72-slim-cli", "php72-cli", - "php72-cli-node20","php72-cli-node18","php72-cli-node16","php72-cli-node14","php72-cli-node12","php72-cli-node10", + "php72-cli-node22","php72-cli-node20","php72-cli-node18","php72-cli-node16","php72-cli-node14","php72-cli-node12","php72-cli-node10", ] } @@ -240,6 +240,22 @@ target "php83-apache" { } } +# thecodingmachine/php:8.3-v4-apache-node22 +target "php83-apache-node22" { + inherits = ["default"] + tags = tag("8.3", "apache-node22") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "apache-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php83-apache" + } +} + # thecodingmachine/php:8.3-v4-apache-node20 target "php83-apache-node20" { inherits = ["default"] @@ -365,6 +381,22 @@ target "php83-fpm" { } } +# thecodingmachine/php:8.3-v4-fpm-node22 +target "php83-fpm-node22" { + inherits = ["default"] + tags = tag("8.3", "fpm-node22") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "fpm-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php83-fpm" + } +} + # thecodingmachine/php:8.3-v4-fpm-node20 target "php83-fpm-node20" { inherits = ["default"] @@ -490,6 +522,22 @@ target "php83-cli" { } } +# thecodingmachine/php:8.3-v4-cli-node22 +target "php83-cli-node22" { + inherits = ["default"] + tags = tag("8.3", "cli-node22") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.3" + VARIANT = "cli-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php83-cli" + } +} + # thecodingmachine/php:8.3-v4-cli-node20 target "php83-cli-node20" { inherits = ["default"] @@ -615,6 +663,22 @@ target "php82-apache" { } } +# thecodingmachine/php:8.2-v4-apache-node22 +target "php82-apache-node22" { + inherits = ["default"] + tags = tag("8.2", "apache-node22") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "apache-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php82-apache" + } +} + # thecodingmachine/php:8.2-v4-apache-node20 target "php82-apache-node20" { inherits = ["default"] @@ -740,6 +804,22 @@ target "php82-fpm" { } } +# thecodingmachine/php:8.2-v4-fpm-node22 +target "php82-fpm-node22" { + inherits = ["default"] + tags = tag("8.2", "fpm-node22") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "fpm-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php82-fpm" + } +} + # thecodingmachine/php:8.2-v4-fpm-node20 target "php82-fpm-node20" { inherits = ["default"] @@ -865,6 +945,22 @@ target "php82-cli" { } } +# thecodingmachine/php:8.2-v4-cli-node22 +target "php82-cli-node22" { + inherits = ["default"] + tags = tag("8.2", "cli-node22") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.2" + VARIANT = "cli-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php82-cli" + } +} + # thecodingmachine/php:8.2-v4-cli-node20 target "php82-cli-node20" { inherits = ["default"] @@ -990,6 +1086,22 @@ target "php81-apache" { } } +# thecodingmachine/php:8.1-v4-apache-node22 +target "php81-apache-node22" { + inherits = ["default"] + tags = tag("8.1", "apache-node22") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.1" + VARIANT = "apache-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php81-apache" + } +} + # thecodingmachine/php:8.1-v4-apache-node20 target "php81-apache-node20" { inherits = ["default"] @@ -1115,6 +1227,22 @@ target "php81-fpm" { } } +# thecodingmachine/php:8.1-v4-fpm-node22 +target "php81-fpm-node22" { + inherits = ["default"] + tags = tag("8.1", "fpm-node22") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.1" + VARIANT = "fpm-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php81-fpm" + } +} + # thecodingmachine/php:8.1-v4-fpm-node20 target "php81-fpm-node20" { inherits = ["default"] @@ -1240,6 +1368,22 @@ target "php81-cli" { } } +# thecodingmachine/php:8.1-v4-cli-node22 +target "php81-cli-node22" { + inherits = ["default"] + tags = tag("8.1", "cli-node22") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.1" + VARIANT = "cli-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php81-cli" + } +} + # thecodingmachine/php:8.1-v4-cli-node20 target "php81-cli-node20" { inherits = ["default"] @@ -1365,6 +1509,22 @@ target "php80-apache" { } } +# thecodingmachine/php:8.0-v4-apache-node22 +target "php80-apache-node22" { + inherits = ["default"] + tags = tag("8.0", "apache-node22") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "8.0" + VARIANT = "apache-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php80-apache" + } +} + # thecodingmachine/php:8.0-v4-apache-node20 target "php80-apache-node20" { inherits = ["default"] @@ -1490,6 +1650,22 @@ target "php80-fpm" { } } +# thecodingmachine/php:8.0-v4-fpm-node22 +target "php80-fpm-node22" { + inherits = ["default"] + tags = tag("8.0", "fpm-node22") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "8.0" + VARIANT = "fpm-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php80-fpm" + } +} + # thecodingmachine/php:8.0-v4-fpm-node20 target "php80-fpm-node20" { inherits = ["default"] @@ -1615,6 +1791,22 @@ target "php80-cli" { } } +# thecodingmachine/php:8.0-v4-cli-node22 +target "php80-cli-node22" { + inherits = ["default"] + tags = tag("8.0", "cli-node22") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "8.0" + VARIANT = "cli-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php80-cli" + } +} + # thecodingmachine/php:8.0-v4-cli-node20 target "php80-cli-node20" { inherits = ["default"] @@ -1740,6 +1932,22 @@ target "php74-apache" { } } +# thecodingmachine/php:7.4-v4-apache-node22 +target "php74-apache-node22" { + inherits = ["default"] + tags = tag("7.4", "apache-node22") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "7.4" + VARIANT = "apache-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php74-apache" + } +} + # thecodingmachine/php:7.4-v4-apache-node20 target "php74-apache-node20" { inherits = ["default"] @@ -1865,6 +2073,22 @@ target "php74-fpm" { } } +# thecodingmachine/php:7.4-v4-fpm-node22 +target "php74-fpm-node22" { + inherits = ["default"] + tags = tag("7.4", "fpm-node22") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "7.4" + VARIANT = "fpm-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php74-fpm" + } +} + # thecodingmachine/php:7.4-v4-fpm-node20 target "php74-fpm-node20" { inherits = ["default"] @@ -1990,6 +2214,22 @@ target "php74-cli" { } } +# thecodingmachine/php:7.4-v4-cli-node22 +target "php74-cli-node22" { + inherits = ["default"] + tags = tag("7.4", "cli-node22") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "7.4" + VARIANT = "cli-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php74-cli" + } +} + # thecodingmachine/php:7.4-v4-cli-node20 target "php74-cli-node20" { inherits = ["default"] @@ -2115,6 +2355,22 @@ target "php73-apache" { } } +# thecodingmachine/php:7.3-v4-apache-node22 +target "php73-apache-node22" { + inherits = ["default"] + tags = tag("7.3", "apache-node22") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "7.3" + VARIANT = "apache-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php73-apache" + } +} + # thecodingmachine/php:7.3-v4-apache-node20 target "php73-apache-node20" { inherits = ["default"] @@ -2240,6 +2496,22 @@ target "php73-fpm" { } } +# thecodingmachine/php:7.3-v4-fpm-node22 +target "php73-fpm-node22" { + inherits = ["default"] + tags = tag("7.3", "fpm-node22") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "7.3" + VARIANT = "fpm-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php73-fpm" + } +} + # thecodingmachine/php:7.3-v4-fpm-node20 target "php73-fpm-node20" { inherits = ["default"] @@ -2365,6 +2637,22 @@ target "php73-cli" { } } +# thecodingmachine/php:7.3-v4-cli-node22 +target "php73-cli-node22" { + inherits = ["default"] + tags = tag("7.3", "cli-node22") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "7.3" + VARIANT = "cli-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php73-cli" + } +} + # thecodingmachine/php:7.3-v4-cli-node20 target "php73-cli-node20" { inherits = ["default"] @@ -2490,6 +2778,22 @@ target "php72-apache" { } } +# thecodingmachine/php:7.2-v4-apache-node22 +target "php72-apache-node22" { + inherits = ["default"] + tags = tag("7.2", "apache-node22") + dockerfile = "Dockerfile.apache.node" + args = { + PHP_VERSION = "7.2" + VARIANT = "apache-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php72-apache" + } +} + # thecodingmachine/php:7.2-v4-apache-node20 target "php72-apache-node20" { inherits = ["default"] @@ -2615,6 +2919,22 @@ target "php72-fpm" { } } +# thecodingmachine/php:7.2-v4-fpm-node22 +target "php72-fpm-node22" { + inherits = ["default"] + tags = tag("7.2", "fpm-node22") + dockerfile = "Dockerfile.fpm.node" + args = { + PHP_VERSION = "7.2" + VARIANT = "fpm-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php72-fpm" + } +} + # thecodingmachine/php:7.2-v4-fpm-node20 target "php72-fpm-node20" { inherits = ["default"] @@ -2740,6 +3060,22 @@ target "php72-cli" { } } +# thecodingmachine/php:7.2-v4-cli-node22 +target "php72-cli-node22" { + inherits = ["default"] + tags = tag("7.2", "cli-node22") + dockerfile = "Dockerfile.cli.node" + args = { + PHP_VERSION = "7.2" + VARIANT = "cli-node22" + FROM_IMAGE = "fat" + NODE_VERSION = "22" + } + contexts = { + fat = "target:php72-cli" + } +} + # thecodingmachine/php:7.2-v4-cli-node20 target "php72-cli-node20" { inherits = ["default"] From 018378e8cc7e63bf24397817082854e94c7d1fe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20Viemero=CC=88?= Date: Fri, 31 May 2024 12:15:19 +0300 Subject: [PATCH 158/162] Add testing for Node --- Makefile | 15 +++++++++++++++ tests-suite/variant-node.sh | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100755 tests-suite/variant-node.sh diff --git a/Makefile b/Makefile index dcd2c5bf..b0c19789 100644 --- a/Makefile +++ b/Makefile @@ -35,6 +35,21 @@ test-8.0: ## Test php8.0 build only VERSION=8.0 VARIANT=apache $(MAKE) _test-version VERSION=8.0 VARIANT=fpm $(MAKE) _test-version +test-node: ## Test node builds only + VERSION=8.3 VARIANT=cli NODE=12 $(MAKE) _test-node + VERSION=8.3 VARIANT=cli NODE=14 $(MAKE) _test-node + VERSION=8.3 VARIANT=cli NODE=16 $(MAKE) _test-node + VERSION=8.3 VARIANT=cli NODE=18 $(MAKE) _test-node + VERSION=8.3 VARIANT=cli NODE=20 $(MAKE) _test-node + VERSION=8.3 VARIANT=cli NODE=22 $(MAKE) _test-node + +_test-node: _test-prerequisites ## Test node for VERSION="" and VARIANT="" + docker buildx bake --load \ + --set "*.platform=$(uname -p)" \ + php$${VERSION//.}-$(VARIANT)-all + PHP_VERSION="$(VERSION)" BRANCH=v4 VARIANT=$(VARIANT) NODE=$(NODE) ./tests-suite/bash_unit -f tap ./tests-suite/*.sh || (notify-send -u critical "Tests failed ($(VERSION)-$(VARIANT)-node$(NODE))" && exit 1) + notify-send -u critical "Tests passed with success ($(VERSION)-$(VARIANT)-node$(NODE))" + _test-version: _test-prerequisites ## Test php build for VERSION="" and VARIANT="" docker buildx bake --load \ --set "*.platform=$(uname -p)" \ diff --git a/tests-suite/variant-node.sh b/tests-suite/variant-node.sh new file mode 100755 index 00000000..cd195ce4 --- /dev/null +++ b/tests-suite/variant-node.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +. ./config + +if [ -z ${NODE+x} ]; then + echo "-- Node version unset" + return 0; +fi; +############################################################ +## Run node --version, check for vX.Y.Z version string +############################################################ +test_nodeVersion() { + RESULT=$(docker run ${RUN_OPTIONS} --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node${NODE}" node --version) + assert_matches "^v[0-9]+.[0-9]+.[0-9]+" "${RESULT}" "Missing node" +} +############################################################ +## Run npm --version, check for X.Y.Z version string +############################################################ +test_npmVersion() { + RESULT=$(docker run ${RUN_OPTIONS} --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}-node${NODE}" npm --version) + assert_matches "[0-9]+.[0-9]+.[0-9]+" "${RESULT}" "Missing npm" +} From 4dfafafaa6811c6ccecd7c60b7e0a10a1e909abc Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Fri, 6 Sep 2024 10:43:45 +0200 Subject: [PATCH 159/162] Fix Excimer link path --- extensions/7.2/excimer | 1 + extensions/7.2/excimer/install.sh | 1 - extensions/7.3/excimer | 1 + extensions/7.3/excimer/install.sh | 1 - extensions/7.4/excimer | 1 + extensions/7.4/excimer/install.sh | 1 - extensions/8.0/excimer | 1 + extensions/8.0/excimer/install.sh | 1 - extensions/8.1/excimer | 1 + extensions/8.1/excimer/install.sh | 1 - extensions/8.2/excimer | 1 + extensions/8.2/excimer/install.sh | 1 - extensions/8.3/excimer | 1 + extensions/8.3/excimer/install.sh | 1 - 14 files changed, 7 insertions(+), 7 deletions(-) create mode 120000 extensions/7.2/excimer delete mode 100755 extensions/7.2/excimer/install.sh create mode 120000 extensions/7.3/excimer delete mode 100755 extensions/7.3/excimer/install.sh create mode 120000 extensions/7.4/excimer delete mode 100755 extensions/7.4/excimer/install.sh create mode 120000 extensions/8.0/excimer delete mode 100755 extensions/8.0/excimer/install.sh create mode 120000 extensions/8.1/excimer delete mode 100755 extensions/8.1/excimer/install.sh create mode 120000 extensions/8.2/excimer delete mode 100755 extensions/8.2/excimer/install.sh create mode 120000 extensions/8.3/excimer delete mode 100755 extensions/8.3/excimer/install.sh diff --git a/extensions/7.2/excimer b/extensions/7.2/excimer new file mode 120000 index 00000000..4e099313 --- /dev/null +++ b/extensions/7.2/excimer @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/7.2/excimer/install.sh b/extensions/7.2/excimer/install.sh deleted file mode 100755 index 4e099313..00000000 --- a/extensions/7.2/excimer/install.sh +++ /dev/null @@ -1 +0,0 @@ -../core/excimer \ No newline at end of file diff --git a/extensions/7.3/excimer b/extensions/7.3/excimer new file mode 120000 index 00000000..4e099313 --- /dev/null +++ b/extensions/7.3/excimer @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/7.3/excimer/install.sh b/extensions/7.3/excimer/install.sh deleted file mode 100755 index 4e099313..00000000 --- a/extensions/7.3/excimer/install.sh +++ /dev/null @@ -1 +0,0 @@ -../core/excimer \ No newline at end of file diff --git a/extensions/7.4/excimer b/extensions/7.4/excimer new file mode 120000 index 00000000..4e099313 --- /dev/null +++ b/extensions/7.4/excimer @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/7.4/excimer/install.sh b/extensions/7.4/excimer/install.sh deleted file mode 100755 index 4e099313..00000000 --- a/extensions/7.4/excimer/install.sh +++ /dev/null @@ -1 +0,0 @@ -../core/excimer \ No newline at end of file diff --git a/extensions/8.0/excimer b/extensions/8.0/excimer new file mode 120000 index 00000000..4e099313 --- /dev/null +++ b/extensions/8.0/excimer @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/8.0/excimer/install.sh b/extensions/8.0/excimer/install.sh deleted file mode 100755 index 4e099313..00000000 --- a/extensions/8.0/excimer/install.sh +++ /dev/null @@ -1 +0,0 @@ -../core/excimer \ No newline at end of file diff --git a/extensions/8.1/excimer b/extensions/8.1/excimer new file mode 120000 index 00000000..4e099313 --- /dev/null +++ b/extensions/8.1/excimer @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/8.1/excimer/install.sh b/extensions/8.1/excimer/install.sh deleted file mode 100755 index 4e099313..00000000 --- a/extensions/8.1/excimer/install.sh +++ /dev/null @@ -1 +0,0 @@ -../core/excimer \ No newline at end of file diff --git a/extensions/8.2/excimer b/extensions/8.2/excimer new file mode 120000 index 00000000..4e099313 --- /dev/null +++ b/extensions/8.2/excimer @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/8.2/excimer/install.sh b/extensions/8.2/excimer/install.sh deleted file mode 100755 index 4e099313..00000000 --- a/extensions/8.2/excimer/install.sh +++ /dev/null @@ -1 +0,0 @@ -../core/excimer \ No newline at end of file diff --git a/extensions/8.3/excimer b/extensions/8.3/excimer new file mode 120000 index 00000000..4e099313 --- /dev/null +++ b/extensions/8.3/excimer @@ -0,0 +1 @@ +../core/excimer \ No newline at end of file diff --git a/extensions/8.3/excimer/install.sh b/extensions/8.3/excimer/install.sh deleted file mode 100755 index 4e099313..00000000 --- a/extensions/8.3/excimer/install.sh +++ /dev/null @@ -1 +0,0 @@ -../core/excimer \ No newline at end of file From c1c00dcd8d7f31e41017921da956673216db6128 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Mon, 2 Dec 2024 17:42:38 +0100 Subject: [PATCH 160/162] Add php8.4 Remove php7.3 and php7.2 --- .github/workflows/workflow.yml | 4 +- CHANGELOG.md | 2 +- Dockerfile.apache | 2 +- Dockerfile.cli | 2 +- Dockerfile.fpm | 2 +- Dockerfile.slim.apache | 8 +- Dockerfile.slim.fpm | 6 +- Makefile | 29 +- README.md | 253 ++- docker-bake.hcl | 2118 ++++++++------------- extensions/7.2/ev | 1 - extensions/7.2/event | 1 - extensions/7.2/gnupg | 1 - extensions/7.2/mcrypt | 1 - extensions/7.2/swoole | 1 - extensions/7.2/weakref | 1 - extensions/7.3/amqp | 1 - extensions/7.3/apcu | 1 - extensions/7.3/ast | 1 - extensions/7.3/bcmath | 1 - extensions/7.3/blackfire | 1 - extensions/7.3/bz2 | 1 - extensions/7.3/dba | 1 - extensions/7.3/disable_all.sh | 1 - extensions/7.3/docker-install.sh | 1 - extensions/7.3/ds | 1 - extensions/7.3/enchant | 1 - extensions/7.3/ev | 1 - extensions/7.3/event | 1 - extensions/7.3/excimer | 1 - extensions/7.3/gd | 1 - extensions/7.3/gmp | 1 - extensions/7.3/gnupg | 1 - extensions/7.3/grpc | 1 - extensions/7.3/igbinary | 1 - extensions/7.3/imagick | 1 - extensions/7.3/imap | 1 - extensions/7.3/install_all.sh | 1 - extensions/7.3/intl | 1 - extensions/7.3/ldap | 1 - extensions/7.3/mailparse | 1 - extensions/7.3/memcached | 1 - extensions/7.3/mongodb | 1 - extensions/7.3/msgpack | 1 - extensions/7.3/mysqli | 1 - extensions/7.3/pcov | 1 - extensions/7.3/pdo_dblib | 1 - extensions/7.3/pdo_mysql | 1 - extensions/7.3/pdo_pgsql | 1 - extensions/7.3/pdo_sqlite | 1 - extensions/7.3/pgsql | 1 - extensions/7.3/pspell | 1 - extensions/7.3/rdkafka | 1 - extensions/7.3/redis | 1 - extensions/7.3/snmp | 1 - extensions/7.3/soap | 1 - extensions/7.3/sqlite3 | 1 - extensions/7.3/swoole | 1 - extensions/7.3/tidy | 1 - extensions/7.3/uploadprogress | 1 - extensions/7.3/uuid | 1 - extensions/7.3/xdebug | 1 - extensions/7.3/xmlrpc | 1 - extensions/7.3/yaml | 1 - extensions/7.3/zip | 1 - extensions/{7.2 => 8.4}/amqp | 0 extensions/{7.2 => 8.4}/apcu | 0 extensions/{7.2 => 8.4}/ast | 0 extensions/{7.2 => 8.4}/bcmath | 0 extensions/{7.2 => 8.4}/blackfire | 0 extensions/{7.2 => 8.4}/bz2 | 0 extensions/{7.2 => 8.4}/dba | 0 extensions/{7.2 => 8.4}/disable_all.sh | 0 extensions/{7.2 => 8.4}/docker-install.sh | 0 extensions/{7.2 => 8.4}/ds | 0 extensions/{7.2 => 8.4}/enchant | 0 extensions/{7.2 => 8.4}/excimer | 0 extensions/8.4/ffi | 1 + extensions/{7.2 => 8.4}/gd | 0 extensions/{7.2 => 8.4}/gmp | 0 extensions/{7.2 => 8.4}/grpc | 0 extensions/{7.2 => 8.4}/igbinary | 0 extensions/{7.2 => 8.4}/imagick | 0 extensions/{7.2 => 8.4}/imap | 0 extensions/{7.2 => 8.4}/install_all.sh | 0 extensions/{7.2 => 8.4}/intl | 0 extensions/{7.2 => 8.4}/ldap | 0 extensions/{7.2 => 8.4}/mailparse | 0 extensions/{7.2 => 8.4}/memcached | 0 extensions/{7.2 => 8.4}/mongodb | 0 extensions/{7.2 => 8.4}/msgpack | 0 extensions/{7.2 => 8.4}/mysqli | 0 extensions/{7.2 => 8.4}/pcov | 0 extensions/{7.2 => 8.4}/pdo_dblib | 0 extensions/{7.2 => 8.4}/pdo_mysql | 0 extensions/{7.2 => 8.4}/pdo_pgsql | 0 extensions/{7.2 => 8.4}/pdo_sqlite | 0 extensions/{7.2 => 8.4}/pgsql | 0 extensions/{7.2 => 8.4}/pspell | 0 extensions/{7.2 => 8.4}/rdkafka | 0 extensions/{7.2 => 8.4}/redis | 0 extensions/{7.2 => 8.4}/snmp | 0 extensions/{7.2 => 8.4}/soap | 0 extensions/{7.2 => 8.4}/sqlite3 | 0 extensions/{7.2 => 8.4}/tidy | 0 extensions/{7.2 => 8.4}/uploadprogress | 0 extensions/{7.2 => 8.4}/uuid | 0 extensions/{7.2 => 8.4}/xdebug | 0 extensions/{7.2 => 8.4}/xmlrpc | 0 extensions/{7.2 => 8.4}/yaml | 0 extensions/{7.2 => 8.4}/zip | 0 orbit-images.yml | 2 +- tests-suite/php-blackfire.sh | 8 +- tests-suite/php-extensions.sh | 12 +- tests-suite/php-ini.sh | 14 +- utils/Dockerfile.blueprint | 2 +- utils/Dockerfile.slim.blueprint | 14 +- utils/README.blueprint.md | 34 +- utils/docker-bake.blueprint.hcl | 2 +- 119 files changed, 1017 insertions(+), 1553 deletions(-) delete mode 120000 extensions/7.2/ev delete mode 120000 extensions/7.2/event delete mode 120000 extensions/7.2/gnupg delete mode 120000 extensions/7.2/mcrypt delete mode 120000 extensions/7.2/swoole delete mode 120000 extensions/7.2/weakref delete mode 120000 extensions/7.3/amqp delete mode 120000 extensions/7.3/apcu delete mode 120000 extensions/7.3/ast delete mode 120000 extensions/7.3/bcmath delete mode 120000 extensions/7.3/blackfire delete mode 120000 extensions/7.3/bz2 delete mode 120000 extensions/7.3/dba delete mode 120000 extensions/7.3/disable_all.sh delete mode 120000 extensions/7.3/docker-install.sh delete mode 120000 extensions/7.3/ds delete mode 120000 extensions/7.3/enchant delete mode 120000 extensions/7.3/ev delete mode 120000 extensions/7.3/event delete mode 120000 extensions/7.3/excimer delete mode 120000 extensions/7.3/gd delete mode 120000 extensions/7.3/gmp delete mode 120000 extensions/7.3/gnupg delete mode 120000 extensions/7.3/grpc delete mode 120000 extensions/7.3/igbinary delete mode 120000 extensions/7.3/imagick delete mode 120000 extensions/7.3/imap delete mode 120000 extensions/7.3/install_all.sh delete mode 120000 extensions/7.3/intl delete mode 120000 extensions/7.3/ldap delete mode 120000 extensions/7.3/mailparse delete mode 120000 extensions/7.3/memcached delete mode 120000 extensions/7.3/mongodb delete mode 120000 extensions/7.3/msgpack delete mode 120000 extensions/7.3/mysqli delete mode 120000 extensions/7.3/pcov delete mode 120000 extensions/7.3/pdo_dblib delete mode 120000 extensions/7.3/pdo_mysql delete mode 120000 extensions/7.3/pdo_pgsql delete mode 120000 extensions/7.3/pdo_sqlite delete mode 120000 extensions/7.3/pgsql delete mode 120000 extensions/7.3/pspell delete mode 120000 extensions/7.3/rdkafka delete mode 120000 extensions/7.3/redis delete mode 120000 extensions/7.3/snmp delete mode 120000 extensions/7.3/soap delete mode 120000 extensions/7.3/sqlite3 delete mode 120000 extensions/7.3/swoole delete mode 120000 extensions/7.3/tidy delete mode 120000 extensions/7.3/uploadprogress delete mode 120000 extensions/7.3/uuid delete mode 120000 extensions/7.3/xdebug delete mode 120000 extensions/7.3/xmlrpc delete mode 120000 extensions/7.3/yaml delete mode 120000 extensions/7.3/zip rename extensions/{7.2 => 8.4}/amqp (100%) rename extensions/{7.2 => 8.4}/apcu (100%) rename extensions/{7.2 => 8.4}/ast (100%) rename extensions/{7.2 => 8.4}/bcmath (100%) rename extensions/{7.2 => 8.4}/blackfire (100%) rename extensions/{7.2 => 8.4}/bz2 (100%) rename extensions/{7.2 => 8.4}/dba (100%) rename extensions/{7.2 => 8.4}/disable_all.sh (100%) rename extensions/{7.2 => 8.4}/docker-install.sh (100%) rename extensions/{7.2 => 8.4}/ds (100%) rename extensions/{7.2 => 8.4}/enchant (100%) rename extensions/{7.2 => 8.4}/excimer (100%) create mode 120000 extensions/8.4/ffi rename extensions/{7.2 => 8.4}/gd (100%) rename extensions/{7.2 => 8.4}/gmp (100%) rename extensions/{7.2 => 8.4}/grpc (100%) rename extensions/{7.2 => 8.4}/igbinary (100%) rename extensions/{7.2 => 8.4}/imagick (100%) rename extensions/{7.2 => 8.4}/imap (100%) rename extensions/{7.2 => 8.4}/install_all.sh (100%) rename extensions/{7.2 => 8.4}/intl (100%) rename extensions/{7.2 => 8.4}/ldap (100%) rename extensions/{7.2 => 8.4}/mailparse (100%) rename extensions/{7.2 => 8.4}/memcached (100%) rename extensions/{7.2 => 8.4}/mongodb (100%) rename extensions/{7.2 => 8.4}/msgpack (100%) rename extensions/{7.2 => 8.4}/mysqli (100%) rename extensions/{7.2 => 8.4}/pcov (100%) rename extensions/{7.2 => 8.4}/pdo_dblib (100%) rename extensions/{7.2 => 8.4}/pdo_mysql (100%) rename extensions/{7.2 => 8.4}/pdo_pgsql (100%) rename extensions/{7.2 => 8.4}/pdo_sqlite (100%) rename extensions/{7.2 => 8.4}/pgsql (100%) rename extensions/{7.2 => 8.4}/pspell (100%) rename extensions/{7.2 => 8.4}/rdkafka (100%) rename extensions/{7.2 => 8.4}/redis (100%) rename extensions/{7.2 => 8.4}/snmp (100%) rename extensions/{7.2 => 8.4}/soap (100%) rename extensions/{7.2 => 8.4}/sqlite3 (100%) rename extensions/{7.2 => 8.4}/tidy (100%) rename extensions/{7.2 => 8.4}/uploadprogress (100%) rename extensions/{7.2 => 8.4}/uuid (100%) rename extensions/{7.2 => 8.4}/xdebug (100%) rename extensions/{7.2 => 8.4}/xmlrpc (100%) rename extensions/{7.2 => 8.4}/yaml (100%) rename extensions/{7.2 => 8.4}/zip (100%) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 8829d4e8..ce3f92d8 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.3','8.2','8.1','8.0','7.4','7.3','7.2'] + php_version: ['8.4', '8.3','8.2','8.1','8.0','7.4'] variant: ['apache','cli','fpm'] # builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "macos-latest"}] builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "ubuntu-latest"}] @@ -64,7 +64,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.3','8.2','8.1','8.0','7.4','7.3','7.2'] + php_version: ['8.4', 8.3','8.2','8.1','8.0','7.4'] variant: ['apache','cli','fpm'] steps: - name: Checkout diff --git a/CHANGELOG.md b/CHANGELOG.md index d5a70851..be47c2db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,4 +69,4 @@ The sqlite3 extension was previously enabled by default, but must now be enabled The project layout has been deeply changed. There is now only one branch for all the PHP versions. Each extension now has its own installation script in the `/extensions/core` directory with symlinks for the -extensions in the `/extensions/7.1` and `/extensions/7.2` directory based on the targeted PHP version. +extensions in the `/extensions/8.3` and `/extensions/8.4` directory based on the targeted PHP version. diff --git a/Dockerfile.apache b/Dockerfile.apache index 99bacba5..307cf1ea 100644 --- a/Dockerfile.apache +++ b/Dockerfile.apache @@ -8,7 +8,7 @@ ARG REPO="thecodingmachine/php" ARG TAG_PREFIX="" ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache" -FROM $FROM_IMAGE +FROM ${FROM_IMAGE} LABEL authors="Julien Neuhart , David Négrier " SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/Dockerfile.cli b/Dockerfile.cli index 8aaedf43..07d456ba 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -8,7 +8,7 @@ ARG REPO="thecodingmachine/php" ARG TAG_PREFIX="" ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli" -FROM $FROM_IMAGE +FROM ${FROM_IMAGE} LABEL authors="Julien Neuhart , David Négrier " SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/Dockerfile.fpm b/Dockerfile.fpm index ed56eb92..7f772535 100644 --- a/Dockerfile.fpm +++ b/Dockerfile.fpm @@ -8,7 +8,7 @@ ARG REPO="thecodingmachine/php" ARG TAG_PREFIX="" ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm" -FROM $FROM_IMAGE +FROM ${FROM_IMAGE} LABEL authors="Julien Neuhart , David Négrier " SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/Dockerfile.slim.apache b/Dockerfile.slim.apache index 96683011..92158945 100644 --- a/Dockerfile.slim.apache +++ b/Dockerfile.slim.apache @@ -152,8 +152,8 @@ RUN composer global require bamarni/symfony-console-autocomplete && \ USER root -ENV APACHE_CONFDIR /etc/apache2 -ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars +ENV APACHE_CONFDIR=/etc/apache2 +ENV APACHE_ENVVARS=$APACHE_CONFDIR/envvars RUN set -eux; \ apt-get update; \ @@ -199,8 +199,8 @@ COPY utils/apache-docker-php.conf /etc/apache2/conf-available/docker-php.conf RUN a2enconf docker-php -ENV PHP_EXTRA_BUILD_DEPS apache2-dev -ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 --disable-cgi +ENV PHP_EXTRA_BUILD_DEPS=apache2-dev +ENV PHP_EXTRA_CONFIGURE_ARGS="--with-apxs2 --disable-cgi" # https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop STOPSIGNAL SIGWINCH diff --git a/Dockerfile.slim.fpm b/Dockerfile.slim.fpm index dab403ac..4c065601 100644 --- a/Dockerfile.slim.fpm +++ b/Dockerfile.slim.fpm @@ -265,11 +265,7 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P sed -i 's/^user = www-data/;user = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i 's/^group = www-data/;group = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i 's#listen = /run/php/php${PHP_VERSION}-fpm.sock#;listen = /run/php/php${PHP_VERSION}-fpm.sock#g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ - sed -i "s#pid = /run/php/php${PHP_VERSION}-fpm.pid#;pid = /run/php/php${PHP_VERSION}-fpm.pid#g" /etc/php/${PHP_VERSION}/fpm/php-fpm.conf && \ - if [[ "$PHP_VERSION" = "7.2" ]]; then \ - sed -i 's/^log_limit =/;log_limit =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf && \ - sed -i 's/^decorate_workers_output =/;decorate_workers_output =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf; \ - fi + sed -i "s#pid = /run/php/php${PHP_VERSION}-fpm.pid#;pid = /run/php/php${PHP_VERSION}-fpm.pid#g" /etc/php/${PHP_VERSION}/fpm/php-fpm.conf USER docker diff --git a/Makefile b/Makefile index b0c19789..c0f57899 100644 --- a/Makefile +++ b/Makefile @@ -4,16 +4,15 @@ blueprint: ## Generate all blueprints file @if ! type orbit >/dev/null 2>&1; then echo "Missing orbit dependency, please install from https://github.com/gulien/orbit/"; exit 1; fi orbit run generate -test-latest: test-8.3 ## Test the latest build only +test-latest: test-8.4 ## Test the latest build only _test-prerequisites: blueprint docker pull ubuntu:20.04 -test-quick: ## Test 8.0, 8.1, 8.2 and 8.3 quickly - VERSION=8.0 VARIANT=cli $(MAKE) _test-version-quick - VERSION=8.1 VARIANT=cli $(MAKE) _test-version-quick +test-quick: ## Test 8.2, 8.3 and 8.4 quickly VERSION=8.2 VARIANT=cli $(MAKE) _test-version-quick VERSION=8.3 VARIANT=cli $(MAKE) _test-version-quick + VERSION=8.4 VARIANT=cli $(MAKE) _test-version-quick test-8.3: ## Test php8.3 build only VERSION=8.3 VARIANT=cli $(MAKE) _test-version @@ -30,18 +29,18 @@ test-8.1: ## Test php8.1 build only VERSION=8.1 VARIANT=apache $(MAKE) _test-version VERSION=8.1 VARIANT=fpm $(MAKE) _test-version -test-8.0: ## Test php8.0 build only - VERSION=8.0 VARIANT=cli $(MAKE) _test-version - VERSION=8.0 VARIANT=apache $(MAKE) _test-version - VERSION=8.0 VARIANT=fpm $(MAKE) _test-version +test-8.4: ## Test php8.4 build only + VERSION=8.4 VARIANT=cli $(MAKE) _test-version + VERSION=8.4 VARIANT=apache $(MAKE) _test-version + VERSION=8.4 VARIANT=fpm $(MAKE) _test-version test-node: ## Test node builds only - VERSION=8.3 VARIANT=cli NODE=12 $(MAKE) _test-node - VERSION=8.3 VARIANT=cli NODE=14 $(MAKE) _test-node - VERSION=8.3 VARIANT=cli NODE=16 $(MAKE) _test-node - VERSION=8.3 VARIANT=cli NODE=18 $(MAKE) _test-node - VERSION=8.3 VARIANT=cli NODE=20 $(MAKE) _test-node - VERSION=8.3 VARIANT=cli NODE=22 $(MAKE) _test-node + VERSION=8.4 VARIANT=cli NODE=12 $(MAKE) _test-node + VERSION=8.4 VARIANT=cli NODE=14 $(MAKE) _test-node + VERSION=8.4 VARIANT=cli NODE=16 $(MAKE) _test-node + VERSION=8.4 VARIANT=cli NODE=18 $(MAKE) _test-node + VERSION=8.4 VARIANT=cli NODE=20 $(MAKE) _test-node + VERSION=8.4 VARIANT=cli NODE=22 $(MAKE) _test-node _test-node: _test-prerequisites ## Test node for VERSION="" and VARIANT="" docker buildx bake --load \ @@ -65,4 +64,4 @@ _test-version-quick: _test-prerequisites ## Test php build for VERSION="" and VA notify-send -u critical "Tests passed with success ($(VERSION)-$(VARIANT)) - without node-*" clean: ## Clean dangles image after build - rm -rf /tmp/buildx-cache \ No newline at end of file + rm -rf /tmp/buildx-cache diff --git a/README.md b/README.md index 273afe0d..dcae048a 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,36 @@ This repository contains a set of developer-friendly, general purpose PHP images -| Name | PHP version | type |variant | NodeJS version | Size -|-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ -| [thecodingmachine/php:8.3-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.3.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache) +| Name | PHP version | type |variant | NodeJS version | Size +|-------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|--------|-----------------|------ +| [thecodingmachine/php:8.4-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.4.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-apache) +| [thecodingmachine/php:8.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.4.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-apache-node10) +| [thecodingmachine/php:8.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-apache-node12) +| [thecodingmachine/php:8.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-apache-node14) +| [thecodingmachine/php:8.4-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.4.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-apache-node16) +| [thecodingmachine/php:8.4-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.4.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-apache-node18) +| [thecodingmachine/php:8.4-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.4.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-apache-node20) +| [thecodingmachine/php:8.4-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.4.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-apache-node22) +| [thecodingmachine/php:8.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-fpm) +| [thecodingmachine/php:8.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.4.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-fpm-node10) +| [thecodingmachine/php:8.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-fpm-node12) +| [thecodingmachine/php:8.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-fpm-node14) +| [thecodingmachine/php:8.4-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.4.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-fpm-node16) +| [thecodingmachine/php:8.4-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.4.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-fpm-node18) +| [thecodingmachine/php:8.4-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.4.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-fpm-node20) +| [thecodingmachine/php:8.4-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.4.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-fpm-node22) +| [thecodingmachine/php:8.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-cli) +| [thecodingmachine/php:8.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.4.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-cli-node10) +| [thecodingmachine/php:8.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-cli-node12) +| [thecodingmachine/php:8.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-cli-node14) +| [thecodingmachine/php:8.4-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.4.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-cli-node16) +| [thecodingmachine/php:8.4-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.4.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-cli-node18) +| [thecodingmachine/php:8.4-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.4.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-cli-node20) +| [thecodingmachine/php:8.4-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.4.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-cli-node22) +| [thecodingmachine/php:8.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-slim-apache) +| [thecodingmachine/php:8.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-slim-fpm) +| [thecodingmachine/php:8.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.4-v4-slim-cli) +| [thecodingmachine/php:8.3-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.3.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache) | [thecodingmachine/php:8.3-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node10) | [thecodingmachine/php:8.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node12) | [thecodingmachine/php:8.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node14) @@ -30,7 +57,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.3-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node18) | [thecodingmachine/php:8.3-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node20) | [thecodingmachine/php:8.3-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.3.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-apache-node22) -| [thecodingmachine/php:8.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.3.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm) +| [thecodingmachine/php:8.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.3.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm) | [thecodingmachine/php:8.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node10) | [thecodingmachine/php:8.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node12) | [thecodingmachine/php:8.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node14) @@ -38,7 +65,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.3-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node18) | [thecodingmachine/php:8.3-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node20) | [thecodingmachine/php:8.3-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.3.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-fpm-node22) -| [thecodingmachine/php:8.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.3.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli) +| [thecodingmachine/php:8.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.3.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli) | [thecodingmachine/php:8.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node10) | [thecodingmachine/php:8.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node12) | [thecodingmachine/php:8.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node14) @@ -46,10 +73,10 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.3-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node18) | [thecodingmachine/php:8.3-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node20) | [thecodingmachine/php:8.3-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.3.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-cli-node22) -| [thecodingmachine/php:8.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.3.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-apache) -| [thecodingmachine/php:8.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.3.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-fpm) -| [thecodingmachine/php:8.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.3.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-cli) -| [thecodingmachine/php:8.2-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.2.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache) +| [thecodingmachine/php:8.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.3.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-apache) +| [thecodingmachine/php:8.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.3.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-fpm) +| [thecodingmachine/php:8.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.3.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.3-v4-slim-cli) +| [thecodingmachine/php:8.2-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.2.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache) | [thecodingmachine/php:8.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node10) | [thecodingmachine/php:8.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node12) | [thecodingmachine/php:8.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node14) @@ -57,7 +84,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.2-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node18) | [thecodingmachine/php:8.2-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node20) | [thecodingmachine/php:8.2-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.2.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-apache-node22) -| [thecodingmachine/php:8.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.2.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm) +| [thecodingmachine/php:8.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.2.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm) | [thecodingmachine/php:8.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node10) | [thecodingmachine/php:8.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node12) | [thecodingmachine/php:8.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node14) @@ -65,7 +92,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.2-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node18) | [thecodingmachine/php:8.2-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node20) | [thecodingmachine/php:8.2-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.2.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-fpm-node22) -| [thecodingmachine/php:8.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.2.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli) +| [thecodingmachine/php:8.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.2.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli) | [thecodingmachine/php:8.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node10) | [thecodingmachine/php:8.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node12) | [thecodingmachine/php:8.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node14) @@ -73,10 +100,10 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.2-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node18) | [thecodingmachine/php:8.2-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node20) | [thecodingmachine/php:8.2-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.2.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-cli-node22) -| [thecodingmachine/php:8.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.2.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-apache) -| [thecodingmachine/php:8.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.2.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-fpm) -| [thecodingmachine/php:8.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.2.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-cli) -| [thecodingmachine/php:8.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.1.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache) +| [thecodingmachine/php:8.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.2.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-apache) +| [thecodingmachine/php:8.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.2.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-fpm) +| [thecodingmachine/php:8.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.2.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.2-v4-slim-cli) +| [thecodingmachine/php:8.1-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.1.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache) | [thecodingmachine/php:8.1-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node10) | [thecodingmachine/php:8.1-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node12) | [thecodingmachine/php:8.1-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node14) @@ -84,7 +111,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.1-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node18) | [thecodingmachine/php:8.1-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node20) | [thecodingmachine/php:8.1-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.1.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-apache-node22) -| [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) +| [thecodingmachine/php:8.1-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.1.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm) | [thecodingmachine/php:8.1-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node10) | [thecodingmachine/php:8.1-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node12) | [thecodingmachine/php:8.1-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node14) @@ -92,7 +119,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.1-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node18) | [thecodingmachine/php:8.1-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node20) | [thecodingmachine/php:8.1-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.1.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-fpm-node22) -| [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) +| [thecodingmachine/php:8.1-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.1.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli) | [thecodingmachine/php:8.1-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node10) | [thecodingmachine/php:8.1-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node12) | [thecodingmachine/php:8.1-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node14) @@ -100,10 +127,10 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.1-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node18) | [thecodingmachine/php:8.1-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node20) | [thecodingmachine/php:8.1-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.1.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-cli-node22) -| [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) -| [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) -| [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) -| [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) +| [thecodingmachine/php:8.1-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.1.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-apache) +| [thecodingmachine/php:8.1-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.1.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-fpm) +| [thecodingmachine/php:8.1-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.1.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.1-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.1-v4-slim-cli) +| [thecodingmachine/php:8.0-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `8.0.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache) | [thecodingmachine/php:8.0-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node10) | [thecodingmachine/php:8.0-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node12) | [thecodingmachine/php:8.0-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node14) @@ -111,7 +138,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.0-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node18) | [thecodingmachine/php:8.0-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node20) | [thecodingmachine/php:8.0-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `8.0.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-apache-node22) -| [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) +| [thecodingmachine/php:8.0-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `8.0.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm) | [thecodingmachine/php:8.0-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node10) | [thecodingmachine/php:8.0-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node12) | [thecodingmachine/php:8.0-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node14) @@ -119,7 +146,7 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.0-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node18) | [thecodingmachine/php:8.0-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node20) | [thecodingmachine/php:8.0-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `8.0.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-fpm-node22) -| [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) +| [thecodingmachine/php:8.0-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `8.0.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli) | [thecodingmachine/php:8.0-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node10) | [thecodingmachine/php:8.0-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node12) | [thecodingmachine/php:8.0-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node14) @@ -127,93 +154,39 @@ This repository contains a set of developer-friendly, general purpose PHP images | [thecodingmachine/php:8.0-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node18) | [thecodingmachine/php:8.0-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node20) | [thecodingmachine/php:8.0-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `8.0.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-cli-node22) -| [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) -| [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) -| [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) -| [thecodingmachine/php:7.4-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.4.x` | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache) -| [thecodingmachine/php:7.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node10) -| [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) -| [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) -| [thecodingmachine/php:7.4-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node16) -| [thecodingmachine/php:7.4-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node18) -| [thecodingmachine/php:7.4-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node20) -| [thecodingmachine/php:7.4-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x` | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node22) -| [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x` | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) -| [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) -| [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) -| [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) -| [thecodingmachine/php:7.4-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node16) -| [thecodingmachine/php:7.4-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node18) -| [thecodingmachine/php:7.4-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node20) -| [thecodingmachine/php:7.4-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x` | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node22) -| [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x` | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) -| [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) -| [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) -| [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) -| [thecodingmachine/php:7.4-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node16) -| [thecodingmachine/php:7.4-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node18) -| [thecodingmachine/php:7.4-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node20) -| [thecodingmachine/php:7.4-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x` | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node22) -| [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) -| [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) -| [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) -| [thecodingmachine/php:7.3-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.3.x`(1) | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache) -| [thecodingmachine/php:7.3-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node10) -| [thecodingmachine/php:7.3-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node12) -| [thecodingmachine/php:7.3-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node14) -| [thecodingmachine/php:7.3-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node16) -| [thecodingmachine/php:7.3-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node18) -| [thecodingmachine/php:7.3-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node20) -| [thecodingmachine/php:7.3-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.3.x`(1) | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-apache-node22) -| [thecodingmachine/php:7.3-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.3.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm) -| [thecodingmachine/php:7.3-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node10) -| [thecodingmachine/php:7.3-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node12) -| [thecodingmachine/php:7.3-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node14) -| [thecodingmachine/php:7.3-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node16) -| [thecodingmachine/php:7.3-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node18) -| [thecodingmachine/php:7.3-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node20) -| [thecodingmachine/php:7.3-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.3.x`(1) | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-fpm-node22) -| [thecodingmachine/php:7.3-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.3.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli) -| [thecodingmachine/php:7.3-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node10) -| [thecodingmachine/php:7.3-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node12) -| [thecodingmachine/php:7.3-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node14) -| [thecodingmachine/php:7.3-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node16) -| [thecodingmachine/php:7.3-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node18) -| [thecodingmachine/php:7.3-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node20) -| [thecodingmachine/php:7.3-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.3.x`(1) | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-cli-node22) -| [thecodingmachine/php:7.3-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.3.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-apache) -| [thecodingmachine/php:7.3-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.3.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-fpm) -| [thecodingmachine/php:7.3-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.3.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.3-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.3-v4-slim-cli) -| [thecodingmachine/php:7.2-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.2.x`(1) | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache) -| [thecodingmachine/php:7.2-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node10) -| [thecodingmachine/php:7.2-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node12) -| [thecodingmachine/php:7.2-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node14) -| [thecodingmachine/php:7.2-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node16) -| [thecodingmachine/php:7.2-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node18) -| [thecodingmachine/php:7.2-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node20) -| [thecodingmachine/php:7.2-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.2.x`(1) | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-apache-node22) -| [thecodingmachine/php:7.2-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.2.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm) -| [thecodingmachine/php:7.2-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node10) -| [thecodingmachine/php:7.2-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node12) -| [thecodingmachine/php:7.2-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node14) -| [thecodingmachine/php:7.2-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node16) -| [thecodingmachine/php:7.2-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node18) -| [thecodingmachine/php:7.2-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node20) -| [thecodingmachine/php:7.2-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.2.x`(1) | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-fpm-node22) -| [thecodingmachine/php:7.2-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.2.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli) -| [thecodingmachine/php:7.2-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node10) -| [thecodingmachine/php:7.2-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node12) -| [thecodingmachine/php:7.2-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node14) -| [thecodingmachine/php:7.2-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node16) -| [thecodingmachine/php:7.2-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node18) -| [thecodingmachine/php:7.2-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node20) -| [thecodingmachine/php:7.2-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.2.x`(1) | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-cli-node22) -| [thecodingmachine/php:7.2-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.2.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-apache) -| [thecodingmachine/php:7.2-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.2.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-fpm) -| [thecodingmachine/php:7.2-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.2.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.2-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.2-v4-slim-cli) - - -* (1) [PHP 7.2 and 7.3 are end of life](https://www.php.net/supported-versions.php) +| [thecodingmachine/php:8.0-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `8.0.x` | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-apache) +| [thecodingmachine/php:8.0-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `8.0.x` | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-fpm) +| [thecodingmachine/php:8.0-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `8.0.x` | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:8.0-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:8.0-v4-slim-cli) +| [thecodingmachine/php:7.4-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `7.4.x`(1) | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache) +| [thecodingmachine/php:7.4-v4-apache-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x`(1) | fat | apache | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node10) +| [thecodingmachine/php:7.4-v4-apache-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x`(1) | fat | apache | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node12) +| [thecodingmachine/php:7.4-v4-apache-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x`(1) | fat | apache | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node14) +| [thecodingmachine/php:7.4-v4-apache-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x`(1) | fat | apache | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node16) +| [thecodingmachine/php:7.4-v4-apache-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x`(1) | fat | apache | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node18) +| [thecodingmachine/php:7.4-v4-apache-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x`(1) | fat | apache | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node20) +| [thecodingmachine/php:7.4-v4-apache-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `7.4.x`(1) | fat | apache | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-apache-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-apache-node22) +| [thecodingmachine/php:7.4-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `7.4.x`(1) | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm) +| [thecodingmachine/php:7.4-v4-fpm-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x`(1) | fat | fpm | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node10) +| [thecodingmachine/php:7.4-v4-fpm-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x`(1) | fat | fpm | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node12) +| [thecodingmachine/php:7.4-v4-fpm-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x`(1) | fat | fpm | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node14) +| [thecodingmachine/php:7.4-v4-fpm-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x`(1) | fat | fpm | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node16) +| [thecodingmachine/php:7.4-v4-fpm-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x`(1) | fat | fpm | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node18) +| [thecodingmachine/php:7.4-v4-fpm-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x`(1) | fat | fpm | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node20) +| [thecodingmachine/php:7.4-v4-fpm-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `7.4.x`(1) | fat | fpm | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-fpm-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-fpm-node22) +| [thecodingmachine/php:7.4-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `7.4.x`(1) | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli) +| [thecodingmachine/php:7.4-v4-cli-node10](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x`(1) | fat | cli | `10.x`(2) | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node10.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node10) +| [thecodingmachine/php:7.4-v4-cli-node12](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x`(1) | fat | cli | `12.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node12.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node12) +| [thecodingmachine/php:7.4-v4-cli-node14](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x`(1) | fat | cli | `14.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node14.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node14) +| [thecodingmachine/php:7.4-v4-cli-node16](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x`(1) | fat | cli | `16.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node16.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node16) +| [thecodingmachine/php:7.4-v4-cli-node18](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x`(1) | fat | cli | `18.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node18.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node18) +| [thecodingmachine/php:7.4-v4-cli-node20](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x`(1) | fat | cli | `20.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node20.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node20) +| [thecodingmachine/php:7.4-v4-cli-node22](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `7.4.x`(1) | fat | cli | `22.x` | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-cli-node22.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-cli-node22) +| [thecodingmachine/php:7.4-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `7.4.x`(1) | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-apache) +| [thecodingmachine/php:7.4-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `7.4.x`(1) | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-fpm) +| [thecodingmachine/php:7.4-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `7.4.x`(1) | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:7.4-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:7.4-v4-slim-cli) + + +* (1) [PHP 7.4 is end of life](https://www.php.net/supported-versions.php) * (2) [Node 10 is end of life](https://nodejs.org/en/about/releases/) Note: we also tag patch releases of PHP versions. So you can specify a specific patch release using thecodingmachine/php:**8.0.2**-v4-cli for instance. @@ -231,26 +204,26 @@ These images are based on the [official PHP image](https://hub.docker.com/_/php/ Example with CLI: ```bash -$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:8.3-v4-cli php your-script.php +$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app thecodingmachine/php:8.4-v4-cli php your-script.php ``` Example with Apache: ```bash -$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:8.3-v4-apache +$ docker run -p 80:80 --rm --name my-apache-php-app -v "$PWD":/var/www/html thecodingmachine/php:8.4-v4-apache ``` Example with PHP-FPM: ```bash -$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:8.3-v4-fpm +$ docker run -p 9000:9000 --rm --name my-php-fpm -v "$PWD":/var/www/html thecodingmachine/php:8.4-v4-fpm ``` Example with Apache + Node 14.x in a Dockerfile: **Dockerfile** ```Dockerfile -FROM thecodingmachine/php:8.3-v4-apache-node14 +FROM thecodingmachine/php:8.4-v4-apache-node14 COPY src/ /var/www/html/ RUN composer install @@ -264,7 +237,7 @@ This image comes with 2 "types": the *slim* and the **fat** image. These extensions are enabled by default in slim image: `calendar` `ctype` `curl` `date` `dom` `exif` `fileinfo` `filter` `ftp` `gettext` `iconv` `json` `mbstring` `opcache` `openssl` `pcntl` `pcre` `PDO` `Phar` `posix` `readline` `shmop` `Reflection` `session` `shmop` `SimpleXML` `sockets` `sodium` `SPL` `sysvmsg` `sysvsem` `sysvshm` `tokenizer` `xml` `xmlreader` `xmlwriter` `xsl` `zip` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.3-v4-slim-cli php -m` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.4-v4-slim-cli php -m` The slim image provides a simple way to install the other extensions. You would typically use the "slim" image in a `Dockerfile` when building your own custom image. @@ -276,18 +249,16 @@ Below is a list of extensions available in this image: **Enabled by default (in addition to extensions enabled in Slim image):** `apcu`, `hash`, `iconv`, `igbinary`, `mysqli`, `mysqlnd`, `redis`, `soap`, `xsl`, `zlib` and all enabled in slim. -**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `excimer` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` +**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `excimer` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `xdebug` `xmlrpc` `xsl` `yaml` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.3-v4-cli php -m` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.4-v4-cli php -m` **Note**: -- *mcrypt* is not available anymore in PHP 7.3+ -- *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *event*, *gnupg* are not available in PHP 8.0+ - *gettext*, *ev*, *swoole* are not available in PHP 8.1+ - *ev*, *rdkafka*, *snmp*, *swoole* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) -- *ffi* is only available in PHP 7.4+ +- *blackfire* not supported yet in PHP8.4 : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support ### Enabling/disabling extensions in the fat image @@ -299,7 +270,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:8.3-v4-apache-node16 + image: thecodingmachine/php:8.4-v4-apache-node16 environment: # Enable the PostgreSQL extension PHP_EXTENSION_PGSQL: 1 @@ -319,7 +290,7 @@ If you are using the slim image, you can automatically compile the extensions us ```Dockerfile ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql redis soap" -FROM thecodingmachine/php:8.3-v4-slim-apache +FROM thecodingmachine/php:8.4-v4-slim-apache # The build will automatically trigger the download and compilation # of the extensions (thanks to a ONBUILD hook in the slim image) ``` @@ -335,7 +306,7 @@ first FROM): # The PHP_EXTENSIONS ARG will apply to the "slim" image ARG PHP_EXTENSIONS="apcu mysqli pdo_mysql soap" -FROM thecodingmachine/php:8.3-v4-apache-node16 AS builder +FROM thecodingmachine/php:8.4-v4-apache-node16 AS builder COPY --chown=docker:docker sources/web . RUN composer install &&\ @@ -343,7 +314,7 @@ RUN composer install &&\ yarn build # The slim image will automatically build the extensions from the list provided at the very top of the file. -FROM thecodingmachine/php:7.2-v4-slim-apache +FROM thecodingmachine/php:8.4-v4-slim-apache ENV APP_ENV=prod \ APACHE_DOCUMENT_ROOT=public/ @@ -356,7 +327,7 @@ not contain Node, and contains only required extensions. ## Setting parameters in php.ini -By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-8.3/php.ini-development) file that comes with PHP. +By default, the base `php.ini` file used is the [*development* php.ini](https://github.com/php/php-src/blob/PHP-8.4/php.ini-development) file that comes with PHP. You can use the production `php.ini` file using the `TEMPLATE_PHP_INI` environment variable: @@ -371,7 +342,7 @@ You can override parameters in `php.ini` using the PHP_INI_XXX environment varia version: '3' services: my_app: - image: thecodingmachine/php:8.3-v4-apache-node16 + image: thecodingmachine/php:8.4-v4-apache-node16 environment: # set the parameter memory_limit=1g PHP_INI_MEMORY_LIMIT: 1g @@ -433,7 +404,7 @@ For instance: version: '3' services: my_app: - image: thecodingmachine/php:8.3-v4-apache-node16 + image: thecodingmachine/php:8.4-v4-apache-node16 environment: # Enable the DAV extension for Apache APACHE_EXTENSION_DAV: 1 @@ -451,7 +422,7 @@ APACHE_EXTENSIONS="dav ssl" **Apache modules available:** `access_compat` `actions` `alias` `allowmethods` `asis` `auth_basic` `auth_digest` `auth_form` `authn_anon` `authn_core` `authn_dbd` `authn_dbm` `authn_file` `authn_socache` `authnz_fcgi` `authnz_ldap` `authz_core` `authz_dbd` `authz_dbm` `authz_groupfile` `authz_host` `authz_owner` `authz_user` `autoindex` `brotli` `buffer` `cache` `cache_disk` `cache_socache` `cern_meta` `cgi` `cgid` `charset_lite` `data` `dav` `dav_fs` `dav_lock` `dbd` `deflate` `dialup` `dir` `dump_io` `echo` `env` `ext_filter` `expires` `file_cache` `filter` `headers` `heartbeat` `heartmonitor` `http2` `ident` `imagemap` `include` `info` `lbmethod_bybusyness` `lbmethod_byrequests` `lbmethod_bytraffic` `lbmethod_heartbeat` `ldap` `log_debug` `log_forensic` `lua` `macro` `md` `mime` `mime_magic` `mpm_event` `mpm_prefork` `mpm_worker` `negotiation` `php8.0 (depend of your active version)` `proxy` `proxy_ajp` `proxy_balancer` `proxy_connect` `proxy_express` `proxy_fcgi` `proxy_fdpass` `proxy_ftp` `proxy_hcheck` `proxy_html` `proxy_http` `proxy_http2` `proxy_scgi` `proxy_wstunnel` `ratelimit` `reflector` `remoteip` `reqtimeout` `request` `rewrite` `sed` `session` `session_cookie` `session_crypto` `session_dbd` `setenvif` `slotmem_plain` `slotmem_shm` `socache_dbm` `socache_memcache` `socache_redis` `socache_shmcb` `speling` `ssl` `status` `substitute` `suexec` `unique_id` `userdir` `usertrack` `vhost_alias` `xml2enc` -This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.3-v4-slim-apache a2enmod` +This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:8.4-v4-slim-apache a2enmod` ## Debugging @@ -486,7 +457,7 @@ If you use the *slim* images, you can install a NodeJS version with a simple ARG ```Dockerfile ARG NODE_VERSION=14 -FROM thecodingmachine/php:8.3-v4-slim-apache +FROM thecodingmachine/php:8.4-v4-slim-apache # The build will automatically trigger the download of Node 14 # (thanks to a ONBUILD hook in the slim image) ``` @@ -539,7 +510,7 @@ This can be done easily: **Dockerfile** ```Dockerfile -FROM thecodingmachine/php:8.3-v4-apache +FROM thecodingmachine/php:8.4-v4-apache # ... @@ -583,7 +554,7 @@ a single argument before the "FROM" clause in your Dockerfile: ```Dockerfile ARG INSTALL_CRON=1 -FROM thecodingmachine/php:8.3-v4-slim-apache +FROM thecodingmachine/php:8.4-v4-slim-apache # The build triggers automatically the installation of Cron ``` @@ -636,12 +607,12 @@ If such a file is mounted in the image, it will be executed on container startup ```bash docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp \ - -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:8.3-v4-cli php your-script.php + -v $PWD/my-startup-script.sh:/etc/container/startup.sh thecodingmachine/php:8.4-v4-cli php your-script.php ``` ## Using the CLI variant -The CLI images (thecodingmachine/php:8.3-v4-cli) expect a command to be passed in parameter. +The CLI images (thecodingmachine/php:8.4-v4-cli) expect a command to be passed in parameter. You should override the Docker "command". Important! You should not override the Docker "entrypoint". @@ -649,7 +620,7 @@ Important! You should not override the Docker "entrypoint". **Usage in a Dockerfile:** ```Dockerfile -FROM thecodingmachine/php:8.3-v4-cli +FROM thecodingmachine/php:8.4-v4-cli CMD ["php", "myprogram.php", "some_param"] ``` @@ -661,7 +632,7 @@ CMD ["php", "myprogram.php", "some_param"] version: '3' services: my_app: - image: thecodingmachine/php:8.3-v4-cli + image: thecodingmachine/php:8.4-v4-cli command: php myprogram.php some_param ``` @@ -681,7 +652,7 @@ This option is the easiest way to go if you are using the image on a development version: '3' services: my_app: - image: thecodingmachine/php:8.3-v4-apache-node16 + image: thecodingmachine/php:8.4-v4-apache-node16 volumes: - ~/.ssh:/home/docker/.ssh ``` @@ -702,7 +673,7 @@ Now, let's write a Dockerfile. **Dockerfile** ```yml -FROM thecodingmachine/php:8.3-v4-apache +FROM thecodingmachine/php:8.4-v4-apache ARG SSH_PRIVATE_KEY ARG SSH_KNOWN_HOSTS @@ -740,7 +711,7 @@ kind: Pod spec: containers: - name: foobar - image: thecodingmachine/php:8.3-v4-apache + image: thecodingmachine/php:8.4-v4-apache securityContext: allowPrivilegeEscalation: true # never use "false" here. ``` @@ -762,7 +733,7 @@ Your `docker-compose.yml` file will typically look like this: version: '3.3' services: php: - image: thecodingmachine/php:8.3-v4-apache + image: thecodingmachine/php:8.4-v4-apache ports: - "80:80" environment: @@ -788,7 +759,7 @@ If for some reason, the container name is not "blackfire", you can customize the version: '3.3' services: php: - image: thecodingmachine/php:8.3-v4-apache + image: thecodingmachine/php:8.4-v4-apache environment: PHP_EXTENSION_BLACKFIRE: 1 BLACKFIRE_AGENT: myblackfire @@ -823,7 +794,7 @@ This command will generate all the files from the "blueprint" templates. You can then test your changes using the `build-and-test.sh` command: ```bash -PHP_VERSION=8.3 BRANCH=v4 VARIANT=apache ./build-and-test.sh +PHP_VERSION=8.4 BRANCH=v4 VARIANT=apache ./build-and-test.sh ``` ### Additional environment in build-and-test.sh diff --git a/docker-bake.hcl b/docker-bake.hcl index 1ed63a44..5a715f87 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -3,16 +3,36 @@ group "default" { targets = [ + "php84", "php83", "php82", "php81", "php80", "php74", - "php73", - "php72", ] } +group "php84-apache-all" { + targets = [ + "php84-slim-apache", + "php84-apache", + "php84-apache-node22","php84-apache-node20","php84-apache-node18","php84-apache-node16","php84-apache-node14","php84-apache-node12","php84-apache-node10", + ] +} +group "php84-fpm-all" { + targets = [ + "php84-slim-fpm", + "php84-fpm", + "php84-fpm-node22","php84-fpm-node20","php84-fpm-node18","php84-fpm-node16","php84-fpm-node14","php84-fpm-node12","php84-fpm-node10", + ] +} +group "php84-cli-all" { + targets = [ + "php84-slim-cli", + "php84-cli", + "php84-cli-node22","php84-cli-node20","php84-cli-node18","php84-cli-node16","php84-cli-node14","php84-cli-node12","php84-cli-node10", + ] +} group "php83-apache-all" { targets = [ "php83-slim-apache", @@ -118,50 +138,11 @@ group "php74-cli-all" { "php74-cli-node22","php74-cli-node20","php74-cli-node18","php74-cli-node16","php74-cli-node14","php74-cli-node12","php74-cli-node10", ] } -group "php73-apache-all" { - targets = [ - "php73-slim-apache", - "php73-apache", - "php73-apache-node22","php73-apache-node20","php73-apache-node18","php73-apache-node16","php73-apache-node14","php73-apache-node12","php73-apache-node10", - ] -} -group "php73-fpm-all" { - targets = [ - "php73-slim-fpm", - "php73-fpm", - "php73-fpm-node22","php73-fpm-node20","php73-fpm-node18","php73-fpm-node16","php73-fpm-node14","php73-fpm-node12","php73-fpm-node10", - ] -} -group "php73-cli-all" { - targets = [ - "php73-slim-cli", - "php73-cli", - "php73-cli-node22","php73-cli-node20","php73-cli-node18","php73-cli-node16","php73-cli-node14","php73-cli-node12","php73-cli-node10", - ] -} -group "php72-apache-all" { - targets = [ - "php72-slim-apache", - "php72-apache", - "php72-apache-node22","php72-apache-node20","php72-apache-node18","php72-apache-node16","php72-apache-node14","php72-apache-node12","php72-apache-node10", - ] -} -group "php72-fpm-all" { - targets = [ - "php72-slim-fpm", - "php72-fpm", - "php72-fpm-node22","php72-fpm-node20","php72-fpm-node18","php72-fpm-node16","php72-fpm-node14","php72-fpm-node12","php72-fpm-node10", - ] -} -group "php72-cli-all" { - targets = [ - "php72-slim-cli", - "php72-cli", - "php72-cli-node22","php72-cli-node20","php72-cli-node18","php72-cli-node16","php72-cli-node14","php72-cli-node12","php72-cli-node10", - ] -} +group "php84" { + targets = ["php84-apache-all","php84-fpm-all","php84-cli-all",] +} group "php83" { targets = ["php83-apache-all","php83-fpm-all","php83-cli-all",] } @@ -177,12 +158,6 @@ group "php80" { group "php74" { targets = ["php74-apache-all","php74-fpm-all","php74-cli-all",] } -group "php73" { - targets = ["php73-apache-all","php73-fpm-all","php73-cli-all",] -} -group "php72" { - targets = ["php72-apache-all","php72-fpm-all","php72-cli-all",] -} variable "REPO" {default = "thecodingmachine/php"} variable "TAG_PREFIX" {default = ""} @@ -212,2963 +187,2540 @@ target "default" { ########################### -## PHP 8.3 +## PHP 8.4 ########################### -# thecodingmachine/php:8.3-v4-slim-apache -target "php83-slim-apache" { +# thecodingmachine/php:8.4-v4-slim-apache +target "php84-slim-apache" { inherits = ["default"] - tags = tag("8.3", "slim-apache") + tags = tag("8.4", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "apache" } } -# thecodingmachine/php:8.3-v4-apache -target "php83-apache" { +# thecodingmachine/php:8.4-v4-apache +target "php84-apache" { inherits = ["default"] - tags = tag("8.3", "apache") + tags = tag("8.4", "apache") dockerfile = "Dockerfile.apache" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "apache" FROM_IMAGE = "slim" } contexts = { - slim = "target:php83-slim-apache" + slim = "target:php84-slim-apache" } } -# thecodingmachine/php:8.3-v4-apache-node22 -target "php83-apache-node22" { +# thecodingmachine/php:8.4-v4-apache-node22 +target "php84-apache-node22" { inherits = ["default"] - tags = tag("8.3", "apache-node22") + tags = tag("8.4", "apache-node22") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "apache-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php83-apache" + fat = "target:php84-apache" } } -# thecodingmachine/php:8.3-v4-apache-node20 -target "php83-apache-node20" { +# thecodingmachine/php:8.4-v4-apache-node20 +target "php84-apache-node20" { inherits = ["default"] - tags = tag("8.3", "apache-node20") + tags = tag("8.4", "apache-node20") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "apache-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php83-apache" + fat = "target:php84-apache" } } -# thecodingmachine/php:8.3-v4-apache-node18 -target "php83-apache-node18" { +# thecodingmachine/php:8.4-v4-apache-node18 +target "php84-apache-node18" { inherits = ["default"] - tags = tag("8.3", "apache-node18") + tags = tag("8.4", "apache-node18") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "apache-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php83-apache" + fat = "target:php84-apache" } } -# thecodingmachine/php:8.3-v4-apache-node16 -target "php83-apache-node16" { +# thecodingmachine/php:8.4-v4-apache-node16 +target "php84-apache-node16" { inherits = ["default"] - tags = tag("8.3", "apache-node16") + tags = tag("8.4", "apache-node16") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "apache-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php83-apache" + fat = "target:php84-apache" } } -# thecodingmachine/php:8.3-v4-apache-node14 -target "php83-apache-node14" { +# thecodingmachine/php:8.4-v4-apache-node14 +target "php84-apache-node14" { inherits = ["default"] - tags = tag("8.3", "apache-node14") + tags = tag("8.4", "apache-node14") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "apache-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php83-apache" + fat = "target:php84-apache" } } -# thecodingmachine/php:8.3-v4-apache-node12 -target "php83-apache-node12" { +# thecodingmachine/php:8.4-v4-apache-node12 +target "php84-apache-node12" { inherits = ["default"] - tags = tag("8.3", "apache-node12") + tags = tag("8.4", "apache-node12") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "apache-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php83-apache" + fat = "target:php84-apache" } } -# thecodingmachine/php:8.3-v4-apache-node10 -target "php83-apache-node10" { +# thecodingmachine/php:8.4-v4-apache-node10 +target "php84-apache-node10" { inherits = ["default"] - tags = tag("8.3", "apache-node10") + tags = tag("8.4", "apache-node10") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "apache-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php83-apache" + fat = "target:php84-apache" } } ########################### -## PHP 8.3 +## PHP 8.4 ########################### -# thecodingmachine/php:8.3-v4-slim-fpm -target "php83-slim-fpm" { +# thecodingmachine/php:8.4-v4-slim-fpm +target "php84-slim-fpm" { inherits = ["default"] - tags = tag("8.3", "slim-fpm") + tags = tag("8.4", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "fpm" } } -# thecodingmachine/php:8.3-v4-fpm -target "php83-fpm" { +# thecodingmachine/php:8.4-v4-fpm +target "php84-fpm" { inherits = ["default"] - tags = tag("8.3", "fpm") + tags = tag("8.4", "fpm") dockerfile = "Dockerfile.fpm" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "fpm" FROM_IMAGE = "slim" } contexts = { - slim = "target:php83-slim-fpm" + slim = "target:php84-slim-fpm" } } -# thecodingmachine/php:8.3-v4-fpm-node22 -target "php83-fpm-node22" { +# thecodingmachine/php:8.4-v4-fpm-node22 +target "php84-fpm-node22" { inherits = ["default"] - tags = tag("8.3", "fpm-node22") + tags = tag("8.4", "fpm-node22") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "fpm-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php83-fpm" + fat = "target:php84-fpm" } } -# thecodingmachine/php:8.3-v4-fpm-node20 -target "php83-fpm-node20" { +# thecodingmachine/php:8.4-v4-fpm-node20 +target "php84-fpm-node20" { inherits = ["default"] - tags = tag("8.3", "fpm-node20") + tags = tag("8.4", "fpm-node20") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "fpm-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php83-fpm" + fat = "target:php84-fpm" } } -# thecodingmachine/php:8.3-v4-fpm-node18 -target "php83-fpm-node18" { +# thecodingmachine/php:8.4-v4-fpm-node18 +target "php84-fpm-node18" { inherits = ["default"] - tags = tag("8.3", "fpm-node18") + tags = tag("8.4", "fpm-node18") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "fpm-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php83-fpm" + fat = "target:php84-fpm" } } -# thecodingmachine/php:8.3-v4-fpm-node16 -target "php83-fpm-node16" { +# thecodingmachine/php:8.4-v4-fpm-node16 +target "php84-fpm-node16" { inherits = ["default"] - tags = tag("8.3", "fpm-node16") + tags = tag("8.4", "fpm-node16") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "fpm-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php83-fpm" + fat = "target:php84-fpm" } } -# thecodingmachine/php:8.3-v4-fpm-node14 -target "php83-fpm-node14" { +# thecodingmachine/php:8.4-v4-fpm-node14 +target "php84-fpm-node14" { inherits = ["default"] - tags = tag("8.3", "fpm-node14") + tags = tag("8.4", "fpm-node14") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "fpm-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php83-fpm" + fat = "target:php84-fpm" } } -# thecodingmachine/php:8.3-v4-fpm-node12 -target "php83-fpm-node12" { +# thecodingmachine/php:8.4-v4-fpm-node12 +target "php84-fpm-node12" { inherits = ["default"] - tags = tag("8.3", "fpm-node12") + tags = tag("8.4", "fpm-node12") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "fpm-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php83-fpm" + fat = "target:php84-fpm" } } -# thecodingmachine/php:8.3-v4-fpm-node10 -target "php83-fpm-node10" { +# thecodingmachine/php:8.4-v4-fpm-node10 +target "php84-fpm-node10" { inherits = ["default"] - tags = tag("8.3", "fpm-node10") + tags = tag("8.4", "fpm-node10") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "fpm-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php83-fpm" + fat = "target:php84-fpm" } } ########################### -## PHP 8.3 +## PHP 8.4 ########################### -# thecodingmachine/php:8.3-v4-slim-cli -target "php83-slim-cli" { +# thecodingmachine/php:8.4-v4-slim-cli +target "php84-slim-cli" { inherits = ["default"] - tags = tag("8.3", "slim-cli") + tags = tag("8.4", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "cli" } } -# thecodingmachine/php:8.3-v4-cli -target "php83-cli" { +# thecodingmachine/php:8.4-v4-cli +target "php84-cli" { inherits = ["default"] - tags = tag("8.3", "cli") + tags = tag("8.4", "cli") dockerfile = "Dockerfile.cli" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "cli" FROM_IMAGE = "slim" } contexts = { - slim = "target:php83-slim-cli" + slim = "target:php84-slim-cli" } } -# thecodingmachine/php:8.3-v4-cli-node22 -target "php83-cli-node22" { +# thecodingmachine/php:8.4-v4-cli-node22 +target "php84-cli-node22" { inherits = ["default"] - tags = tag("8.3", "cli-node22") + tags = tag("8.4", "cli-node22") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "cli-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php83-cli" + fat = "target:php84-cli" } } -# thecodingmachine/php:8.3-v4-cli-node20 -target "php83-cli-node20" { +# thecodingmachine/php:8.4-v4-cli-node20 +target "php84-cli-node20" { inherits = ["default"] - tags = tag("8.3", "cli-node20") + tags = tag("8.4", "cli-node20") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "cli-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php83-cli" + fat = "target:php84-cli" } } -# thecodingmachine/php:8.3-v4-cli-node18 -target "php83-cli-node18" { +# thecodingmachine/php:8.4-v4-cli-node18 +target "php84-cli-node18" { inherits = ["default"] - tags = tag("8.3", "cli-node18") + tags = tag("8.4", "cli-node18") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "cli-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php83-cli" + fat = "target:php84-cli" } } -# thecodingmachine/php:8.3-v4-cli-node16 -target "php83-cli-node16" { +# thecodingmachine/php:8.4-v4-cli-node16 +target "php84-cli-node16" { inherits = ["default"] - tags = tag("8.3", "cli-node16") + tags = tag("8.4", "cli-node16") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "cli-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php83-cli" + fat = "target:php84-cli" } } -# thecodingmachine/php:8.3-v4-cli-node14 -target "php83-cli-node14" { +# thecodingmachine/php:8.4-v4-cli-node14 +target "php84-cli-node14" { inherits = ["default"] - tags = tag("8.3", "cli-node14") + tags = tag("8.4", "cli-node14") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "cli-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php83-cli" + fat = "target:php84-cli" } } -# thecodingmachine/php:8.3-v4-cli-node12 -target "php83-cli-node12" { +# thecodingmachine/php:8.4-v4-cli-node12 +target "php84-cli-node12" { inherits = ["default"] - tags = tag("8.3", "cli-node12") + tags = tag("8.4", "cli-node12") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "cli-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php83-cli" + fat = "target:php84-cli" } } -# thecodingmachine/php:8.3-v4-cli-node10 -target "php83-cli-node10" { +# thecodingmachine/php:8.4-v4-cli-node10 +target "php84-cli-node10" { inherits = ["default"] - tags = tag("8.3", "cli-node10") + tags = tag("8.4", "cli-node10") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.3" + PHP_VERSION = "8.4" VARIANT = "cli-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php83-cli" + fat = "target:php84-cli" } } ########################### -## PHP 8.2 +## PHP 8.3 ########################### -# thecodingmachine/php:8.2-v4-slim-apache -target "php82-slim-apache" { +# thecodingmachine/php:8.3-v4-slim-apache +target "php83-slim-apache" { inherits = ["default"] - tags = tag("8.2", "slim-apache") + tags = tag("8.3", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { - PHP_VERSION = "8.2" + PHP_VERSION = "8.3" VARIANT = "apache" } } -# thecodingmachine/php:8.2-v4-apache -target "php82-apache" { +# thecodingmachine/php:8.3-v4-apache +target "php83-apache" { inherits = ["default"] - tags = tag("8.2", "apache") + tags = tag("8.3", "apache") dockerfile = "Dockerfile.apache" args = { - PHP_VERSION = "8.2" + PHP_VERSION = "8.3" VARIANT = "apache" FROM_IMAGE = "slim" } contexts = { - slim = "target:php82-slim-apache" + slim = "target:php83-slim-apache" } } -# thecodingmachine/php:8.2-v4-apache-node22 -target "php82-apache-node22" { +# thecodingmachine/php:8.3-v4-apache-node22 +target "php83-apache-node22" { inherits = ["default"] - tags = tag("8.2", "apache-node22") + tags = tag("8.3", "apache-node22") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.2" + PHP_VERSION = "8.3" VARIANT = "apache-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php82-apache" + fat = "target:php83-apache" } } -# thecodingmachine/php:8.2-v4-apache-node20 -target "php82-apache-node20" { +# thecodingmachine/php:8.3-v4-apache-node20 +target "php83-apache-node20" { inherits = ["default"] - tags = tag("8.2", "apache-node20") + tags = tag("8.3", "apache-node20") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.2" + PHP_VERSION = "8.3" VARIANT = "apache-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php82-apache" + fat = "target:php83-apache" } } -# thecodingmachine/php:8.2-v4-apache-node18 -target "php82-apache-node18" { +# thecodingmachine/php:8.3-v4-apache-node18 +target "php83-apache-node18" { inherits = ["default"] - tags = tag("8.2", "apache-node18") + tags = tag("8.3", "apache-node18") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.2" + PHP_VERSION = "8.3" VARIANT = "apache-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php82-apache" + fat = "target:php83-apache" } } -# thecodingmachine/php:8.2-v4-apache-node16 -target "php82-apache-node16" { +# thecodingmachine/php:8.3-v4-apache-node16 +target "php83-apache-node16" { inherits = ["default"] - tags = tag("8.2", "apache-node16") + tags = tag("8.3", "apache-node16") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.2" + PHP_VERSION = "8.3" VARIANT = "apache-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php82-apache" + fat = "target:php83-apache" } } -# thecodingmachine/php:8.2-v4-apache-node14 -target "php82-apache-node14" { +# thecodingmachine/php:8.3-v4-apache-node14 +target "php83-apache-node14" { inherits = ["default"] - tags = tag("8.2", "apache-node14") + tags = tag("8.3", "apache-node14") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.2" + PHP_VERSION = "8.3" VARIANT = "apache-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php82-apache" + fat = "target:php83-apache" } } -# thecodingmachine/php:8.2-v4-apache-node12 -target "php82-apache-node12" { +# thecodingmachine/php:8.3-v4-apache-node12 +target "php83-apache-node12" { inherits = ["default"] - tags = tag("8.2", "apache-node12") + tags = tag("8.3", "apache-node12") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.2" + PHP_VERSION = "8.3" VARIANT = "apache-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php82-apache" + fat = "target:php83-apache" } } -# thecodingmachine/php:8.2-v4-apache-node10 -target "php82-apache-node10" { +# thecodingmachine/php:8.3-v4-apache-node10 +target "php83-apache-node10" { inherits = ["default"] - tags = tag("8.2", "apache-node10") + tags = tag("8.3", "apache-node10") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.2" + PHP_VERSION = "8.3" VARIANT = "apache-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php82-apache" + fat = "target:php83-apache" } } ########################### -## PHP 8.2 -########################### -# thecodingmachine/php:8.2-v4-slim-fpm -target "php82-slim-fpm" { - inherits = ["default"] - tags = tag("8.2", "slim-fpm") - dockerfile = "Dockerfile.slim.fpm" - args = { - PHP_VERSION = "8.2" - VARIANT = "fpm" - } -} - -# thecodingmachine/php:8.2-v4-fpm -target "php82-fpm" { - inherits = ["default"] - tags = tag("8.2", "fpm") - dockerfile = "Dockerfile.fpm" - args = { - PHP_VERSION = "8.2" - VARIANT = "fpm" - FROM_IMAGE = "slim" - } - contexts = { - slim = "target:php82-slim-fpm" - } -} - -# thecodingmachine/php:8.2-v4-fpm-node22 -target "php82-fpm-node22" { - inherits = ["default"] - tags = tag("8.2", "fpm-node22") - dockerfile = "Dockerfile.fpm.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "fpm-node22" - FROM_IMAGE = "fat" - NODE_VERSION = "22" - } - contexts = { - fat = "target:php82-fpm" - } -} - -# thecodingmachine/php:8.2-v4-fpm-node20 -target "php82-fpm-node20" { - inherits = ["default"] - tags = tag("8.2", "fpm-node20") - dockerfile = "Dockerfile.fpm.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "fpm-node20" - FROM_IMAGE = "fat" - NODE_VERSION = "20" - } - contexts = { - fat = "target:php82-fpm" - } -} - -# thecodingmachine/php:8.2-v4-fpm-node18 -target "php82-fpm-node18" { - inherits = ["default"] - tags = tag("8.2", "fpm-node18") - dockerfile = "Dockerfile.fpm.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "fpm-node18" - FROM_IMAGE = "fat" - NODE_VERSION = "18" - } - contexts = { - fat = "target:php82-fpm" - } -} - -# thecodingmachine/php:8.2-v4-fpm-node16 -target "php82-fpm-node16" { - inherits = ["default"] - tags = tag("8.2", "fpm-node16") - dockerfile = "Dockerfile.fpm.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "fpm-node16" - FROM_IMAGE = "fat" - NODE_VERSION = "16" - } - contexts = { - fat = "target:php82-fpm" - } -} - -# thecodingmachine/php:8.2-v4-fpm-node14 -target "php82-fpm-node14" { - inherits = ["default"] - tags = tag("8.2", "fpm-node14") - dockerfile = "Dockerfile.fpm.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "fpm-node14" - FROM_IMAGE = "fat" - NODE_VERSION = "14" - } - contexts = { - fat = "target:php82-fpm" - } -} - -# thecodingmachine/php:8.2-v4-fpm-node12 -target "php82-fpm-node12" { - inherits = ["default"] - tags = tag("8.2", "fpm-node12") - dockerfile = "Dockerfile.fpm.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "fpm-node12" - FROM_IMAGE = "fat" - NODE_VERSION = "12" - } - contexts = { - fat = "target:php82-fpm" - } -} - -# thecodingmachine/php:8.2-v4-fpm-node10 -target "php82-fpm-node10" { - inherits = ["default"] - tags = tag("8.2", "fpm-node10") - dockerfile = "Dockerfile.fpm.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "fpm-node10" - FROM_IMAGE = "fat" - NODE_VERSION = "10" - } - contexts = { - fat = "target:php82-fpm" - } -} - -########################### -## PHP 8.2 -########################### -# thecodingmachine/php:8.2-v4-slim-cli -target "php82-slim-cli" { - inherits = ["default"] - tags = tag("8.2", "slim-cli") - dockerfile = "Dockerfile.slim.cli" - args = { - PHP_VERSION = "8.2" - VARIANT = "cli" - } -} - -# thecodingmachine/php:8.2-v4-cli -target "php82-cli" { - inherits = ["default"] - tags = tag("8.2", "cli") - dockerfile = "Dockerfile.cli" - args = { - PHP_VERSION = "8.2" - VARIANT = "cli" - FROM_IMAGE = "slim" - } - contexts = { - slim = "target:php82-slim-cli" - } -} - -# thecodingmachine/php:8.2-v4-cli-node22 -target "php82-cli-node22" { - inherits = ["default"] - tags = tag("8.2", "cli-node22") - dockerfile = "Dockerfile.cli.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "cli-node22" - FROM_IMAGE = "fat" - NODE_VERSION = "22" - } - contexts = { - fat = "target:php82-cli" - } -} - -# thecodingmachine/php:8.2-v4-cli-node20 -target "php82-cli-node20" { - inherits = ["default"] - tags = tag("8.2", "cli-node20") - dockerfile = "Dockerfile.cli.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "cli-node20" - FROM_IMAGE = "fat" - NODE_VERSION = "20" - } - contexts = { - fat = "target:php82-cli" - } -} - -# thecodingmachine/php:8.2-v4-cli-node18 -target "php82-cli-node18" { - inherits = ["default"] - tags = tag("8.2", "cli-node18") - dockerfile = "Dockerfile.cli.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "cli-node18" - FROM_IMAGE = "fat" - NODE_VERSION = "18" - } - contexts = { - fat = "target:php82-cli" - } -} - -# thecodingmachine/php:8.2-v4-cli-node16 -target "php82-cli-node16" { - inherits = ["default"] - tags = tag("8.2", "cli-node16") - dockerfile = "Dockerfile.cli.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "cli-node16" - FROM_IMAGE = "fat" - NODE_VERSION = "16" - } - contexts = { - fat = "target:php82-cli" - } -} - -# thecodingmachine/php:8.2-v4-cli-node14 -target "php82-cli-node14" { - inherits = ["default"] - tags = tag("8.2", "cli-node14") - dockerfile = "Dockerfile.cli.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "cli-node14" - FROM_IMAGE = "fat" - NODE_VERSION = "14" - } - contexts = { - fat = "target:php82-cli" - } -} - -# thecodingmachine/php:8.2-v4-cli-node12 -target "php82-cli-node12" { - inherits = ["default"] - tags = tag("8.2", "cli-node12") - dockerfile = "Dockerfile.cli.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "cli-node12" - FROM_IMAGE = "fat" - NODE_VERSION = "12" - } - contexts = { - fat = "target:php82-cli" - } -} - -# thecodingmachine/php:8.2-v4-cli-node10 -target "php82-cli-node10" { - inherits = ["default"] - tags = tag("8.2", "cli-node10") - dockerfile = "Dockerfile.cli.node" - args = { - PHP_VERSION = "8.2" - VARIANT = "cli-node10" - FROM_IMAGE = "fat" - NODE_VERSION = "10" - } - contexts = { - fat = "target:php82-cli" - } -} - -########################### -## PHP 8.1 -########################### -# thecodingmachine/php:8.1-v4-slim-apache -target "php81-slim-apache" { - inherits = ["default"] - tags = tag("8.1", "slim-apache") - dockerfile = "Dockerfile.slim.apache" - args = { - PHP_VERSION = "8.1" - VARIANT = "apache" - } -} - -# thecodingmachine/php:8.1-v4-apache -target "php81-apache" { - inherits = ["default"] - tags = tag("8.1", "apache") - dockerfile = "Dockerfile.apache" - args = { - PHP_VERSION = "8.1" - VARIANT = "apache" - FROM_IMAGE = "slim" - } - contexts = { - slim = "target:php81-slim-apache" - } -} - -# thecodingmachine/php:8.1-v4-apache-node22 -target "php81-apache-node22" { - inherits = ["default"] - tags = tag("8.1", "apache-node22") - dockerfile = "Dockerfile.apache.node" - args = { - PHP_VERSION = "8.1" - VARIANT = "apache-node22" - FROM_IMAGE = "fat" - NODE_VERSION = "22" - } - contexts = { - fat = "target:php81-apache" - } -} - -# thecodingmachine/php:8.1-v4-apache-node20 -target "php81-apache-node20" { - inherits = ["default"] - tags = tag("8.1", "apache-node20") - dockerfile = "Dockerfile.apache.node" - args = { - PHP_VERSION = "8.1" - VARIANT = "apache-node20" - FROM_IMAGE = "fat" - NODE_VERSION = "20" - } - contexts = { - fat = "target:php81-apache" - } -} - -# thecodingmachine/php:8.1-v4-apache-node18 -target "php81-apache-node18" { - inherits = ["default"] - tags = tag("8.1", "apache-node18") - dockerfile = "Dockerfile.apache.node" - args = { - PHP_VERSION = "8.1" - VARIANT = "apache-node18" - FROM_IMAGE = "fat" - NODE_VERSION = "18" - } - contexts = { - fat = "target:php81-apache" - } -} - -# thecodingmachine/php:8.1-v4-apache-node16 -target "php81-apache-node16" { - inherits = ["default"] - tags = tag("8.1", "apache-node16") - dockerfile = "Dockerfile.apache.node" - args = { - PHP_VERSION = "8.1" - VARIANT = "apache-node16" - FROM_IMAGE = "fat" - NODE_VERSION = "16" - } - contexts = { - fat = "target:php81-apache" - } -} - -# thecodingmachine/php:8.1-v4-apache-node14 -target "php81-apache-node14" { - inherits = ["default"] - tags = tag("8.1", "apache-node14") - dockerfile = "Dockerfile.apache.node" - args = { - PHP_VERSION = "8.1" - VARIANT = "apache-node14" - FROM_IMAGE = "fat" - NODE_VERSION = "14" - } - contexts = { - fat = "target:php81-apache" - } -} - -# thecodingmachine/php:8.1-v4-apache-node12 -target "php81-apache-node12" { - inherits = ["default"] - tags = tag("8.1", "apache-node12") - dockerfile = "Dockerfile.apache.node" - args = { - PHP_VERSION = "8.1" - VARIANT = "apache-node12" - FROM_IMAGE = "fat" - NODE_VERSION = "12" - } - contexts = { - fat = "target:php81-apache" - } -} - -# thecodingmachine/php:8.1-v4-apache-node10 -target "php81-apache-node10" { - inherits = ["default"] - tags = tag("8.1", "apache-node10") - dockerfile = "Dockerfile.apache.node" - args = { - PHP_VERSION = "8.1" - VARIANT = "apache-node10" - FROM_IMAGE = "fat" - NODE_VERSION = "10" - } - contexts = { - fat = "target:php81-apache" - } -} - -########################### -## PHP 8.1 +## PHP 8.3 ########################### -# thecodingmachine/php:8.1-v4-slim-fpm -target "php81-slim-fpm" { +# thecodingmachine/php:8.3-v4-slim-fpm +target "php83-slim-fpm" { inherits = ["default"] - tags = tag("8.1", "slim-fpm") + tags = tag("8.3", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "fpm" } } -# thecodingmachine/php:8.1-v4-fpm -target "php81-fpm" { +# thecodingmachine/php:8.3-v4-fpm +target "php83-fpm" { inherits = ["default"] - tags = tag("8.1", "fpm") + tags = tag("8.3", "fpm") dockerfile = "Dockerfile.fpm" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "fpm" FROM_IMAGE = "slim" } contexts = { - slim = "target:php81-slim-fpm" + slim = "target:php83-slim-fpm" } } -# thecodingmachine/php:8.1-v4-fpm-node22 -target "php81-fpm-node22" { +# thecodingmachine/php:8.3-v4-fpm-node22 +target "php83-fpm-node22" { inherits = ["default"] - tags = tag("8.1", "fpm-node22") + tags = tag("8.3", "fpm-node22") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "fpm-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php81-fpm" + fat = "target:php83-fpm" } } -# thecodingmachine/php:8.1-v4-fpm-node20 -target "php81-fpm-node20" { +# thecodingmachine/php:8.3-v4-fpm-node20 +target "php83-fpm-node20" { inherits = ["default"] - tags = tag("8.1", "fpm-node20") + tags = tag("8.3", "fpm-node20") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "fpm-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php81-fpm" + fat = "target:php83-fpm" } } -# thecodingmachine/php:8.1-v4-fpm-node18 -target "php81-fpm-node18" { +# thecodingmachine/php:8.3-v4-fpm-node18 +target "php83-fpm-node18" { inherits = ["default"] - tags = tag("8.1", "fpm-node18") + tags = tag("8.3", "fpm-node18") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "fpm-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php81-fpm" + fat = "target:php83-fpm" } } -# thecodingmachine/php:8.1-v4-fpm-node16 -target "php81-fpm-node16" { +# thecodingmachine/php:8.3-v4-fpm-node16 +target "php83-fpm-node16" { inherits = ["default"] - tags = tag("8.1", "fpm-node16") + tags = tag("8.3", "fpm-node16") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "fpm-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php81-fpm" + fat = "target:php83-fpm" } } -# thecodingmachine/php:8.1-v4-fpm-node14 -target "php81-fpm-node14" { +# thecodingmachine/php:8.3-v4-fpm-node14 +target "php83-fpm-node14" { inherits = ["default"] - tags = tag("8.1", "fpm-node14") + tags = tag("8.3", "fpm-node14") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "fpm-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php81-fpm" + fat = "target:php83-fpm" } } -# thecodingmachine/php:8.1-v4-fpm-node12 -target "php81-fpm-node12" { +# thecodingmachine/php:8.3-v4-fpm-node12 +target "php83-fpm-node12" { inherits = ["default"] - tags = tag("8.1", "fpm-node12") + tags = tag("8.3", "fpm-node12") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "fpm-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php81-fpm" + fat = "target:php83-fpm" } } -# thecodingmachine/php:8.1-v4-fpm-node10 -target "php81-fpm-node10" { +# thecodingmachine/php:8.3-v4-fpm-node10 +target "php83-fpm-node10" { inherits = ["default"] - tags = tag("8.1", "fpm-node10") + tags = tag("8.3", "fpm-node10") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "fpm-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php81-fpm" + fat = "target:php83-fpm" } } ########################### -## PHP 8.1 +## PHP 8.3 ########################### -# thecodingmachine/php:8.1-v4-slim-cli -target "php81-slim-cli" { +# thecodingmachine/php:8.3-v4-slim-cli +target "php83-slim-cli" { inherits = ["default"] - tags = tag("8.1", "slim-cli") + tags = tag("8.3", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "cli" } } -# thecodingmachine/php:8.1-v4-cli -target "php81-cli" { +# thecodingmachine/php:8.3-v4-cli +target "php83-cli" { inherits = ["default"] - tags = tag("8.1", "cli") + tags = tag("8.3", "cli") dockerfile = "Dockerfile.cli" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "cli" FROM_IMAGE = "slim" } contexts = { - slim = "target:php81-slim-cli" + slim = "target:php83-slim-cli" } } -# thecodingmachine/php:8.1-v4-cli-node22 -target "php81-cli-node22" { +# thecodingmachine/php:8.3-v4-cli-node22 +target "php83-cli-node22" { inherits = ["default"] - tags = tag("8.1", "cli-node22") + tags = tag("8.3", "cli-node22") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "cli-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php81-cli" + fat = "target:php83-cli" } } -# thecodingmachine/php:8.1-v4-cli-node20 -target "php81-cli-node20" { +# thecodingmachine/php:8.3-v4-cli-node20 +target "php83-cli-node20" { inherits = ["default"] - tags = tag("8.1", "cli-node20") + tags = tag("8.3", "cli-node20") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "cli-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php81-cli" + fat = "target:php83-cli" } } -# thecodingmachine/php:8.1-v4-cli-node18 -target "php81-cli-node18" { +# thecodingmachine/php:8.3-v4-cli-node18 +target "php83-cli-node18" { inherits = ["default"] - tags = tag("8.1", "cli-node18") + tags = tag("8.3", "cli-node18") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "cli-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php81-cli" + fat = "target:php83-cli" } } -# thecodingmachine/php:8.1-v4-cli-node16 -target "php81-cli-node16" { +# thecodingmachine/php:8.3-v4-cli-node16 +target "php83-cli-node16" { inherits = ["default"] - tags = tag("8.1", "cli-node16") + tags = tag("8.3", "cli-node16") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "cli-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php81-cli" + fat = "target:php83-cli" } } -# thecodingmachine/php:8.1-v4-cli-node14 -target "php81-cli-node14" { +# thecodingmachine/php:8.3-v4-cli-node14 +target "php83-cli-node14" { inherits = ["default"] - tags = tag("8.1", "cli-node14") + tags = tag("8.3", "cli-node14") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "cli-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php81-cli" + fat = "target:php83-cli" } } -# thecodingmachine/php:8.1-v4-cli-node12 -target "php81-cli-node12" { +# thecodingmachine/php:8.3-v4-cli-node12 +target "php83-cli-node12" { inherits = ["default"] - tags = tag("8.1", "cli-node12") + tags = tag("8.3", "cli-node12") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "cli-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php81-cli" + fat = "target:php83-cli" } } -# thecodingmachine/php:8.1-v4-cli-node10 -target "php81-cli-node10" { +# thecodingmachine/php:8.3-v4-cli-node10 +target "php83-cli-node10" { inherits = ["default"] - tags = tag("8.1", "cli-node10") + tags = tag("8.3", "cli-node10") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.1" + PHP_VERSION = "8.3" VARIANT = "cli-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php81-cli" + fat = "target:php83-cli" } } ########################### -## PHP 8.0 +## PHP 8.2 ########################### -# thecodingmachine/php:8.0-v4-slim-apache -target "php80-slim-apache" { +# thecodingmachine/php:8.2-v4-slim-apache +target "php82-slim-apache" { inherits = ["default"] - tags = tag("8.0", "slim-apache") + tags = tag("8.2", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "apache" } } -# thecodingmachine/php:8.0-v4-apache -target "php80-apache" { +# thecodingmachine/php:8.2-v4-apache +target "php82-apache" { inherits = ["default"] - tags = tag("8.0", "apache") + tags = tag("8.2", "apache") dockerfile = "Dockerfile.apache" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "apache" FROM_IMAGE = "slim" } contexts = { - slim = "target:php80-slim-apache" + slim = "target:php82-slim-apache" } } -# thecodingmachine/php:8.0-v4-apache-node22 -target "php80-apache-node22" { +# thecodingmachine/php:8.2-v4-apache-node22 +target "php82-apache-node22" { inherits = ["default"] - tags = tag("8.0", "apache-node22") + tags = tag("8.2", "apache-node22") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "apache-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php80-apache" + fat = "target:php82-apache" } } -# thecodingmachine/php:8.0-v4-apache-node20 -target "php80-apache-node20" { +# thecodingmachine/php:8.2-v4-apache-node20 +target "php82-apache-node20" { inherits = ["default"] - tags = tag("8.0", "apache-node20") + tags = tag("8.2", "apache-node20") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "apache-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php80-apache" + fat = "target:php82-apache" } } -# thecodingmachine/php:8.0-v4-apache-node18 -target "php80-apache-node18" { +# thecodingmachine/php:8.2-v4-apache-node18 +target "php82-apache-node18" { inherits = ["default"] - tags = tag("8.0", "apache-node18") + tags = tag("8.2", "apache-node18") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "apache-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php80-apache" + fat = "target:php82-apache" } } -# thecodingmachine/php:8.0-v4-apache-node16 -target "php80-apache-node16" { +# thecodingmachine/php:8.2-v4-apache-node16 +target "php82-apache-node16" { inherits = ["default"] - tags = tag("8.0", "apache-node16") + tags = tag("8.2", "apache-node16") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "apache-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php80-apache" + fat = "target:php82-apache" } } -# thecodingmachine/php:8.0-v4-apache-node14 -target "php80-apache-node14" { +# thecodingmachine/php:8.2-v4-apache-node14 +target "php82-apache-node14" { inherits = ["default"] - tags = tag("8.0", "apache-node14") + tags = tag("8.2", "apache-node14") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "apache-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php80-apache" + fat = "target:php82-apache" } } -# thecodingmachine/php:8.0-v4-apache-node12 -target "php80-apache-node12" { +# thecodingmachine/php:8.2-v4-apache-node12 +target "php82-apache-node12" { inherits = ["default"] - tags = tag("8.0", "apache-node12") + tags = tag("8.2", "apache-node12") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "apache-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php80-apache" + fat = "target:php82-apache" } } -# thecodingmachine/php:8.0-v4-apache-node10 -target "php80-apache-node10" { +# thecodingmachine/php:8.2-v4-apache-node10 +target "php82-apache-node10" { inherits = ["default"] - tags = tag("8.0", "apache-node10") + tags = tag("8.2", "apache-node10") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "apache-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php80-apache" + fat = "target:php82-apache" } } ########################### -## PHP 8.0 +## PHP 8.2 ########################### -# thecodingmachine/php:8.0-v4-slim-fpm -target "php80-slim-fpm" { +# thecodingmachine/php:8.2-v4-slim-fpm +target "php82-slim-fpm" { inherits = ["default"] - tags = tag("8.0", "slim-fpm") + tags = tag("8.2", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "fpm" } } -# thecodingmachine/php:8.0-v4-fpm -target "php80-fpm" { +# thecodingmachine/php:8.2-v4-fpm +target "php82-fpm" { inherits = ["default"] - tags = tag("8.0", "fpm") + tags = tag("8.2", "fpm") dockerfile = "Dockerfile.fpm" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "fpm" FROM_IMAGE = "slim" } contexts = { - slim = "target:php80-slim-fpm" + slim = "target:php82-slim-fpm" } } -# thecodingmachine/php:8.0-v4-fpm-node22 -target "php80-fpm-node22" { +# thecodingmachine/php:8.2-v4-fpm-node22 +target "php82-fpm-node22" { inherits = ["default"] - tags = tag("8.0", "fpm-node22") + tags = tag("8.2", "fpm-node22") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "fpm-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php80-fpm" + fat = "target:php82-fpm" } } -# thecodingmachine/php:8.0-v4-fpm-node20 -target "php80-fpm-node20" { +# thecodingmachine/php:8.2-v4-fpm-node20 +target "php82-fpm-node20" { inherits = ["default"] - tags = tag("8.0", "fpm-node20") + tags = tag("8.2", "fpm-node20") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "fpm-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php80-fpm" + fat = "target:php82-fpm" } } -# thecodingmachine/php:8.0-v4-fpm-node18 -target "php80-fpm-node18" { +# thecodingmachine/php:8.2-v4-fpm-node18 +target "php82-fpm-node18" { inherits = ["default"] - tags = tag("8.0", "fpm-node18") + tags = tag("8.2", "fpm-node18") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "fpm-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php80-fpm" + fat = "target:php82-fpm" } } -# thecodingmachine/php:8.0-v4-fpm-node16 -target "php80-fpm-node16" { +# thecodingmachine/php:8.2-v4-fpm-node16 +target "php82-fpm-node16" { inherits = ["default"] - tags = tag("8.0", "fpm-node16") + tags = tag("8.2", "fpm-node16") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "fpm-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php80-fpm" + fat = "target:php82-fpm" } } -# thecodingmachine/php:8.0-v4-fpm-node14 -target "php80-fpm-node14" { +# thecodingmachine/php:8.2-v4-fpm-node14 +target "php82-fpm-node14" { inherits = ["default"] - tags = tag("8.0", "fpm-node14") + tags = tag("8.2", "fpm-node14") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "fpm-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php80-fpm" + fat = "target:php82-fpm" } } -# thecodingmachine/php:8.0-v4-fpm-node12 -target "php80-fpm-node12" { +# thecodingmachine/php:8.2-v4-fpm-node12 +target "php82-fpm-node12" { inherits = ["default"] - tags = tag("8.0", "fpm-node12") + tags = tag("8.2", "fpm-node12") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "fpm-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php80-fpm" + fat = "target:php82-fpm" } } -# thecodingmachine/php:8.0-v4-fpm-node10 -target "php80-fpm-node10" { +# thecodingmachine/php:8.2-v4-fpm-node10 +target "php82-fpm-node10" { inherits = ["default"] - tags = tag("8.0", "fpm-node10") + tags = tag("8.2", "fpm-node10") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "fpm-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php80-fpm" + fat = "target:php82-fpm" } } ########################### -## PHP 8.0 +## PHP 8.2 ########################### -# thecodingmachine/php:8.0-v4-slim-cli -target "php80-slim-cli" { +# thecodingmachine/php:8.2-v4-slim-cli +target "php82-slim-cli" { inherits = ["default"] - tags = tag("8.0", "slim-cli") + tags = tag("8.2", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "cli" } } -# thecodingmachine/php:8.0-v4-cli -target "php80-cli" { +# thecodingmachine/php:8.2-v4-cli +target "php82-cli" { inherits = ["default"] - tags = tag("8.0", "cli") + tags = tag("8.2", "cli") dockerfile = "Dockerfile.cli" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "cli" FROM_IMAGE = "slim" } contexts = { - slim = "target:php80-slim-cli" + slim = "target:php82-slim-cli" } } -# thecodingmachine/php:8.0-v4-cli-node22 -target "php80-cli-node22" { +# thecodingmachine/php:8.2-v4-cli-node22 +target "php82-cli-node22" { inherits = ["default"] - tags = tag("8.0", "cli-node22") + tags = tag("8.2", "cli-node22") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "cli-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php80-cli" + fat = "target:php82-cli" } } -# thecodingmachine/php:8.0-v4-cli-node20 -target "php80-cli-node20" { +# thecodingmachine/php:8.2-v4-cli-node20 +target "php82-cli-node20" { inherits = ["default"] - tags = tag("8.0", "cli-node20") + tags = tag("8.2", "cli-node20") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "cli-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php80-cli" + fat = "target:php82-cli" } } -# thecodingmachine/php:8.0-v4-cli-node18 -target "php80-cli-node18" { +# thecodingmachine/php:8.2-v4-cli-node18 +target "php82-cli-node18" { inherits = ["default"] - tags = tag("8.0", "cli-node18") + tags = tag("8.2", "cli-node18") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "cli-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php80-cli" + fat = "target:php82-cli" } } -# thecodingmachine/php:8.0-v4-cli-node16 -target "php80-cli-node16" { +# thecodingmachine/php:8.2-v4-cli-node16 +target "php82-cli-node16" { inherits = ["default"] - tags = tag("8.0", "cli-node16") + tags = tag("8.2", "cli-node16") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "cli-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php80-cli" + fat = "target:php82-cli" } } -# thecodingmachine/php:8.0-v4-cli-node14 -target "php80-cli-node14" { +# thecodingmachine/php:8.2-v4-cli-node14 +target "php82-cli-node14" { inherits = ["default"] - tags = tag("8.0", "cli-node14") + tags = tag("8.2", "cli-node14") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "cli-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php80-cli" + fat = "target:php82-cli" } } -# thecodingmachine/php:8.0-v4-cli-node12 -target "php80-cli-node12" { +# thecodingmachine/php:8.2-v4-cli-node12 +target "php82-cli-node12" { inherits = ["default"] - tags = tag("8.0", "cli-node12") + tags = tag("8.2", "cli-node12") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "cli-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php80-cli" + fat = "target:php82-cli" } } -# thecodingmachine/php:8.0-v4-cli-node10 -target "php80-cli-node10" { +# thecodingmachine/php:8.2-v4-cli-node10 +target "php82-cli-node10" { inherits = ["default"] - tags = tag("8.0", "cli-node10") + tags = tag("8.2", "cli-node10") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "8.0" + PHP_VERSION = "8.2" VARIANT = "cli-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php80-cli" + fat = "target:php82-cli" } } ########################### -## PHP 7.4 +## PHP 8.1 ########################### -# thecodingmachine/php:7.4-v4-slim-apache -target "php74-slim-apache" { +# thecodingmachine/php:8.1-v4-slim-apache +target "php81-slim-apache" { inherits = ["default"] - tags = tag("7.4", "slim-apache") + tags = tag("8.1", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "apache" } } -# thecodingmachine/php:7.4-v4-apache -target "php74-apache" { +# thecodingmachine/php:8.1-v4-apache +target "php81-apache" { inherits = ["default"] - tags = tag("7.4", "apache") + tags = tag("8.1", "apache") dockerfile = "Dockerfile.apache" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "apache" FROM_IMAGE = "slim" } contexts = { - slim = "target:php74-slim-apache" + slim = "target:php81-slim-apache" } } -# thecodingmachine/php:7.4-v4-apache-node22 -target "php74-apache-node22" { +# thecodingmachine/php:8.1-v4-apache-node22 +target "php81-apache-node22" { inherits = ["default"] - tags = tag("7.4", "apache-node22") + tags = tag("8.1", "apache-node22") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "apache-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php74-apache" + fat = "target:php81-apache" } } -# thecodingmachine/php:7.4-v4-apache-node20 -target "php74-apache-node20" { +# thecodingmachine/php:8.1-v4-apache-node20 +target "php81-apache-node20" { inherits = ["default"] - tags = tag("7.4", "apache-node20") + tags = tag("8.1", "apache-node20") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "apache-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php74-apache" + fat = "target:php81-apache" } } -# thecodingmachine/php:7.4-v4-apache-node18 -target "php74-apache-node18" { +# thecodingmachine/php:8.1-v4-apache-node18 +target "php81-apache-node18" { inherits = ["default"] - tags = tag("7.4", "apache-node18") + tags = tag("8.1", "apache-node18") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "apache-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php74-apache" + fat = "target:php81-apache" } } -# thecodingmachine/php:7.4-v4-apache-node16 -target "php74-apache-node16" { +# thecodingmachine/php:8.1-v4-apache-node16 +target "php81-apache-node16" { inherits = ["default"] - tags = tag("7.4", "apache-node16") + tags = tag("8.1", "apache-node16") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "apache-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php74-apache" + fat = "target:php81-apache" } } -# thecodingmachine/php:7.4-v4-apache-node14 -target "php74-apache-node14" { +# thecodingmachine/php:8.1-v4-apache-node14 +target "php81-apache-node14" { inherits = ["default"] - tags = tag("7.4", "apache-node14") + tags = tag("8.1", "apache-node14") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "apache-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php74-apache" + fat = "target:php81-apache" } } -# thecodingmachine/php:7.4-v4-apache-node12 -target "php74-apache-node12" { +# thecodingmachine/php:8.1-v4-apache-node12 +target "php81-apache-node12" { inherits = ["default"] - tags = tag("7.4", "apache-node12") + tags = tag("8.1", "apache-node12") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "apache-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php74-apache" + fat = "target:php81-apache" } } -# thecodingmachine/php:7.4-v4-apache-node10 -target "php74-apache-node10" { +# thecodingmachine/php:8.1-v4-apache-node10 +target "php81-apache-node10" { inherits = ["default"] - tags = tag("7.4", "apache-node10") + tags = tag("8.1", "apache-node10") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "apache-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php74-apache" + fat = "target:php81-apache" } } ########################### -## PHP 7.4 +## PHP 8.1 ########################### -# thecodingmachine/php:7.4-v4-slim-fpm -target "php74-slim-fpm" { +# thecodingmachine/php:8.1-v4-slim-fpm +target "php81-slim-fpm" { inherits = ["default"] - tags = tag("7.4", "slim-fpm") + tags = tag("8.1", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "fpm" } } -# thecodingmachine/php:7.4-v4-fpm -target "php74-fpm" { +# thecodingmachine/php:8.1-v4-fpm +target "php81-fpm" { inherits = ["default"] - tags = tag("7.4", "fpm") + tags = tag("8.1", "fpm") dockerfile = "Dockerfile.fpm" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "fpm" FROM_IMAGE = "slim" } contexts = { - slim = "target:php74-slim-fpm" + slim = "target:php81-slim-fpm" } } -# thecodingmachine/php:7.4-v4-fpm-node22 -target "php74-fpm-node22" { +# thecodingmachine/php:8.1-v4-fpm-node22 +target "php81-fpm-node22" { inherits = ["default"] - tags = tag("7.4", "fpm-node22") + tags = tag("8.1", "fpm-node22") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "fpm-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php74-fpm" + fat = "target:php81-fpm" } } -# thecodingmachine/php:7.4-v4-fpm-node20 -target "php74-fpm-node20" { +# thecodingmachine/php:8.1-v4-fpm-node20 +target "php81-fpm-node20" { inherits = ["default"] - tags = tag("7.4", "fpm-node20") + tags = tag("8.1", "fpm-node20") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "fpm-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php74-fpm" + fat = "target:php81-fpm" } } -# thecodingmachine/php:7.4-v4-fpm-node18 -target "php74-fpm-node18" { +# thecodingmachine/php:8.1-v4-fpm-node18 +target "php81-fpm-node18" { inherits = ["default"] - tags = tag("7.4", "fpm-node18") + tags = tag("8.1", "fpm-node18") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "fpm-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php74-fpm" + fat = "target:php81-fpm" } } -# thecodingmachine/php:7.4-v4-fpm-node16 -target "php74-fpm-node16" { +# thecodingmachine/php:8.1-v4-fpm-node16 +target "php81-fpm-node16" { inherits = ["default"] - tags = tag("7.4", "fpm-node16") + tags = tag("8.1", "fpm-node16") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "fpm-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php74-fpm" + fat = "target:php81-fpm" } } -# thecodingmachine/php:7.4-v4-fpm-node14 -target "php74-fpm-node14" { +# thecodingmachine/php:8.1-v4-fpm-node14 +target "php81-fpm-node14" { inherits = ["default"] - tags = tag("7.4", "fpm-node14") + tags = tag("8.1", "fpm-node14") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "fpm-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php74-fpm" + fat = "target:php81-fpm" } } -# thecodingmachine/php:7.4-v4-fpm-node12 -target "php74-fpm-node12" { +# thecodingmachine/php:8.1-v4-fpm-node12 +target "php81-fpm-node12" { inherits = ["default"] - tags = tag("7.4", "fpm-node12") + tags = tag("8.1", "fpm-node12") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "fpm-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php74-fpm" + fat = "target:php81-fpm" } } -# thecodingmachine/php:7.4-v4-fpm-node10 -target "php74-fpm-node10" { +# thecodingmachine/php:8.1-v4-fpm-node10 +target "php81-fpm-node10" { inherits = ["default"] - tags = tag("7.4", "fpm-node10") + tags = tag("8.1", "fpm-node10") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "fpm-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php74-fpm" + fat = "target:php81-fpm" } } ########################### -## PHP 7.4 +## PHP 8.1 ########################### -# thecodingmachine/php:7.4-v4-slim-cli -target "php74-slim-cli" { +# thecodingmachine/php:8.1-v4-slim-cli +target "php81-slim-cli" { inherits = ["default"] - tags = tag("7.4", "slim-cli") + tags = tag("8.1", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "cli" } } -# thecodingmachine/php:7.4-v4-cli -target "php74-cli" { +# thecodingmachine/php:8.1-v4-cli +target "php81-cli" { inherits = ["default"] - tags = tag("7.4", "cli") + tags = tag("8.1", "cli") dockerfile = "Dockerfile.cli" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "cli" FROM_IMAGE = "slim" } contexts = { - slim = "target:php74-slim-cli" + slim = "target:php81-slim-cli" } } -# thecodingmachine/php:7.4-v4-cli-node22 -target "php74-cli-node22" { +# thecodingmachine/php:8.1-v4-cli-node22 +target "php81-cli-node22" { inherits = ["default"] - tags = tag("7.4", "cli-node22") + tags = tag("8.1", "cli-node22") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "cli-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php74-cli" + fat = "target:php81-cli" } } -# thecodingmachine/php:7.4-v4-cli-node20 -target "php74-cli-node20" { +# thecodingmachine/php:8.1-v4-cli-node20 +target "php81-cli-node20" { inherits = ["default"] - tags = tag("7.4", "cli-node20") + tags = tag("8.1", "cli-node20") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "cli-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php74-cli" + fat = "target:php81-cli" } } -# thecodingmachine/php:7.4-v4-cli-node18 -target "php74-cli-node18" { +# thecodingmachine/php:8.1-v4-cli-node18 +target "php81-cli-node18" { inherits = ["default"] - tags = tag("7.4", "cli-node18") + tags = tag("8.1", "cli-node18") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "cli-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php74-cli" + fat = "target:php81-cli" } } -# thecodingmachine/php:7.4-v4-cli-node16 -target "php74-cli-node16" { +# thecodingmachine/php:8.1-v4-cli-node16 +target "php81-cli-node16" { inherits = ["default"] - tags = tag("7.4", "cli-node16") + tags = tag("8.1", "cli-node16") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "cli-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php74-cli" + fat = "target:php81-cli" } } -# thecodingmachine/php:7.4-v4-cli-node14 -target "php74-cli-node14" { +# thecodingmachine/php:8.1-v4-cli-node14 +target "php81-cli-node14" { inherits = ["default"] - tags = tag("7.4", "cli-node14") + tags = tag("8.1", "cli-node14") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "cli-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php74-cli" + fat = "target:php81-cli" } } -# thecodingmachine/php:7.4-v4-cli-node12 -target "php74-cli-node12" { +# thecodingmachine/php:8.1-v4-cli-node12 +target "php81-cli-node12" { inherits = ["default"] - tags = tag("7.4", "cli-node12") + tags = tag("8.1", "cli-node12") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "cli-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php74-cli" + fat = "target:php81-cli" } } -# thecodingmachine/php:7.4-v4-cli-node10 -target "php74-cli-node10" { +# thecodingmachine/php:8.1-v4-cli-node10 +target "php81-cli-node10" { inherits = ["default"] - tags = tag("7.4", "cli-node10") + tags = tag("8.1", "cli-node10") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.4" + PHP_VERSION = "8.1" VARIANT = "cli-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php74-cli" + fat = "target:php81-cli" } } ########################### -## PHP 7.3 +## PHP 8.0 ########################### -# thecodingmachine/php:7.3-v4-slim-apache -target "php73-slim-apache" { +# thecodingmachine/php:8.0-v4-slim-apache +target "php80-slim-apache" { inherits = ["default"] - tags = tag("7.3", "slim-apache") + tags = tag("8.0", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "apache" } } -# thecodingmachine/php:7.3-v4-apache -target "php73-apache" { +# thecodingmachine/php:8.0-v4-apache +target "php80-apache" { inherits = ["default"] - tags = tag("7.3", "apache") + tags = tag("8.0", "apache") dockerfile = "Dockerfile.apache" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "apache" FROM_IMAGE = "slim" } contexts = { - slim = "target:php73-slim-apache" + slim = "target:php80-slim-apache" } } -# thecodingmachine/php:7.3-v4-apache-node22 -target "php73-apache-node22" { +# thecodingmachine/php:8.0-v4-apache-node22 +target "php80-apache-node22" { inherits = ["default"] - tags = tag("7.3", "apache-node22") + tags = tag("8.0", "apache-node22") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "apache-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php73-apache" + fat = "target:php80-apache" } } -# thecodingmachine/php:7.3-v4-apache-node20 -target "php73-apache-node20" { +# thecodingmachine/php:8.0-v4-apache-node20 +target "php80-apache-node20" { inherits = ["default"] - tags = tag("7.3", "apache-node20") + tags = tag("8.0", "apache-node20") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "apache-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php73-apache" + fat = "target:php80-apache" } } -# thecodingmachine/php:7.3-v4-apache-node18 -target "php73-apache-node18" { +# thecodingmachine/php:8.0-v4-apache-node18 +target "php80-apache-node18" { inherits = ["default"] - tags = tag("7.3", "apache-node18") + tags = tag("8.0", "apache-node18") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "apache-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php73-apache" + fat = "target:php80-apache" } } -# thecodingmachine/php:7.3-v4-apache-node16 -target "php73-apache-node16" { +# thecodingmachine/php:8.0-v4-apache-node16 +target "php80-apache-node16" { inherits = ["default"] - tags = tag("7.3", "apache-node16") + tags = tag("8.0", "apache-node16") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "apache-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php73-apache" + fat = "target:php80-apache" } } -# thecodingmachine/php:7.3-v4-apache-node14 -target "php73-apache-node14" { +# thecodingmachine/php:8.0-v4-apache-node14 +target "php80-apache-node14" { inherits = ["default"] - tags = tag("7.3", "apache-node14") + tags = tag("8.0", "apache-node14") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "apache-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php73-apache" + fat = "target:php80-apache" } } -# thecodingmachine/php:7.3-v4-apache-node12 -target "php73-apache-node12" { +# thecodingmachine/php:8.0-v4-apache-node12 +target "php80-apache-node12" { inherits = ["default"] - tags = tag("7.3", "apache-node12") + tags = tag("8.0", "apache-node12") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "apache-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php73-apache" + fat = "target:php80-apache" } } -# thecodingmachine/php:7.3-v4-apache-node10 -target "php73-apache-node10" { +# thecodingmachine/php:8.0-v4-apache-node10 +target "php80-apache-node10" { inherits = ["default"] - tags = tag("7.3", "apache-node10") + tags = tag("8.0", "apache-node10") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "apache-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php73-apache" + fat = "target:php80-apache" } } ########################### -## PHP 7.3 +## PHP 8.0 ########################### -# thecodingmachine/php:7.3-v4-slim-fpm -target "php73-slim-fpm" { +# thecodingmachine/php:8.0-v4-slim-fpm +target "php80-slim-fpm" { inherits = ["default"] - tags = tag("7.3", "slim-fpm") + tags = tag("8.0", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "fpm" } } -# thecodingmachine/php:7.3-v4-fpm -target "php73-fpm" { +# thecodingmachine/php:8.0-v4-fpm +target "php80-fpm" { inherits = ["default"] - tags = tag("7.3", "fpm") + tags = tag("8.0", "fpm") dockerfile = "Dockerfile.fpm" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "fpm" FROM_IMAGE = "slim" } contexts = { - slim = "target:php73-slim-fpm" + slim = "target:php80-slim-fpm" } } -# thecodingmachine/php:7.3-v4-fpm-node22 -target "php73-fpm-node22" { +# thecodingmachine/php:8.0-v4-fpm-node22 +target "php80-fpm-node22" { inherits = ["default"] - tags = tag("7.3", "fpm-node22") + tags = tag("8.0", "fpm-node22") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "fpm-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php73-fpm" + fat = "target:php80-fpm" } } -# thecodingmachine/php:7.3-v4-fpm-node20 -target "php73-fpm-node20" { +# thecodingmachine/php:8.0-v4-fpm-node20 +target "php80-fpm-node20" { inherits = ["default"] - tags = tag("7.3", "fpm-node20") + tags = tag("8.0", "fpm-node20") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "fpm-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php73-fpm" + fat = "target:php80-fpm" } } -# thecodingmachine/php:7.3-v4-fpm-node18 -target "php73-fpm-node18" { +# thecodingmachine/php:8.0-v4-fpm-node18 +target "php80-fpm-node18" { inherits = ["default"] - tags = tag("7.3", "fpm-node18") + tags = tag("8.0", "fpm-node18") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "fpm-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php73-fpm" + fat = "target:php80-fpm" } } -# thecodingmachine/php:7.3-v4-fpm-node16 -target "php73-fpm-node16" { +# thecodingmachine/php:8.0-v4-fpm-node16 +target "php80-fpm-node16" { inherits = ["default"] - tags = tag("7.3", "fpm-node16") + tags = tag("8.0", "fpm-node16") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "fpm-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php73-fpm" + fat = "target:php80-fpm" } } -# thecodingmachine/php:7.3-v4-fpm-node14 -target "php73-fpm-node14" { +# thecodingmachine/php:8.0-v4-fpm-node14 +target "php80-fpm-node14" { inherits = ["default"] - tags = tag("7.3", "fpm-node14") + tags = tag("8.0", "fpm-node14") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "fpm-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php73-fpm" + fat = "target:php80-fpm" } } -# thecodingmachine/php:7.3-v4-fpm-node12 -target "php73-fpm-node12" { +# thecodingmachine/php:8.0-v4-fpm-node12 +target "php80-fpm-node12" { inherits = ["default"] - tags = tag("7.3", "fpm-node12") + tags = tag("8.0", "fpm-node12") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "fpm-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php73-fpm" + fat = "target:php80-fpm" } } -# thecodingmachine/php:7.3-v4-fpm-node10 -target "php73-fpm-node10" { +# thecodingmachine/php:8.0-v4-fpm-node10 +target "php80-fpm-node10" { inherits = ["default"] - tags = tag("7.3", "fpm-node10") + tags = tag("8.0", "fpm-node10") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "fpm-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php73-fpm" + fat = "target:php80-fpm" } } ########################### -## PHP 7.3 +## PHP 8.0 ########################### -# thecodingmachine/php:7.3-v4-slim-cli -target "php73-slim-cli" { +# thecodingmachine/php:8.0-v4-slim-cli +target "php80-slim-cli" { inherits = ["default"] - tags = tag("7.3", "slim-cli") + tags = tag("8.0", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "cli" } } -# thecodingmachine/php:7.3-v4-cli -target "php73-cli" { +# thecodingmachine/php:8.0-v4-cli +target "php80-cli" { inherits = ["default"] - tags = tag("7.3", "cli") + tags = tag("8.0", "cli") dockerfile = "Dockerfile.cli" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "cli" FROM_IMAGE = "slim" } contexts = { - slim = "target:php73-slim-cli" + slim = "target:php80-slim-cli" } } -# thecodingmachine/php:7.3-v4-cli-node22 -target "php73-cli-node22" { +# thecodingmachine/php:8.0-v4-cli-node22 +target "php80-cli-node22" { inherits = ["default"] - tags = tag("7.3", "cli-node22") + tags = tag("8.0", "cli-node22") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "cli-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php73-cli" + fat = "target:php80-cli" } } -# thecodingmachine/php:7.3-v4-cli-node20 -target "php73-cli-node20" { +# thecodingmachine/php:8.0-v4-cli-node20 +target "php80-cli-node20" { inherits = ["default"] - tags = tag("7.3", "cli-node20") + tags = tag("8.0", "cli-node20") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "cli-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php73-cli" + fat = "target:php80-cli" } } -# thecodingmachine/php:7.3-v4-cli-node18 -target "php73-cli-node18" { +# thecodingmachine/php:8.0-v4-cli-node18 +target "php80-cli-node18" { inherits = ["default"] - tags = tag("7.3", "cli-node18") + tags = tag("8.0", "cli-node18") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "cli-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php73-cli" + fat = "target:php80-cli" } } -# thecodingmachine/php:7.3-v4-cli-node16 -target "php73-cli-node16" { +# thecodingmachine/php:8.0-v4-cli-node16 +target "php80-cli-node16" { inherits = ["default"] - tags = tag("7.3", "cli-node16") + tags = tag("8.0", "cli-node16") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "cli-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php73-cli" + fat = "target:php80-cli" } } -# thecodingmachine/php:7.3-v4-cli-node14 -target "php73-cli-node14" { +# thecodingmachine/php:8.0-v4-cli-node14 +target "php80-cli-node14" { inherits = ["default"] - tags = tag("7.3", "cli-node14") + tags = tag("8.0", "cli-node14") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "cli-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php73-cli" + fat = "target:php80-cli" } } -# thecodingmachine/php:7.3-v4-cli-node12 -target "php73-cli-node12" { +# thecodingmachine/php:8.0-v4-cli-node12 +target "php80-cli-node12" { inherits = ["default"] - tags = tag("7.3", "cli-node12") + tags = tag("8.0", "cli-node12") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "cli-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php73-cli" + fat = "target:php80-cli" } } -# thecodingmachine/php:7.3-v4-cli-node10 -target "php73-cli-node10" { +# thecodingmachine/php:8.0-v4-cli-node10 +target "php80-cli-node10" { inherits = ["default"] - tags = tag("7.3", "cli-node10") + tags = tag("8.0", "cli-node10") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.3" + PHP_VERSION = "8.0" VARIANT = "cli-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php73-cli" + fat = "target:php80-cli" } } ########################### -## PHP 7.2 +## PHP 7.4 ########################### -# thecodingmachine/php:7.2-v4-slim-apache -target "php72-slim-apache" { +# thecodingmachine/php:7.4-v4-slim-apache +target "php74-slim-apache" { inherits = ["default"] - tags = tag("7.2", "slim-apache") + tags = tag("7.4", "slim-apache") dockerfile = "Dockerfile.slim.apache" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "apache" } } -# thecodingmachine/php:7.2-v4-apache -target "php72-apache" { +# thecodingmachine/php:7.4-v4-apache +target "php74-apache" { inherits = ["default"] - tags = tag("7.2", "apache") + tags = tag("7.4", "apache") dockerfile = "Dockerfile.apache" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "apache" FROM_IMAGE = "slim" } contexts = { - slim = "target:php72-slim-apache" + slim = "target:php74-slim-apache" } } -# thecodingmachine/php:7.2-v4-apache-node22 -target "php72-apache-node22" { +# thecodingmachine/php:7.4-v4-apache-node22 +target "php74-apache-node22" { inherits = ["default"] - tags = tag("7.2", "apache-node22") + tags = tag("7.4", "apache-node22") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "apache-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php72-apache" + fat = "target:php74-apache" } } -# thecodingmachine/php:7.2-v4-apache-node20 -target "php72-apache-node20" { +# thecodingmachine/php:7.4-v4-apache-node20 +target "php74-apache-node20" { inherits = ["default"] - tags = tag("7.2", "apache-node20") + tags = tag("7.4", "apache-node20") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "apache-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php72-apache" + fat = "target:php74-apache" } } -# thecodingmachine/php:7.2-v4-apache-node18 -target "php72-apache-node18" { +# thecodingmachine/php:7.4-v4-apache-node18 +target "php74-apache-node18" { inherits = ["default"] - tags = tag("7.2", "apache-node18") + tags = tag("7.4", "apache-node18") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "apache-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php72-apache" + fat = "target:php74-apache" } } -# thecodingmachine/php:7.2-v4-apache-node16 -target "php72-apache-node16" { +# thecodingmachine/php:7.4-v4-apache-node16 +target "php74-apache-node16" { inherits = ["default"] - tags = tag("7.2", "apache-node16") + tags = tag("7.4", "apache-node16") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "apache-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php72-apache" + fat = "target:php74-apache" } } -# thecodingmachine/php:7.2-v4-apache-node14 -target "php72-apache-node14" { +# thecodingmachine/php:7.4-v4-apache-node14 +target "php74-apache-node14" { inherits = ["default"] - tags = tag("7.2", "apache-node14") + tags = tag("7.4", "apache-node14") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "apache-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php72-apache" + fat = "target:php74-apache" } } -# thecodingmachine/php:7.2-v4-apache-node12 -target "php72-apache-node12" { +# thecodingmachine/php:7.4-v4-apache-node12 +target "php74-apache-node12" { inherits = ["default"] - tags = tag("7.2", "apache-node12") + tags = tag("7.4", "apache-node12") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "apache-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php72-apache" + fat = "target:php74-apache" } } -# thecodingmachine/php:7.2-v4-apache-node10 -target "php72-apache-node10" { +# thecodingmachine/php:7.4-v4-apache-node10 +target "php74-apache-node10" { inherits = ["default"] - tags = tag("7.2", "apache-node10") + tags = tag("7.4", "apache-node10") dockerfile = "Dockerfile.apache.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "apache-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php72-apache" + fat = "target:php74-apache" } } ########################### -## PHP 7.2 +## PHP 7.4 ########################### -# thecodingmachine/php:7.2-v4-slim-fpm -target "php72-slim-fpm" { +# thecodingmachine/php:7.4-v4-slim-fpm +target "php74-slim-fpm" { inherits = ["default"] - tags = tag("7.2", "slim-fpm") + tags = tag("7.4", "slim-fpm") dockerfile = "Dockerfile.slim.fpm" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "fpm" } } -# thecodingmachine/php:7.2-v4-fpm -target "php72-fpm" { +# thecodingmachine/php:7.4-v4-fpm +target "php74-fpm" { inherits = ["default"] - tags = tag("7.2", "fpm") + tags = tag("7.4", "fpm") dockerfile = "Dockerfile.fpm" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "fpm" FROM_IMAGE = "slim" } contexts = { - slim = "target:php72-slim-fpm" + slim = "target:php74-slim-fpm" } } -# thecodingmachine/php:7.2-v4-fpm-node22 -target "php72-fpm-node22" { +# thecodingmachine/php:7.4-v4-fpm-node22 +target "php74-fpm-node22" { inherits = ["default"] - tags = tag("7.2", "fpm-node22") + tags = tag("7.4", "fpm-node22") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "fpm-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php72-fpm" + fat = "target:php74-fpm" } } -# thecodingmachine/php:7.2-v4-fpm-node20 -target "php72-fpm-node20" { +# thecodingmachine/php:7.4-v4-fpm-node20 +target "php74-fpm-node20" { inherits = ["default"] - tags = tag("7.2", "fpm-node20") + tags = tag("7.4", "fpm-node20") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "fpm-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php72-fpm" + fat = "target:php74-fpm" } } -# thecodingmachine/php:7.2-v4-fpm-node18 -target "php72-fpm-node18" { +# thecodingmachine/php:7.4-v4-fpm-node18 +target "php74-fpm-node18" { inherits = ["default"] - tags = tag("7.2", "fpm-node18") + tags = tag("7.4", "fpm-node18") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "fpm-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php72-fpm" + fat = "target:php74-fpm" } } -# thecodingmachine/php:7.2-v4-fpm-node16 -target "php72-fpm-node16" { +# thecodingmachine/php:7.4-v4-fpm-node16 +target "php74-fpm-node16" { inherits = ["default"] - tags = tag("7.2", "fpm-node16") + tags = tag("7.4", "fpm-node16") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "fpm-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php72-fpm" + fat = "target:php74-fpm" } } -# thecodingmachine/php:7.2-v4-fpm-node14 -target "php72-fpm-node14" { +# thecodingmachine/php:7.4-v4-fpm-node14 +target "php74-fpm-node14" { inherits = ["default"] - tags = tag("7.2", "fpm-node14") + tags = tag("7.4", "fpm-node14") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "fpm-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php72-fpm" + fat = "target:php74-fpm" } } -# thecodingmachine/php:7.2-v4-fpm-node12 -target "php72-fpm-node12" { +# thecodingmachine/php:7.4-v4-fpm-node12 +target "php74-fpm-node12" { inherits = ["default"] - tags = tag("7.2", "fpm-node12") + tags = tag("7.4", "fpm-node12") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "fpm-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php72-fpm" + fat = "target:php74-fpm" } } -# thecodingmachine/php:7.2-v4-fpm-node10 -target "php72-fpm-node10" { +# thecodingmachine/php:7.4-v4-fpm-node10 +target "php74-fpm-node10" { inherits = ["default"] - tags = tag("7.2", "fpm-node10") + tags = tag("7.4", "fpm-node10") dockerfile = "Dockerfile.fpm.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "fpm-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php72-fpm" + fat = "target:php74-fpm" } } ########################### -## PHP 7.2 +## PHP 7.4 ########################### -# thecodingmachine/php:7.2-v4-slim-cli -target "php72-slim-cli" { +# thecodingmachine/php:7.4-v4-slim-cli +target "php74-slim-cli" { inherits = ["default"] - tags = tag("7.2", "slim-cli") + tags = tag("7.4", "slim-cli") dockerfile = "Dockerfile.slim.cli" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "cli" } } -# thecodingmachine/php:7.2-v4-cli -target "php72-cli" { +# thecodingmachine/php:7.4-v4-cli +target "php74-cli" { inherits = ["default"] - tags = tag("7.2", "cli") + tags = tag("7.4", "cli") dockerfile = "Dockerfile.cli" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "cli" FROM_IMAGE = "slim" } contexts = { - slim = "target:php72-slim-cli" + slim = "target:php74-slim-cli" } } -# thecodingmachine/php:7.2-v4-cli-node22 -target "php72-cli-node22" { +# thecodingmachine/php:7.4-v4-cli-node22 +target "php74-cli-node22" { inherits = ["default"] - tags = tag("7.2", "cli-node22") + tags = tag("7.4", "cli-node22") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "cli-node22" FROM_IMAGE = "fat" NODE_VERSION = "22" } contexts = { - fat = "target:php72-cli" + fat = "target:php74-cli" } } -# thecodingmachine/php:7.2-v4-cli-node20 -target "php72-cli-node20" { +# thecodingmachine/php:7.4-v4-cli-node20 +target "php74-cli-node20" { inherits = ["default"] - tags = tag("7.2", "cli-node20") + tags = tag("7.4", "cli-node20") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "cli-node20" FROM_IMAGE = "fat" NODE_VERSION = "20" } contexts = { - fat = "target:php72-cli" + fat = "target:php74-cli" } } -# thecodingmachine/php:7.2-v4-cli-node18 -target "php72-cli-node18" { +# thecodingmachine/php:7.4-v4-cli-node18 +target "php74-cli-node18" { inherits = ["default"] - tags = tag("7.2", "cli-node18") + tags = tag("7.4", "cli-node18") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "cli-node18" FROM_IMAGE = "fat" NODE_VERSION = "18" } contexts = { - fat = "target:php72-cli" + fat = "target:php74-cli" } } -# thecodingmachine/php:7.2-v4-cli-node16 -target "php72-cli-node16" { +# thecodingmachine/php:7.4-v4-cli-node16 +target "php74-cli-node16" { inherits = ["default"] - tags = tag("7.2", "cli-node16") + tags = tag("7.4", "cli-node16") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "cli-node16" FROM_IMAGE = "fat" NODE_VERSION = "16" } contexts = { - fat = "target:php72-cli" + fat = "target:php74-cli" } } -# thecodingmachine/php:7.2-v4-cli-node14 -target "php72-cli-node14" { +# thecodingmachine/php:7.4-v4-cli-node14 +target "php74-cli-node14" { inherits = ["default"] - tags = tag("7.2", "cli-node14") + tags = tag("7.4", "cli-node14") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "cli-node14" FROM_IMAGE = "fat" NODE_VERSION = "14" } contexts = { - fat = "target:php72-cli" + fat = "target:php74-cli" } } -# thecodingmachine/php:7.2-v4-cli-node12 -target "php72-cli-node12" { +# thecodingmachine/php:7.4-v4-cli-node12 +target "php74-cli-node12" { inherits = ["default"] - tags = tag("7.2", "cli-node12") + tags = tag("7.4", "cli-node12") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "cli-node12" FROM_IMAGE = "fat" NODE_VERSION = "12" } contexts = { - fat = "target:php72-cli" + fat = "target:php74-cli" } } -# thecodingmachine/php:7.2-v4-cli-node10 -target "php72-cli-node10" { +# thecodingmachine/php:7.4-v4-cli-node10 +target "php74-cli-node10" { inherits = ["default"] - tags = tag("7.2", "cli-node10") + tags = tag("7.4", "cli-node10") dockerfile = "Dockerfile.cli.node" args = { - PHP_VERSION = "7.2" + PHP_VERSION = "7.4" VARIANT = "cli-node10" FROM_IMAGE = "fat" NODE_VERSION = "10" } contexts = { - fat = "target:php72-cli" + fat = "target:php74-cli" } } diff --git a/extensions/7.2/ev b/extensions/7.2/ev deleted file mode 120000 index d523a2c1..00000000 --- a/extensions/7.2/ev +++ /dev/null @@ -1 +0,0 @@ -../core/ev \ No newline at end of file diff --git a/extensions/7.2/event b/extensions/7.2/event deleted file mode 120000 index 67569f41..00000000 --- a/extensions/7.2/event +++ /dev/null @@ -1 +0,0 @@ -../core/event \ No newline at end of file diff --git a/extensions/7.2/gnupg b/extensions/7.2/gnupg deleted file mode 120000 index 002cc7b2..00000000 --- a/extensions/7.2/gnupg +++ /dev/null @@ -1 +0,0 @@ -../core/gnupg \ No newline at end of file diff --git a/extensions/7.2/mcrypt b/extensions/7.2/mcrypt deleted file mode 120000 index f548d014..00000000 --- a/extensions/7.2/mcrypt +++ /dev/null @@ -1 +0,0 @@ -../core/mcrypt \ No newline at end of file diff --git a/extensions/7.2/swoole b/extensions/7.2/swoole deleted file mode 120000 index f20d56ed..00000000 --- a/extensions/7.2/swoole +++ /dev/null @@ -1 +0,0 @@ -../core/swoole \ No newline at end of file diff --git a/extensions/7.2/weakref b/extensions/7.2/weakref deleted file mode 120000 index 172cf7e0..00000000 --- a/extensions/7.2/weakref +++ /dev/null @@ -1 +0,0 @@ -../core/weakref \ No newline at end of file diff --git a/extensions/7.3/amqp b/extensions/7.3/amqp deleted file mode 120000 index f66005fc..00000000 --- a/extensions/7.3/amqp +++ /dev/null @@ -1 +0,0 @@ -../core/amqp \ No newline at end of file diff --git a/extensions/7.3/apcu b/extensions/7.3/apcu deleted file mode 120000 index ddbb93d6..00000000 --- a/extensions/7.3/apcu +++ /dev/null @@ -1 +0,0 @@ -../core/apcu \ No newline at end of file diff --git a/extensions/7.3/ast b/extensions/7.3/ast deleted file mode 120000 index 5241c003..00000000 --- a/extensions/7.3/ast +++ /dev/null @@ -1 +0,0 @@ -../core/ast \ No newline at end of file diff --git a/extensions/7.3/bcmath b/extensions/7.3/bcmath deleted file mode 120000 index 36953ef1..00000000 --- a/extensions/7.3/bcmath +++ /dev/null @@ -1 +0,0 @@ -../core/bcmath \ No newline at end of file diff --git a/extensions/7.3/blackfire b/extensions/7.3/blackfire deleted file mode 120000 index 1179c0b9..00000000 --- a/extensions/7.3/blackfire +++ /dev/null @@ -1 +0,0 @@ -../core/blackfire \ No newline at end of file diff --git a/extensions/7.3/bz2 b/extensions/7.3/bz2 deleted file mode 120000 index 34eaa01d..00000000 --- a/extensions/7.3/bz2 +++ /dev/null @@ -1 +0,0 @@ -../core/bz2 \ No newline at end of file diff --git a/extensions/7.3/dba b/extensions/7.3/dba deleted file mode 120000 index f9598d4d..00000000 --- a/extensions/7.3/dba +++ /dev/null @@ -1 +0,0 @@ -../core/dba \ No newline at end of file diff --git a/extensions/7.3/disable_all.sh b/extensions/7.3/disable_all.sh deleted file mode 120000 index 36f58a80..00000000 --- a/extensions/7.3/disable_all.sh +++ /dev/null @@ -1 +0,0 @@ -../core/disable_all.sh \ No newline at end of file diff --git a/extensions/7.3/docker-install.sh b/extensions/7.3/docker-install.sh deleted file mode 120000 index 245891f8..00000000 --- a/extensions/7.3/docker-install.sh +++ /dev/null @@ -1 +0,0 @@ -../core/docker-install.sh \ No newline at end of file diff --git a/extensions/7.3/ds b/extensions/7.3/ds deleted file mode 120000 index edbe1af6..00000000 --- a/extensions/7.3/ds +++ /dev/null @@ -1 +0,0 @@ -../core/ds \ No newline at end of file diff --git a/extensions/7.3/enchant b/extensions/7.3/enchant deleted file mode 120000 index aa197129..00000000 --- a/extensions/7.3/enchant +++ /dev/null @@ -1 +0,0 @@ -../core/enchant \ No newline at end of file diff --git a/extensions/7.3/ev b/extensions/7.3/ev deleted file mode 120000 index d523a2c1..00000000 --- a/extensions/7.3/ev +++ /dev/null @@ -1 +0,0 @@ -../core/ev \ No newline at end of file diff --git a/extensions/7.3/event b/extensions/7.3/event deleted file mode 120000 index 67569f41..00000000 --- a/extensions/7.3/event +++ /dev/null @@ -1 +0,0 @@ -../core/event \ No newline at end of file diff --git a/extensions/7.3/excimer b/extensions/7.3/excimer deleted file mode 120000 index 4e099313..00000000 --- a/extensions/7.3/excimer +++ /dev/null @@ -1 +0,0 @@ -../core/excimer \ No newline at end of file diff --git a/extensions/7.3/gd b/extensions/7.3/gd deleted file mode 120000 index c4cfd1f9..00000000 --- a/extensions/7.3/gd +++ /dev/null @@ -1 +0,0 @@ -../core/gd \ No newline at end of file diff --git a/extensions/7.3/gmp b/extensions/7.3/gmp deleted file mode 120000 index d3dce5ec..00000000 --- a/extensions/7.3/gmp +++ /dev/null @@ -1 +0,0 @@ -../core/gmp \ No newline at end of file diff --git a/extensions/7.3/gnupg b/extensions/7.3/gnupg deleted file mode 120000 index 002cc7b2..00000000 --- a/extensions/7.3/gnupg +++ /dev/null @@ -1 +0,0 @@ -../core/gnupg \ No newline at end of file diff --git a/extensions/7.3/grpc b/extensions/7.3/grpc deleted file mode 120000 index 57533a58..00000000 --- a/extensions/7.3/grpc +++ /dev/null @@ -1 +0,0 @@ -../core/grpc \ No newline at end of file diff --git a/extensions/7.3/igbinary b/extensions/7.3/igbinary deleted file mode 120000 index c57a5ab9..00000000 --- a/extensions/7.3/igbinary +++ /dev/null @@ -1 +0,0 @@ -../core/igbinary \ No newline at end of file diff --git a/extensions/7.3/imagick b/extensions/7.3/imagick deleted file mode 120000 index a55b99bc..00000000 --- a/extensions/7.3/imagick +++ /dev/null @@ -1 +0,0 @@ -../core/imagick \ No newline at end of file diff --git a/extensions/7.3/imap b/extensions/7.3/imap deleted file mode 120000 index 4ee55a28..00000000 --- a/extensions/7.3/imap +++ /dev/null @@ -1 +0,0 @@ -../core/imap \ No newline at end of file diff --git a/extensions/7.3/install_all.sh b/extensions/7.3/install_all.sh deleted file mode 120000 index 615edbef..00000000 --- a/extensions/7.3/install_all.sh +++ /dev/null @@ -1 +0,0 @@ -../core/install_all.sh \ No newline at end of file diff --git a/extensions/7.3/intl b/extensions/7.3/intl deleted file mode 120000 index dd21da0b..00000000 --- a/extensions/7.3/intl +++ /dev/null @@ -1 +0,0 @@ -../core/intl \ No newline at end of file diff --git a/extensions/7.3/ldap b/extensions/7.3/ldap deleted file mode 120000 index 394c7519..00000000 --- a/extensions/7.3/ldap +++ /dev/null @@ -1 +0,0 @@ -../core/ldap \ No newline at end of file diff --git a/extensions/7.3/mailparse b/extensions/7.3/mailparse deleted file mode 120000 index e29c74c5..00000000 --- a/extensions/7.3/mailparse +++ /dev/null @@ -1 +0,0 @@ -../core/mailparse \ No newline at end of file diff --git a/extensions/7.3/memcached b/extensions/7.3/memcached deleted file mode 120000 index 13f2ea8c..00000000 --- a/extensions/7.3/memcached +++ /dev/null @@ -1 +0,0 @@ -../core/memcached \ No newline at end of file diff --git a/extensions/7.3/mongodb b/extensions/7.3/mongodb deleted file mode 120000 index 7898c8e7..00000000 --- a/extensions/7.3/mongodb +++ /dev/null @@ -1 +0,0 @@ -../core/mongodb \ No newline at end of file diff --git a/extensions/7.3/msgpack b/extensions/7.3/msgpack deleted file mode 120000 index 2a72eaa8..00000000 --- a/extensions/7.3/msgpack +++ /dev/null @@ -1 +0,0 @@ -../core/msgpack \ No newline at end of file diff --git a/extensions/7.3/mysqli b/extensions/7.3/mysqli deleted file mode 120000 index 401b7fbf..00000000 --- a/extensions/7.3/mysqli +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_mysql \ No newline at end of file diff --git a/extensions/7.3/pcov b/extensions/7.3/pcov deleted file mode 120000 index b99a0dd2..00000000 --- a/extensions/7.3/pcov +++ /dev/null @@ -1 +0,0 @@ -../core/pcov \ No newline at end of file diff --git a/extensions/7.3/pdo_dblib b/extensions/7.3/pdo_dblib deleted file mode 120000 index 2261140c..00000000 --- a/extensions/7.3/pdo_dblib +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_dblib \ No newline at end of file diff --git a/extensions/7.3/pdo_mysql b/extensions/7.3/pdo_mysql deleted file mode 120000 index 401b7fbf..00000000 --- a/extensions/7.3/pdo_mysql +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_mysql \ No newline at end of file diff --git a/extensions/7.3/pdo_pgsql b/extensions/7.3/pdo_pgsql deleted file mode 120000 index 3a0bda2d..00000000 --- a/extensions/7.3/pdo_pgsql +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/7.3/pdo_sqlite b/extensions/7.3/pdo_sqlite deleted file mode 120000 index 84c26578..00000000 --- a/extensions/7.3/pdo_sqlite +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/7.3/pgsql b/extensions/7.3/pgsql deleted file mode 120000 index 3a0bda2d..00000000 --- a/extensions/7.3/pgsql +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_pgsql \ No newline at end of file diff --git a/extensions/7.3/pspell b/extensions/7.3/pspell deleted file mode 120000 index 9be96fd9..00000000 --- a/extensions/7.3/pspell +++ /dev/null @@ -1 +0,0 @@ -../core/pspell \ No newline at end of file diff --git a/extensions/7.3/rdkafka b/extensions/7.3/rdkafka deleted file mode 120000 index c9f5ff17..00000000 --- a/extensions/7.3/rdkafka +++ /dev/null @@ -1 +0,0 @@ -../core/rdkafka \ No newline at end of file diff --git a/extensions/7.3/redis b/extensions/7.3/redis deleted file mode 120000 index 0727c021..00000000 --- a/extensions/7.3/redis +++ /dev/null @@ -1 +0,0 @@ -../core/redis \ No newline at end of file diff --git a/extensions/7.3/snmp b/extensions/7.3/snmp deleted file mode 120000 index f2249ffe..00000000 --- a/extensions/7.3/snmp +++ /dev/null @@ -1 +0,0 @@ -../core/snmp \ No newline at end of file diff --git a/extensions/7.3/soap b/extensions/7.3/soap deleted file mode 120000 index ea63abf6..00000000 --- a/extensions/7.3/soap +++ /dev/null @@ -1 +0,0 @@ -../core/soap \ No newline at end of file diff --git a/extensions/7.3/sqlite3 b/extensions/7.3/sqlite3 deleted file mode 120000 index 84c26578..00000000 --- a/extensions/7.3/sqlite3 +++ /dev/null @@ -1 +0,0 @@ -../core/pdo_sqlite \ No newline at end of file diff --git a/extensions/7.3/swoole b/extensions/7.3/swoole deleted file mode 120000 index f20d56ed..00000000 --- a/extensions/7.3/swoole +++ /dev/null @@ -1 +0,0 @@ -../core/swoole \ No newline at end of file diff --git a/extensions/7.3/tidy b/extensions/7.3/tidy deleted file mode 120000 index e0434e64..00000000 --- a/extensions/7.3/tidy +++ /dev/null @@ -1 +0,0 @@ -../core/tidy \ No newline at end of file diff --git a/extensions/7.3/uploadprogress b/extensions/7.3/uploadprogress deleted file mode 120000 index 6b4b74d0..00000000 --- a/extensions/7.3/uploadprogress +++ /dev/null @@ -1 +0,0 @@ -../core/uploadprogress \ No newline at end of file diff --git a/extensions/7.3/uuid b/extensions/7.3/uuid deleted file mode 120000 index 7a522046..00000000 --- a/extensions/7.3/uuid +++ /dev/null @@ -1 +0,0 @@ -../core/uuid \ No newline at end of file diff --git a/extensions/7.3/xdebug b/extensions/7.3/xdebug deleted file mode 120000 index 2ee34925..00000000 --- a/extensions/7.3/xdebug +++ /dev/null @@ -1 +0,0 @@ -../core/xdebug \ No newline at end of file diff --git a/extensions/7.3/xmlrpc b/extensions/7.3/xmlrpc deleted file mode 120000 index 2833c799..00000000 --- a/extensions/7.3/xmlrpc +++ /dev/null @@ -1 +0,0 @@ -../core/xmlrpc \ No newline at end of file diff --git a/extensions/7.3/yaml b/extensions/7.3/yaml deleted file mode 120000 index 4be2658a..00000000 --- a/extensions/7.3/yaml +++ /dev/null @@ -1 +0,0 @@ -../core/yaml \ No newline at end of file diff --git a/extensions/7.3/zip b/extensions/7.3/zip deleted file mode 120000 index 98c05831..00000000 --- a/extensions/7.3/zip +++ /dev/null @@ -1 +0,0 @@ -../core/zip \ No newline at end of file diff --git a/extensions/7.2/amqp b/extensions/8.4/amqp similarity index 100% rename from extensions/7.2/amqp rename to extensions/8.4/amqp diff --git a/extensions/7.2/apcu b/extensions/8.4/apcu similarity index 100% rename from extensions/7.2/apcu rename to extensions/8.4/apcu diff --git a/extensions/7.2/ast b/extensions/8.4/ast similarity index 100% rename from extensions/7.2/ast rename to extensions/8.4/ast diff --git a/extensions/7.2/bcmath b/extensions/8.4/bcmath similarity index 100% rename from extensions/7.2/bcmath rename to extensions/8.4/bcmath diff --git a/extensions/7.2/blackfire b/extensions/8.4/blackfire similarity index 100% rename from extensions/7.2/blackfire rename to extensions/8.4/blackfire diff --git a/extensions/7.2/bz2 b/extensions/8.4/bz2 similarity index 100% rename from extensions/7.2/bz2 rename to extensions/8.4/bz2 diff --git a/extensions/7.2/dba b/extensions/8.4/dba similarity index 100% rename from extensions/7.2/dba rename to extensions/8.4/dba diff --git a/extensions/7.2/disable_all.sh b/extensions/8.4/disable_all.sh similarity index 100% rename from extensions/7.2/disable_all.sh rename to extensions/8.4/disable_all.sh diff --git a/extensions/7.2/docker-install.sh b/extensions/8.4/docker-install.sh similarity index 100% rename from extensions/7.2/docker-install.sh rename to extensions/8.4/docker-install.sh diff --git a/extensions/7.2/ds b/extensions/8.4/ds similarity index 100% rename from extensions/7.2/ds rename to extensions/8.4/ds diff --git a/extensions/7.2/enchant b/extensions/8.4/enchant similarity index 100% rename from extensions/7.2/enchant rename to extensions/8.4/enchant diff --git a/extensions/7.2/excimer b/extensions/8.4/excimer similarity index 100% rename from extensions/7.2/excimer rename to extensions/8.4/excimer diff --git a/extensions/8.4/ffi b/extensions/8.4/ffi new file mode 120000 index 00000000..bcd5f3f1 --- /dev/null +++ b/extensions/8.4/ffi @@ -0,0 +1 @@ +../core/ffi \ No newline at end of file diff --git a/extensions/7.2/gd b/extensions/8.4/gd similarity index 100% rename from extensions/7.2/gd rename to extensions/8.4/gd diff --git a/extensions/7.2/gmp b/extensions/8.4/gmp similarity index 100% rename from extensions/7.2/gmp rename to extensions/8.4/gmp diff --git a/extensions/7.2/grpc b/extensions/8.4/grpc similarity index 100% rename from extensions/7.2/grpc rename to extensions/8.4/grpc diff --git a/extensions/7.2/igbinary b/extensions/8.4/igbinary similarity index 100% rename from extensions/7.2/igbinary rename to extensions/8.4/igbinary diff --git a/extensions/7.2/imagick b/extensions/8.4/imagick similarity index 100% rename from extensions/7.2/imagick rename to extensions/8.4/imagick diff --git a/extensions/7.2/imap b/extensions/8.4/imap similarity index 100% rename from extensions/7.2/imap rename to extensions/8.4/imap diff --git a/extensions/7.2/install_all.sh b/extensions/8.4/install_all.sh similarity index 100% rename from extensions/7.2/install_all.sh rename to extensions/8.4/install_all.sh diff --git a/extensions/7.2/intl b/extensions/8.4/intl similarity index 100% rename from extensions/7.2/intl rename to extensions/8.4/intl diff --git a/extensions/7.2/ldap b/extensions/8.4/ldap similarity index 100% rename from extensions/7.2/ldap rename to extensions/8.4/ldap diff --git a/extensions/7.2/mailparse b/extensions/8.4/mailparse similarity index 100% rename from extensions/7.2/mailparse rename to extensions/8.4/mailparse diff --git a/extensions/7.2/memcached b/extensions/8.4/memcached similarity index 100% rename from extensions/7.2/memcached rename to extensions/8.4/memcached diff --git a/extensions/7.2/mongodb b/extensions/8.4/mongodb similarity index 100% rename from extensions/7.2/mongodb rename to extensions/8.4/mongodb diff --git a/extensions/7.2/msgpack b/extensions/8.4/msgpack similarity index 100% rename from extensions/7.2/msgpack rename to extensions/8.4/msgpack diff --git a/extensions/7.2/mysqli b/extensions/8.4/mysqli similarity index 100% rename from extensions/7.2/mysqli rename to extensions/8.4/mysqli diff --git a/extensions/7.2/pcov b/extensions/8.4/pcov similarity index 100% rename from extensions/7.2/pcov rename to extensions/8.4/pcov diff --git a/extensions/7.2/pdo_dblib b/extensions/8.4/pdo_dblib similarity index 100% rename from extensions/7.2/pdo_dblib rename to extensions/8.4/pdo_dblib diff --git a/extensions/7.2/pdo_mysql b/extensions/8.4/pdo_mysql similarity index 100% rename from extensions/7.2/pdo_mysql rename to extensions/8.4/pdo_mysql diff --git a/extensions/7.2/pdo_pgsql b/extensions/8.4/pdo_pgsql similarity index 100% rename from extensions/7.2/pdo_pgsql rename to extensions/8.4/pdo_pgsql diff --git a/extensions/7.2/pdo_sqlite b/extensions/8.4/pdo_sqlite similarity index 100% rename from extensions/7.2/pdo_sqlite rename to extensions/8.4/pdo_sqlite diff --git a/extensions/7.2/pgsql b/extensions/8.4/pgsql similarity index 100% rename from extensions/7.2/pgsql rename to extensions/8.4/pgsql diff --git a/extensions/7.2/pspell b/extensions/8.4/pspell similarity index 100% rename from extensions/7.2/pspell rename to extensions/8.4/pspell diff --git a/extensions/7.2/rdkafka b/extensions/8.4/rdkafka similarity index 100% rename from extensions/7.2/rdkafka rename to extensions/8.4/rdkafka diff --git a/extensions/7.2/redis b/extensions/8.4/redis similarity index 100% rename from extensions/7.2/redis rename to extensions/8.4/redis diff --git a/extensions/7.2/snmp b/extensions/8.4/snmp similarity index 100% rename from extensions/7.2/snmp rename to extensions/8.4/snmp diff --git a/extensions/7.2/soap b/extensions/8.4/soap similarity index 100% rename from extensions/7.2/soap rename to extensions/8.4/soap diff --git a/extensions/7.2/sqlite3 b/extensions/8.4/sqlite3 similarity index 100% rename from extensions/7.2/sqlite3 rename to extensions/8.4/sqlite3 diff --git a/extensions/7.2/tidy b/extensions/8.4/tidy similarity index 100% rename from extensions/7.2/tidy rename to extensions/8.4/tidy diff --git a/extensions/7.2/uploadprogress b/extensions/8.4/uploadprogress similarity index 100% rename from extensions/7.2/uploadprogress rename to extensions/8.4/uploadprogress diff --git a/extensions/7.2/uuid b/extensions/8.4/uuid similarity index 100% rename from extensions/7.2/uuid rename to extensions/8.4/uuid diff --git a/extensions/7.2/xdebug b/extensions/8.4/xdebug similarity index 100% rename from extensions/7.2/xdebug rename to extensions/8.4/xdebug diff --git a/extensions/7.2/xmlrpc b/extensions/8.4/xmlrpc similarity index 100% rename from extensions/7.2/xmlrpc rename to extensions/8.4/xmlrpc diff --git a/extensions/7.2/yaml b/extensions/8.4/yaml similarity index 100% rename from extensions/7.2/yaml rename to extensions/8.4/yaml diff --git a/extensions/7.2/zip b/extensions/8.4/zip similarity index 100% rename from extensions/7.2/zip rename to extensions/8.4/zip diff --git a/orbit-images.yml b/orbit-images.yml index 864a10e4..ed8a37fd 100644 --- a/orbit-images.yml +++ b/orbit-images.yml @@ -1 +1 @@ -php_version: "8.3" +php_version: "8.4" diff --git a/tests-suite/php-blackfire.sh b/tests-suite/php-blackfire.sh index 7c73fcb4..b82b28e6 100755 --- a/tests-suite/php-blackfire.sh +++ b/tests-suite/php-blackfire.sh @@ -1,10 +1,10 @@ #!/usr/bin/env bash . ./config -#if [[ "${PHP_VERSION}" == "8.1" ]]; then -# echo "-- PHP8.1 not support yet blackfire" -# return 0 -#fi +if [[ "${PHP_VERSION}" == "8.4" ]]; then + echo "-- PHP8.4 not support yet blackfire : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support" + return 0 +fi test_enable() { # Check that blackfire can be enabled docker run ${RUN_OPTIONS} --rm -e PHP_EXTENSION_BLACKFIRE=1 "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" \ diff --git a/tests-suite/php-extensions.sh b/tests-suite/php-extensions.sh index 456e08eb..71740248 100755 --- a/tests-suite/php-extensions.sh +++ b/tests-suite/php-extensions.sh @@ -27,14 +27,10 @@ test_presenceOfUploadprogressOnFat() { ################################################################### ## Let's check that FFI is enabled explicitly with fat for PHP 7.4+ ################################################################### -if [[ "${PHP_VERSION}" == "7.2" || "${PHP_VERSION}" == "7.3" ]]; then - echo "-- FFI is only available for PHP 7.4+" -else - test_presenceOfFFIOnFat() { - RESULT=$(docker run ${RUN_OPTIONS} -e "PHP_EXTENSIONS=ffi" --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -m | tail -n +1 | grep --color=never FFI) - assert_equals "FFI" "${RESULT}" "Missing php-FFI" - } -fi +test_presenceOfFFIOnFat() { + RESULT=$(docker run ${RUN_OPTIONS} -e "PHP_EXTENSIONS=ffi" --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-${BRANCH_VARIANT}" php -m | tail -n +1 | grep --color=never FFI) + assert_equals "FFI" "${RESULT}" "Missing php-FFI" +} ############################################################ ## Let's check that the extensions are enabled when composer is run ############################################################ diff --git a/tests-suite/php-ini.sh b/tests-suite/php-ini.sh index 2a6cca6f..5911c0e6 100755 --- a/tests-suite/php-ini.sh +++ b/tests-suite/php-ini.sh @@ -7,7 +7,12 @@ ############################################################ test_templateDefaultErrorReporting() { RESULT="$(docker run ${RUN_OPTIONS} --rm "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" - assert_equals "error_reporting => 32767 => 32767" "$RESULT" "Wrong default error reporting" + if [[ "$(printf '%s\n' "$PHP_VERSION" "8.4" | sort -V | head -n 1)" == "$PHP_VERSION" ]] && [[ "$PHP_VERSION" != "8.4" ]]; then + assert_equals "error_reporting => 32767 => 32767" "$RESULT" "Wrong default error reporting" + else + # From php 8.4 (included), the error_reporting changed + assert_equals "error_reporting => 30719 => 30719" "$RESULT" "Wrong default error reporting" + fi } test_templateProductionErrorReporting() { RESULT="$(docker run ${RUN_OPTIONS} --rm -e TEMPLATE_PHP_INI=production \ @@ -17,7 +22,12 @@ test_templateProductionErrorReporting() { test_templateCustomErrorReporting() { RESULT="$(docker run ${RUN_OPTIONS} --rm -v "${SCRIPT_DIR}/assets/php-ini/php.ini:/etc/php/${PHP_VERSION}/cli/php.ini" \ "${REPO}:${TAG_PREFIX}${PHP_VERSION}-${BRANCH}-slim-${BRANCH_VARIANT}" php -i | grep error_reporting)" - assert_equals "error_reporting => 24575 => 24575" "$RESULT" "Wrong custom php.ini error reporting" + if [[ "$(printf '%s\n' "$PHP_VERSION" "8.4" | sort -V | head -n 1)" == "$PHP_VERSION" ]] && [[ "$PHP_VERSION" != "8.4" ]]; then + assert_equals "error_reporting => 24575 => 24575" "$RESULT" "Wrong custom php.ini error reporting" + else + # From php 8.4 (included), the error_reporting changed + assert_equals "error_reporting => 22527 => 22527" "$RESULT" "Wrong custom php.ini error reporting" + fi } ############################################################ ## PHP_INI_* diff --git a/utils/Dockerfile.blueprint b/utils/Dockerfile.blueprint index a3371931..95ceb476 100644 --- a/utils/Dockerfile.blueprint +++ b/utils/Dockerfile.blueprint @@ -7,7 +7,7 @@ ARG REPO="thecodingmachine/php" ARG TAG_PREFIX="" ARG FROM_IMAGE="${REPO}:${TAG_PREFIX}${PHP_VERSION}-${GLOBAL_VERSION}-slim-{{ .Orbit.variant }}" -FROM $FROM_IMAGE +FROM ${FROM_IMAGE} LABEL authors="Julien Neuhart , David Négrier " SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/utils/Dockerfile.slim.blueprint b/utils/Dockerfile.slim.blueprint index 3aad60f1..62492b5b 100644 --- a/utils/Dockerfile.slim.blueprint +++ b/utils/Dockerfile.slim.blueprint @@ -151,8 +151,8 @@ RUN composer global require bamarni/symfony-console-autocomplete && \ USER root {{if eq .Orbit.variant "apache" }} -ENV APACHE_CONFDIR /etc/apache2 -ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars +ENV APACHE_CONFDIR=/etc/apache2 +ENV APACHE_ENVVARS=$APACHE_CONFDIR/envvars RUN set -eux; \ apt-get update; \ @@ -198,8 +198,8 @@ COPY utils/apache-docker-php.conf /etc/apache2/conf-available/docker-php.conf RUN a2enconf docker-php -ENV PHP_EXTRA_BUILD_DEPS apache2-dev -ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 --disable-cgi +ENV PHP_EXTRA_BUILD_DEPS=apache2-dev +ENV PHP_EXTRA_CONFIGURE_ARGS="--with-apxs2 --disable-cgi" # https://httpd.apache.org/docs/2.4/stopping.html#gracefulstop STOPSIGNAL SIGWINCH @@ -366,11 +366,7 @@ RUN ln -s /etc/php/${PHP_VERSION}/mods-available/generated_conf.ini /etc/php/${P sed -i 's/^user = www-data/;user = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i 's/^group = www-data/;group = www-data/g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ sed -i 's#listen = /run/php/php${PHP_VERSION}-fpm.sock#;listen = /run/php/php${PHP_VERSION}-fpm.sock#g' /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && \ - sed -i "s#pid = /run/php/php${PHP_VERSION}-fpm.pid#;pid = /run/php/php${PHP_VERSION}-fpm.pid#g" /etc/php/${PHP_VERSION}/fpm/php-fpm.conf && \ - if [[ "$PHP_VERSION" = "7.2" ]]; then \ - sed -i 's/^log_limit =/;log_limit =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf && \ - sed -i 's/^decorate_workers_output =/;decorate_workers_output =/g' /etc/php/${PHP_VERSION}/fpm/pool.d/docker.conf; \ - fi + sed -i "s#pid = /run/php/php${PHP_VERSION}-fpm.pid#;pid = /run/php/php${PHP_VERSION}-fpm.pid#g" /etc/php/${PHP_VERSION}/fpm/php-fpm.conf {{end}} USER docker diff --git a/utils/README.blueprint.md b/utils/README.blueprint.md index a326fad1..c149171f 100644 --- a/utils/README.blueprint.md +++ b/utils/README.blueprint.md @@ -16,23 +16,23 @@ This repository contains a set of developer-friendly, general purpose PHP images {{ $image := .Orbit.Images }} ## Images -{{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }} +{{ $versions := list "8.4" "8.3" "8.2" "8.1" "8.0" "7.4" }} {{ $nodeVersions := list "10" "12" "14" "16" "18" "20" "22" }} -| Name | PHP version | type |variant | NodeJS version | Size -|-------------------------------------------------------------------------|------------------------------|------|--------|-----------------|------ -{{range $phpV := $versions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | apache | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}) -{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | fpm | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}) -{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli) -{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | fat | cli | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}) -{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-apache) -| [thecodingmachine/php:{{ $phpV }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm) -| [thecodingmachine/php:{{ $phpV }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.2"}}(1){{ end }}{{if eq $phpV "7.3"}}(1){{ end }} | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-cli) +| Name | PHP version | type |variant | NodeJS version | Size +|-------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|--------|-----------------|------ +{{range $phpV := $versions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.4"}}(1){{ end }} | fat | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.apache.node) | `{{ $phpV }}.x`{{if eq $phpV "7.4"}}(1){{ end }} | fat | apache | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-apache-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.4"}}(1){{ end }} | fat | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.fpm.node) | `{{ $phpV }}.x`{{if eq $phpV "7.4"}}(1){{ end }} | fat | fpm | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-fpm-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.4"}}(1){{ end }} | fat | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli) +{{range $nodeV := $nodeVersions}}| [thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.cli.node) | `{{ $phpV }}.x`{{if eq $phpV "7.4"}}(1){{ end }} | fat | cli | `{{ $nodeV }}.x`{{ if eq $nodeV "10" }}(2){{ end }} | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-cli-node{{ $nodeV }}) +{{ end }}| [thecodingmachine/php:{{ $phpV }}-v4-slim-apache](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.apache) | `{{ $phpV }}.x`{{if eq $phpV "7.4"}}(1){{ end }} | slim | apache | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-apache.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-apache) +| [thecodingmachine/php:{{ $phpV }}-v4-slim-fpm](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.fpm) | `{{ $phpV }}.x`{{if eq $phpV "7.4"}}(1){{ end }} | slim | fpm | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-fpm) +| [thecodingmachine/php:{{ $phpV }}-v4-slim-cli](https://github.com/thecodingmachine/docker-images-php/blob/v4/Dockerfile.slim.cli) | `{{ $phpV }}.x`{{if eq $phpV "7.4"}}(1){{ end }} | slim | cli | *N/A* | [![](https://images.microbadger.com/badges/image/thecodingmachine/php:{{ $phpV }}-v4-slim-cli.svg)](https://microbadger.com/images/thecodingmachine/php:{{ $phpV }}-v4-slim-cli) {{end}} -* (1) [PHP 7.2 and 7.3 are end of life](https://www.php.net/supported-versions.php) +* (1) [PHP 7.4 is end of life](https://www.php.net/supported-versions.php) * (2) [Node 10 is end of life](https://nodejs.org/en/about/releases/) Note: we also tag patch releases of PHP versions. So you can specify a specific patch release using thecodingmachine/php:**8.0.2**-v4-cli for instance. @@ -95,18 +95,16 @@ Below is a list of extensions available in this image: **Enabled by default (in addition to extensions enabled in Slim image):** `apcu`, `hash`, `iconv`, `igbinary`, `mysqli`, `mysqlnd`, `redis`, `soap`, `xsl`, `zlib` and all enabled in slim. -**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `excimer` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `mcrypt` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `weakref(-beta)` `xdebug` `xmlrpc` `xsl` `yaml` +**Available (can be enabled using environment variables):** `amqp` `ast` `bcmath` `blackfire` `bz2` `dba` `ds` `enchant` `ev` `event` `exif` `excimer` `ffi` `mailparse` `msgpack` `gd` `gettext` `gmp` `gnupg` `grpc` `igbinary` `imagick` `imap` `intl` `ldap` `memcached` `mongodb` `pcov` `pdo_dblib` `pdo_pgsql` `pdo_sqlite` `pgsql` `pspell` `shmop` `snmp` `sockets` `sqlite3` `swoole` `tidy` `uploadprogress` `uuid` `xdebug` `xmlrpc` `xsl` `yaml` This list can be outdated, you can verify by executing : `docker run --rm -it thecodingmachine/php:{{ $image.php_version }}-v4-cli php -m` **Note**: -- *mcrypt* is not available anymore in PHP 7.3+ -- *weakref* is not compatible with PHP 7.3+ (but weak references were added to the PHP core in PHP 7.4) - *event*, *gnupg* are not available in PHP 8.0+ - *gettext*, *ev*, *swoole* are not available in PHP 8.1+ - *ev*, *rdkafka*, *snmp*, *swoole* are not available in all `ARM64` images (build time is too long : it's possible to install manually as required) -- *ffi* is only available in PHP 7.4+ +- *blackfire* not supported yet in PHP8.4 : https://support.blackfire.platform.sh/hc/en-us/articles/4740726712082-PHP-versions-Platforms-support ### Enabling/disabling extensions in the fat image @@ -162,7 +160,7 @@ RUN composer install &&\ yarn build # The slim image will automatically build the extensions from the list provided at the very top of the file. -FROM thecodingmachine/php:7.2-v4-slim-apache +FROM thecodingmachine/php:8.4-v4-slim-apache ENV APP_ENV=prod \ APACHE_DOCUMENT_ROOT=public/ diff --git a/utils/docker-bake.blueprint.hcl b/utils/docker-bake.blueprint.hcl index 61cbcc3d..9dfce56c 100644 --- a/utils/docker-bake.blueprint.hcl +++ b/utils/docker-bake.blueprint.hcl @@ -1,4 +1,4 @@ -{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.3" "8.2" "8.1" "8.0" "7.4" "7.3" "7.2" }}{{ $nodeVersions := list "22" "20" "18" "16" "14" "12" "10" }} +{{ $variants := list "apache" "fpm" "cli" }}{{ $versions := list "8.4" "8.3" "8.2" "8.1" "8.0" "7.4" }}{{ $nodeVersions := list "22" "20" "18" "16" "14" "12" "10" }} group "default" { targets = [ {{range $phpV := $versions}} From 7f75ea61f579088892d9c39b08e22bcd9bd306d6 Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Thu, 5 Dec 2024 23:57:41 +0100 Subject: [PATCH 161/162] Hotfix CI typo --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index ce3f92d8..d403396c 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -64,7 +64,7 @@ jobs: strategy: fail-fast: false matrix: - php_version: ['8.4', 8.3','8.2','8.1','8.0','7.4'] + php_version: ['8.4', '8.3','8.2','8.1','8.0','7.4'] variant: ['apache','cli','fpm'] steps: - name: Checkout From d31ce933d30274f7d1cddb32686f93ba815a502c Mon Sep 17 00:00:00 2001 From: Mistral OZ - MIO Date: Fri, 14 Mar 2025 20:23:13 +0100 Subject: [PATCH 162/162] Upgrade actions/upload-artifact to v4 --- .github/workflows/workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index d403396c..e59bf7b1 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -18,7 +18,7 @@ jobs: php_version: ['8.4', '8.3','8.2','8.1','8.0','7.4'] variant: ['apache','cli','fpm'] # builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "macos-latest"}] - builder: [ {arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "ubuntu-latest"}] + builder: [ {arch: "amd64", os: "ubuntu-24.04"}, {arch: "arm64", os: "ubuntu-24.04"}] runs-on: ${{ matrix.builder.os }} name: Test ${{ matrix.php_version }}-${{ matrix.variant }} ${{ matrix.builder.arch }} only steps: @@ -110,7 +110,7 @@ jobs: --set "*.output=type=registry" \ php${PHP_VERSION//.}-${{ matrix.variant }}-all - name: Push artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ matrix.php_version }}-${{ matrix.variant }} path: /tmp/tags.log