From 863d4eb9b421fe73b094dbf925f861cb8cb44971 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Thu, 22 Jan 2026 07:52:17 -0300 Subject: [PATCH 1/6] feat(apache): Update to PHP `8.5`. --- .env.example | 2 +- .github/actions/prepare-docker-tags/action.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 4 ++-- CHANGELOG.md | 2 ++ README.md | 18 +++++++++--------- src/flavor/apache/Dockerfile | 4 ++-- 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.env.example b/.env.example index 891e143..9ccbcd5 100644 --- a/.env.example +++ b/.env.example @@ -30,7 +30,7 @@ APACHE_SSL_REDIRECT=false # Docker Build Configuration BUILD_TYPE=dev ENABLE_HEALTH_ENDPOINT=true -PHP_VERSION=8.4 +PHP_VERSION=8.5 # PHP Core Configuration PHP_MAX_EXECUTION_TIME=60 diff --git a/.github/actions/prepare-docker-tags/action.yml b/.github/actions/prepare-docker-tags/action.yml index 2020243..4e4cd83 100644 --- a/.github/actions/prepare-docker-tags/action.yml +++ b/.github/actions/prepare-docker-tags/action.yml @@ -13,7 +13,7 @@ inputs: required: true php-version: description: PHP version. - default: "8.4" + default: "8.5" required: false flavor-prefix: description: Flavor prefix. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bb1d0bc..91a6d5b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ concurrency: name: build env: - PHP_VERSION: "8.4" + PHP_VERSION: "8.5" REGISTRY: ghcr.io jobs: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3d7223c..fdb781f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ concurrency: name: release env: - PHP_VERSION: "8.4" + PHP_VERSION: "8.5" REGISTRY: ghcr.io jobs: @@ -161,7 +161,7 @@ jobs: if [[ "${{ env.BUILD_RESULT }}" == "success" ]]; then echo "## 🏷️ Generated Tags" - echo "- \`8.4-debian-{build_type}-v${{ env.VERSION }}\`" + echo "- \`8.5-debian-{build_type}-v${{ env.VERSION }}\`" if [[ "${{ env.IS_PRERELEASE }}" == "false" ]]; then echo "- \`latest\` (prod only)" fi diff --git a/CHANGELOG.md b/CHANGELOG.md index a8166b8..ce1c98f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## v1.1.0 Under Development +- Enh #32 Update to PHP `8.5` (@terabytesoftw) + ## v1.0.0 September 13, 2025 - Enh #1: Add Apache, PHP `8.4`, PHP-FPM, and HTTP/2 support, image for Debian Trixie (@terabytesoftw) diff --git a/README.md b/README.md index 45e3336..c90c679 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Production-ready Docker images for Yii2 applications with Apache, PHP-FPM, and H - ✅ **Apache 2.4** with HTTP/2, Brotli compression, and SSL/TLS - ✅ **Auto SSL** certificate generation for development - ✅ **Health checks** and monitoring endpoints -- ✅ **PHP 8.4** with FPM and essential extensions (Redis, MongoDB, MySQL, PostgreSQL) +- ✅ **PHP 8.5** with FPM and essential extensions (Redis, MongoDB, MySQL, PostgreSQL) - ✅ **Security hardened** with modern configurations - ✅ **Supervisor** for process management - ✅ **Three build variants**: `dev`, `prod`, and `full` @@ -26,13 +26,13 @@ Pull and run the image. ```bash # Development build with Xdebug -docker run -d -p 8080:80 -v $(pwd):/var/www/app ghcr.io/yii2-extensions/apache:8.4-debian-dev-v1.0.0 +docker run -d -p 8080:80 -v $(pwd):/var/www/app ghcr.io/yii2-extensions/apache:8.5-debian-dev-v1.0.0 # Production build with optimizations -docker run -d -p 80:80 -p 443:443 -v $(pwd):/var/www/app ghcr.io/yii2-extensions/apache:8.4-debian-prod-v1.0.0 +docker run -d -p 80:80 -p 443:443 -v $(pwd):/var/www/app ghcr.io/yii2-extensions/apache:8.5-debian-prod-v1.0.0 # Full testing build with all extensions -docker run -d -p 8080:80 -v $(pwd):/var/www/app ghcr.io/yii2-extensions/apache:8.4-debian-full-v1.0.0 +docker run -d -p 8080:80 -v $(pwd):/var/www/app ghcr.io/yii2-extensions/apache:8.5-debian-full-v1.0.0 ``` ### Docker Compose @@ -46,7 +46,7 @@ version: '3.8' services: web: - image: ghcr.io/yii2-extensions/apache:8.4-debian-dev-v1.0.0 + image: ghcr.io/yii2-extensions/apache:8.5-debian-dev-v1.0.0 ports: - "8080:80" - "8443:443" @@ -64,18 +64,18 @@ services: #### Development (`dev`) ```bash -docker pull ghcr.io/yii2-extensions/apache:8.4-debian-dev-v1.0.0 +docker pull ghcr.io/yii2-extensions/apache:8.5-debian-dev-v1.0.0 ``` - Error reporting enabled with detailed logging - Node.js integration for asset compilation - OPcache with revalidation for development workflow -- PHP `8.4` with Xdebug, Memcached, MongoDB, SOAP, YAML +- PHP `8.5` with Xdebug, Memcached, MongoDB, SOAP, YAML #### Production (`prod`) ```bash -docker pull ghcr.io/yii2-extensions/apache:8.4-debian-prod-v1.0.0 +docker pull ghcr.io/yii2-extensions/apache:8.5-debian-prod-v1.0.0 ``` - Minimal extension set with maximum performance @@ -86,7 +86,7 @@ docker pull ghcr.io/yii2-extensions/apache:8.4-debian-prod-v1.0.0 #### Full Testing (`full`) ```bash -docker pull ghcr.io/yii2-extensions/apache:8.4-debian-full-v1.0.0 +docker pull ghcr.io/yii2-extensions/apache:8.5-debian-full-v1.0.0 ``` - All development extensions plus OCI8, SQL Server, Tidy diff --git a/src/flavor/apache/Dockerfile b/src/flavor/apache/Dockerfile index da87ed9..e91296f 100644 --- a/src/flavor/apache/Dockerfile +++ b/src/flavor/apache/Dockerfile @@ -1,10 +1,10 @@ #============================================================================== -# Yii2 Docker - Debian Trixie + PHP 8.4 FPM + Apache with HTTP/2 +# Yii2 Docker - Debian Trixie + PHP 8.5 FPM + Apache with HTTP/2 # Supports: full (testing), dev (development), prod (production) #============================================================================== ARG BUILD_TYPE=dev -ARG PHP_VERSION=8.4 +ARG PHP_VERSION=8.5 #------------------------------------------------------------------------------ # Base System From cd108b7f16263d5cd4ce5b75e6a54ae79aac0991 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Thu, 22 Jan 2026 08:04:14 -0300 Subject: [PATCH 2/6] fix(docker): Update PHP version to `8.5.2` in Dockerfile. --- src/flavor/apache/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flavor/apache/Dockerfile b/src/flavor/apache/Dockerfile index e91296f..6e867d0 100644 --- a/src/flavor/apache/Dockerfile +++ b/src/flavor/apache/Dockerfile @@ -4,7 +4,7 @@ #============================================================================== ARG BUILD_TYPE=dev -ARG PHP_VERSION=8.5 +ARG PHP_VERSION=8.5.2 #------------------------------------------------------------------------------ # Base System From ee95f55840ab32cb07f91935cc0e34e7421d3f67 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Thu, 22 Jan 2026 12:14:10 -0300 Subject: [PATCH 3/6] Fix ci build. --- .github/workflows/release.yml | 2 +- src/flavor/apache/Dockerfile | 25 +++++++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fdb781f..f45a05a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -161,7 +161,7 @@ jobs: if [[ "${{ env.BUILD_RESULT }}" == "success" ]]; then echo "## 🏷️ Generated Tags" - echo "- \`8.5-debian-{build_type}-v${{ env.VERSION }}\`" + echo "- \`${{ env.PHP_VERSION }}-debian-{build_type}-v${{ env.VERSION }}\`" if [[ "${{ env.IS_PRERELEASE }}" == "false" ]]; then echo "- \`latest\` (prod only)" fi diff --git a/src/flavor/apache/Dockerfile b/src/flavor/apache/Dockerfile index 6e867d0..4a80705 100644 --- a/src/flavor/apache/Dockerfile +++ b/src/flavor/apache/Dockerfile @@ -4,7 +4,7 @@ #============================================================================== ARG BUILD_TYPE=dev -ARG PHP_VERSION=8.5.2 +ARG PHP_VERSION=8.5 #------------------------------------------------------------------------------ # Base System @@ -185,9 +185,26 @@ RUN /bin/bash -o pipefail -c "set -ex \ && echo \"deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main\" > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y --no-install-recommends msodbcsql18 \ - && apt-get install -y --no-install-recommends unixodbc-dev \ - && install-php-extensions sqlsrv pdo_sqlsrv \ - && apt-get purge -y --auto-remove gnupg \ + && apt-get install -y --no-install-recommends unixodbc unixodbc-dev $PHPIZE_DEPS \ + && printf "\\n" | pecl install sqlsrv-5.12.0 \ + && if [[ "$(php -r 'echo PHP_VERSION_ID;')" -ge 80500 ]]; then \ + cd /tmp \ + && pecl download pdo_sqlsrv-5.12.0 \ + && tar -xf pdo_sqlsrv-5.12.0.tgz \ + && rm -f pdo_sqlsrv-5.12.0.tgz \ + && cd pdo_sqlsrv-5.12.0 \ + && sed -i 's/= dbh->error_mode/= (enum pdo_error_mode) dbh->error_mode/' pdo_dbh.cpp \ + && sed -i 's/zval_ptr_dtor( &dbh->query_stmt_zval );/OBJ_RELEASE(dbh->query_stmt_obj);dbh->query_stmt_obj=NULL;/' php_pdo_sqlsrv_int.h \ + && phpize \ + && ./configure --with-php-config="$(command -v php-config)" \ + && make -j"$(nproc)" \ + && make install \ + && rm -rf /tmp/pdo_sqlsrv-5.12.0; \ + else \ + printf "\\n" | pecl install pdo_sqlsrv-5.12.0; \ + fi \ + && docker-php-ext-enable sqlsrv pdo_sqlsrv \ + && apt-get purge -y --auto-remove gnupg unixodbc-dev $PHPIZE_DEPS \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*" From 3144dc1ab01e6125caa1892d0c28dbaa41e6e75c Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Thu, 22 Jan 2026 12:23:20 -0300 Subject: [PATCH 4/6] fix(docker): Correct echo command syntax in Dockerfile for Microsoft SQL Server repository. --- src/flavor/apache/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flavor/apache/Dockerfile b/src/flavor/apache/Dockerfile index 4a80705..8506f1b 100644 --- a/src/flavor/apache/Dockerfile +++ b/src/flavor/apache/Dockerfile @@ -182,7 +182,7 @@ RUN /bin/bash -o pipefail -c "set -ex \ gnupg \ ca-certificates \ && curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \ - && echo \"deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main\" > /etc/apt/sources.list.d/mssql-release.list \ + && echo 'deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main' > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y --no-install-recommends msodbcsql18 \ && apt-get install -y --no-install-recommends unixodbc unixodbc-dev $PHPIZE_DEPS \ From 7aad0426b3490f65e4491395afb2436b9d92f7cc Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Thu, 22 Jan 2026 12:35:22 -0300 Subject: [PATCH 5/6] fix(docker): Improve shell command handling and update SQL Server installation in Dockerfile. --- src/flavor/apache/Dockerfile | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/flavor/apache/Dockerfile b/src/flavor/apache/Dockerfile index 8506f1b..5d05980 100644 --- a/src/flavor/apache/Dockerfile +++ b/src/flavor/apache/Dockerfile @@ -167,6 +167,8 @@ RUN install-php-extensions \ #------------------------------------------------------------------------------ FROM dev AS full +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + # Layer 07: Full extensions RUN install-php-extensions \ oci8 \ @@ -175,7 +177,8 @@ RUN install-php-extensions \ # Layer 08: Microsoft SQL Server support # Note: Using Debian 12 (bookworm) repo since Trixie (13) is not yet officially supported by Microsoft -RUN /bin/bash -o pipefail -c "set -ex \ +# hadolint ignore=DL3003,SC2153 +RUN set -ex \ && apt-get update \ && apt-get install -y --no-install-recommends \ curl \ @@ -185,9 +188,11 @@ RUN /bin/bash -o pipefail -c "set -ex \ && echo 'deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main' > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y --no-install-recommends msodbcsql18 \ - && apt-get install -y --no-install-recommends unixodbc unixodbc-dev $PHPIZE_DEPS \ - && printf "\\n" | pecl install sqlsrv-5.12.0 \ - && if [[ "$(php -r 'echo PHP_VERSION_ID;')" -ge 80500 ]]; then \ + && read -r -a phpize_deps <<< "${PHPIZE_DEPS}" \ + && apt-get install -y --no-install-recommends unixodbc unixodbc-dev "${phpize_deps[@]}" \ + && printf '\\n' | pecl install sqlsrv-5.12.0 \ + && PHP_VERSION_ID="$(php -r 'echo PHP_VERSION_ID;')" \ + && if [[ "${PHP_VERSION_ID}" -ge 80500 ]]; then \ cd /tmp \ && pecl download pdo_sqlsrv-5.12.0 \ && tar -xf pdo_sqlsrv-5.12.0.tgz \ @@ -201,12 +206,12 @@ RUN /bin/bash -o pipefail -c "set -ex \ && make install \ && rm -rf /tmp/pdo_sqlsrv-5.12.0; \ else \ - printf "\\n" | pecl install pdo_sqlsrv-5.12.0; \ + printf '\\n' | pecl install pdo_sqlsrv-5.12.0; \ fi \ && docker-php-ext-enable sqlsrv pdo_sqlsrv \ - && apt-get purge -y --auto-remove gnupg unixodbc-dev $PHPIZE_DEPS \ + && apt-get purge -y --auto-remove gnupg unixodbc-dev "${phpize_deps[@]}" \ && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*" + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* #============================================================================== # Production Build From ca81ca6b32d6501e00e96337f1c137b7eaa51844 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Thu, 22 Jan 2026 12:41:27 -0300 Subject: [PATCH 6/6] fix(workflows): update actions/checkout to `v6` in build and release workflows. --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 91a6d5b..ae975c7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,7 +43,7 @@ jobs: steps: - name: Checkout. - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Docker Buildx. uses: docker/setup-buildx-action@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f45a05a..636686e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,7 +35,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Validate Version id: validate @@ -62,7 +62,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3