From 5e6747ffb6e086d8f473f9ea63eb9f748b1c8706 Mon Sep 17 00:00:00 2001 From: Luis Pabon Date: Thu, 21 Nov 2024 20:32:30 +0000 Subject: [PATCH 1/3] PHP 8.4 Changes: * Add php 8.4 * Update README with new version and new EOL dates --- README.md | 7 ++--- php/8.4/Dockerfile | 59 ++++++++++++++++++++++++++++++++++++++++++ php/8.4/README.md | 7 +++++ php/8.4/overrides.conf | 27 +++++++++++++++++++ 4 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 php/8.4/Dockerfile create mode 100644 php/8.4/README.md create mode 100644 php/8.4/overrides.conf diff --git a/README.md b/README.md index 91f5b5f..d4999ff 100644 --- a/README.md +++ b/README.md @@ -65,9 +65,10 @@ COPY --from=composer:1 /usr/bin/composer /usr/bin/composer | PHP
version | Images | OS base | PHP EOL date | Daily builds | |------------------|----------------------------------------------------------|---------------|---------------|--------------| -| 8.3 | `phpdockerio/php:8.3-cli`
`phpdockerio/php:8.3-fpm` | Ubuntu 22.04 | ✔ 23 Nov 2026 | ✔ | -| 8.2 | `phpdockerio/php:8.2-cli`
`phpdockerio/php:8.2-fpm` | Ubuntu 22.04 | ✔ 08 Dec 2025 | ✔ | -| 8.1 | `phpdockerio/php:8.1-cli`
`phpdockerio/php:8.1-fpm` | Ubuntu 22.04 | ✔ 25 Nov 2024 | ✔ | +| 8.4 | `phpdockerio/php:8.4-cli`
`phpdockerio/php:8.4-fpm` | Ubuntu 24.04 | ✔ 31 Nov 2026 | ✔ | +| 8.3 | `phpdockerio/php:8.3-cli`
`phpdockerio/php:8.3-fpm` | Ubuntu 22.04 | ✔ 31 Nov 2026 | ✔ | +| 8.2 | `phpdockerio/php:8.2-cli`
`phpdockerio/php:8.2-fpm` | Ubuntu 22.04 | ✔ 31 Dec 2025 | ✔ | +| 8.1 | `phpdockerio/php:8.1-cli`
`phpdockerio/php:8.1-fpm` | Ubuntu 22.04 | ✔ 31 Dec 2024 | ✔ | | 8.0 | `phpdockerio/php:8.0-cli`
`phpdockerio/php:8.0-fpm` | Ubuntu 20.04 | ❌ 26 Nov 2023 | ✔ | | 7.4 | `phpdockerio/php:7.4-cli`
`phpdockerio/php:7.4-fpm` | Ubuntu 20.04 | ❌ 28 Nov 2022 | ✔ | | 7.3 | `phpdockerio/php73-cli`
`phpdockerio/php73-cli` | Ubuntu 18.04 | ❌ 06 Dec 2021 | ❌ | diff --git a/php/8.4/Dockerfile b/php/8.4/Dockerfile new file mode 100644 index 0000000..055ca64 --- /dev/null +++ b/php/8.4/Dockerfile @@ -0,0 +1,59 @@ +############################################ +# PHPDocker.io PHP 8.4 / CLI and FPM image # +############################################ + +### CLI ### + +FROM ubuntu:noble AS cli + +# Fixes some weird terminal issues such as broken clear / CTRL+L +ENV TERM=linux + +# Ensure apt doesn't ask questions when installing stuff +ENV DEBIAN_FRONTEND=noninteractive + +# Install Ondrej repos for Ubuntu, PHP, composer and selected extensions - better selection than +# the distro's packages +RUN apt-get update \ + && apt-get install -y --no-install-recommends gnupg \ + && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu noble main" > /etc/apt/sources.list.d/ondrej-php.list \ + && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ + && apt-get update \ + && apt-get -y --no-install-recommends install \ + ca-certificates \ + curl \ + unzip \ + php8.4-apcu \ + php8.4-cli \ + php8.4-curl \ + php8.4-mbstring \ + php8.4-opcache \ + php8.4-readline \ + php8.4-xml \ + php8.4-zip \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* ~/.composer + +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer + +CMD ["php", "-a"] + +### FPM ### + +FROM cli AS fpm + +# Install FPM +RUN apt-get update \ + && apt-get -y --no-install-recommends install php8.4-fpm \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + +STOPSIGNAL SIGQUIT + +# PHP-FPM packages need a nudge to make them docker-friendly +COPY overrides.conf /etc/php/8.4/fpm/pool.d/z-overrides.conf + +CMD ["/usr/sbin/php-fpm8.4", "-O" ] + +# Open up fcgi port +EXPOSE 9000 diff --git a/php/8.4/README.md b/php/8.4/README.md new file mode 100644 index 0000000..689a968 --- /dev/null +++ b/php/8.4/README.md @@ -0,0 +1,7 @@ +# PHPDocker.io - PHP 8.4 / CLI, FPM and Swoole container images + +Ubuntu 22.04 PHP 8.4 CLI and FPM container images for [PHPDocker.io](http://phpdocker.io) projects. Packages are provided by [Ondřej Surý](https://deb.sury.org/). + +Far smaller in size than PHP's official container. No need to compile any extensions: simply run `apt-get install php8.4-EXTENSION_NAME` as part of your Dockerfile + +*Note on logging:* configure your application to stream logs into `php://stdout`. That's it. diff --git a/php/8.4/overrides.conf b/php/8.4/overrides.conf new file mode 100644 index 0000000..abd9340 --- /dev/null +++ b/php/8.4/overrides.conf @@ -0,0 +1,27 @@ +[global] +; Override default pid file +pid = /run/php-fpm.pid + +; Avoid logs being sent to syslog +error_log = /proc/self/fd/2 + +; Set this to php default's max_execution_time to allow children to stop gracefully when fpm is commanded to stop +; This helps avoiding 502's +process_control_timeout = 30 + +; Do not daemonize (eg send process to the background) +daemonize = no + +[www] +; Access from webserver container is via network, not socket file +listen = [::]:9000 + +; Redirect logs to stdout - FPM closes /dev/std* on startup +access.log = /proc/self/fd/2 +catch_workers_output = yes + +; Remove "pool www" decoration from log output +decorate_workers_output = no + +; Required to allow config-by-environment +clear_env = no From cd503e9e728878a16bd83e4074778f1846c339ba Mon Sep 17 00:00:00 2001 From: Luis Pabon Date: Thu, 21 Nov 2024 20:41:23 +0000 Subject: [PATCH 2/3] Update github actions with new image and newer action versions --- .github/workflows/docker-build.yaml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-build.yaml index accbc60..7d56dea 100644 --- a/.github/workflows/docker-build.yaml +++ b/.github/workflows/docker-build.yaml @@ -82,6 +82,18 @@ jobs: tags: phpdockerio/php:8.3-fpm tertiary: ~ + - name: php84 + folder: php/8.4 + arch: [ linux/amd64, linux/arm64, linux/arm/v7 ] + targets: + primary: + name: cli + tags: phpdockerio/php:8.4-cli + secondary: + name: fpm + tags: phpdockerio/php:8.4-fpm + tertiary: ~ + steps: - name: Checkout uses: actions/checkout@v4 @@ -105,7 +117,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Primary container - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: ${{ matrix.folder }} platforms: ${{ join(matrix.arch, ',') }} @@ -116,7 +128,7 @@ jobs: - name: Secondary container if: matrix.targets.secondary - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: ${{ matrix.folder }} platforms: ${{ join(matrix.arch, ',') }} @@ -127,7 +139,7 @@ jobs: - name: Tertiary container if: matrix.targets.tertiary - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: ${{ matrix.folder }} platforms: ${{ join(matrix.arch, ',') }} From 32cf37597ac32237e6d15e8981a9dfb4ec817e9d Mon Sep 17 00:00:00 2001 From: Luis Pabon Date: Thu, 21 Nov 2024 20:55:24 +0000 Subject: [PATCH 3/3] EOL dates update --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d4999ff..0f042b2 100644 --- a/README.md +++ b/README.md @@ -65,10 +65,10 @@ COPY --from=composer:1 /usr/bin/composer /usr/bin/composer | PHP
version | Images | OS base | PHP EOL date | Daily builds | |------------------|----------------------------------------------------------|---------------|---------------|--------------| -| 8.4 | `phpdockerio/php:8.4-cli`
`phpdockerio/php:8.4-fpm` | Ubuntu 24.04 | ✔ 31 Nov 2026 | ✔ | -| 8.3 | `phpdockerio/php:8.3-cli`
`phpdockerio/php:8.3-fpm` | Ubuntu 22.04 | ✔ 31 Nov 2026 | ✔ | -| 8.2 | `phpdockerio/php:8.2-cli`
`phpdockerio/php:8.2-fpm` | Ubuntu 22.04 | ✔ 31 Dec 2025 | ✔ | -| 8.1 | `phpdockerio/php:8.1-cli`
`phpdockerio/php:8.1-fpm` | Ubuntu 22.04 | ✔ 31 Dec 2024 | ✔ | +| 8.4 | `phpdockerio/php:8.4-cli`
`phpdockerio/php:8.4-fpm` | Ubuntu 24.04 | ✔ 31 Nov 2028 | ✔ | +| 8.3 | `phpdockerio/php:8.3-cli`
`phpdockerio/php:8.3-fpm` | Ubuntu 22.04 | ✔ 31 Nov 2027 | ✔ | +| 8.2 | `phpdockerio/php:8.2-cli`
`phpdockerio/php:8.2-fpm` | Ubuntu 22.04 | ✔ 31 Dec 2026 | ✔ | +| 8.1 | `phpdockerio/php:8.1-cli`
`phpdockerio/php:8.1-fpm` | Ubuntu 22.04 | ✔ 31 Dec 2025 | ✔ | | 8.0 | `phpdockerio/php:8.0-cli`
`phpdockerio/php:8.0-fpm` | Ubuntu 20.04 | ❌ 26 Nov 2023 | ✔ | | 7.4 | `phpdockerio/php:7.4-cli`
`phpdockerio/php:7.4-fpm` | Ubuntu 20.04 | ❌ 28 Nov 2022 | ✔ | | 7.3 | `phpdockerio/php73-cli`
`phpdockerio/php73-cli` | Ubuntu 18.04 | ❌ 06 Dec 2021 | ❌ |