From 40e346e024972a8c87018e268c103542d6d49bad Mon Sep 17 00:00:00 2001 From: alexanderM91 Date: Wed, 28 Oct 2026 09:54:56 +0100 Subject: [PATCH 1/2] Alpine 3.21 and 3.22 clean up. ReadMe update --- .github/workflows/ci.yml | 16 -- .../workflows/ecr-scheduled-security-scan.yml | 6 - .github/workflows/release-notes.yml | 6 - ...tryvi-trufflehog-default-security-scan.yml | 14 -- README.md | 131 +++++----- alpine/3.21/8.2/Dockerfile | 226 ----------------- alpine/3.21/8.3/Dockerfile | 226 ----------------- alpine/3.21/8.4/Dockerfile | 226 ----------------- alpine/3.22/8.2/Dockerfile | 235 ------------------ alpine/3.22/8.3/Dockerfile | 235 ------------------ alpine/3.22/8.4/Dockerfile | 235 ------------------ 11 files changed, 63 insertions(+), 1493 deletions(-) delete mode 100644 alpine/3.21/8.2/Dockerfile delete mode 100644 alpine/3.21/8.3/Dockerfile delete mode 100644 alpine/3.21/8.4/Dockerfile delete mode 100644 alpine/3.22/8.2/Dockerfile delete mode 100644 alpine/3.22/8.3/Dockerfile delete mode 100644 alpine/3.22/8.4/Dockerfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 31f3e62a..349ef04d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,22 +24,6 @@ jobs: matrix: include: ## Alpine - ### Alpine 3.21 - - image: "alpine/3.21/8.2/Dockerfile" - tags: [ "spryker/php:8.2-alpine3.21" ] - - image: "alpine/3.21/8.3/Dockerfile" - tags: [ "spryker/php:8.3-alpine3.21" ] - - image: "alpine/3.21/8.4/Dockerfile" - tags: [ "spryker/php:8.4-alpine3.21" ] - - ### Alpine 3.22 - - image: "alpine/3.22/8.2/Dockerfile" - tags: [ "spryker/php:8.2-alpine3.22" ] - - image: "alpine/3.22/8.3/Dockerfile" - tags: [ "spryker/php:8.3-alpine3.22" ] - - image: "alpine/3.22/8.4/Dockerfile" - tags: ["spryker/php:8.4-alpine3.22" ] - ### Alpine 3.23 - image: "alpine/3.23/8.2/Dockerfile" tags: [ "spryker/php:latest", "spryker/php:8.2", "spryker/php:8.2-alpine3.23" ] diff --git a/.github/workflows/ecr-scheduled-security-scan.yml b/.github/workflows/ecr-scheduled-security-scan.yml index 8f7be2b8..e03cb008 100644 --- a/.github/workflows/ecr-scheduled-security-scan.yml +++ b/.github/workflows/ecr-scheduled-security-scan.yml @@ -24,12 +24,6 @@ jobs: fail-fast: false matrix: include: - - image_tag: "8.2-alpine3.21" - - image_tag: "8.3-alpine3.21" - - image_tag: "8.4-alpine3.21" - - image_tag: "8.2-alpine3.22" - - image_tag: "8.3-alpine3.22" - - image_tag: "8.4-alpine3.22" - image_tag: "8.2-alpine3.23" - image_tag: "8.3-alpine3.23" - image_tag: "8.4-alpine3.23" diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index b38f3794..002d6ddd 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -27,12 +27,6 @@ jobs: fail-fast: false matrix: image_tag: - - "8.2-alpine3.21" - - "8.3-alpine3.21" - - "8.4-alpine3.21" - - "8.2-alpine3.22" - - "8.3-alpine3.22" - - "8.4-alpine3.22" - "8.2-alpine3.23" - "8.3-alpine3.23" - "8.4-alpine3.23" diff --git a/.github/workflows/tryvi-trufflehog-default-security-scan.yml b/.github/workflows/tryvi-trufflehog-default-security-scan.yml index 4b3d247f..6af773c6 100644 --- a/.github/workflows/tryvi-trufflehog-default-security-scan.yml +++ b/.github/workflows/tryvi-trufflehog-default-security-scan.yml @@ -17,20 +17,6 @@ jobs: matrix: include: ## Alpine - ### Alpine 3.22 - - context: "alpine/3.22/8.2" - dockerfile: "Dockerfile" - tags: "8.2-alpine3.22" - platforms: "linux/amd64" - - context: "alpine/3.22/8.3" - dockerfile: "Dockerfile" - tags: "8.3-alpine3.22" - platforms: "linux/amd64" - - context: "alpine/3.22/8.4" - dockerfile: "Dockerfile" - tags: "8.4-alpine3.22" - platforms: "linux/amd64" - ### Alpine 3.23 - context: "alpine/3.23/8.2" dockerfile: "Dockerfile" diff --git a/README.md b/README.md index 7d177dc8..6b875698 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,17 @@ # PHP-FPM -[![Docker Stars](https://img.shields.io/docker/stars/spryker/php.svg)](https://store.docker.com/community/images/spryker/php) -[![Docker Pulls](https://img.shields.io/docker/pulls/spryker/php.svg)](https://store.docker.com/community/images/spryker/php) +[![Docker Stars](https://img.shields.io/docker/stars/spryker/php.svg)](https://hub.docker.com/r/spryker/php) +[![Docker Pulls](https://img.shields.io/docker/pulls/spryker/php.svg)](https://hub.docker.com/r/spryker/php) -# Description +## Description Extends official PHP Docker images with extensions and tools to be able to run Spryker. * Based on official PHP images - * `Alpine 3.21` - * `Alpine 3.22` * `Alpine 3.23` * `Alpine 3.24` * `Debian "bookworm"` - +* Platforms: `linux/amd64`, `linux/arm64` * Users: `root`, `spryker` * Working directory: `/data` * Includes: @@ -28,90 +26,86 @@ Extends official PHP Docker images with extensions and tools to be able to run S ## Tags -| Tag | PHP version | Linux distribution | Details | Dockerfile | OTEL support | -|:--------------------------------------------------------------------------------------------|:------------|:-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------|:------------:| -| [spryker/php:latest](https://hub.docker.com/r/spryker/php/tags?name=latest) | 8.2.35 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:latest.svg)](https://microbadger.com/images/spryker/php:latest "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | -| [spryker/php:8.5](https://hub.docker.com/r/spryker/php/tags?name=8.5) | 8.5.12 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.5.svg)](https://microbadger.com/images/spryker/php:8.5 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.5/Dockerfile) | ✔ | -| [spryker/php:8.4](https://hub.docker.com/r/spryker/php/tags?name=8.4) | 8.4.27 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.4.svg)](https://microbadger.com/images/spryker/php:8.4 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3](https://hub.docker.com/r/spryker/php/tags?name=8.3) | 8.3.36 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.3.svg)](https://microbadger.com/images/spryker/php:8.3 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2](https://hub.docker.com/r/spryker/php/tags?name=8.2) | 8.2.35 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.2.svg)](https://microbadger.com/images/spryker/php:8.2 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | -| [spryker/php:8.5-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.5-alpine3.24) | 8.5.12 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.5-alpine3.24.svg)](https://microbadger.com/images/spryker/php:8.5-alpine3.24 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.5/Dockerfile) | ✔ | -| [spryker/php:8.4-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.24) | 8.4.27 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.4-alpine3.24.svg)](https://microbadger.com/images/spryker/php:8.4-alpine3.24 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.24) | 8.3.36 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.3-alpine3.24.svg)](https://microbadger.com/images/spryker/php:8.3-alpine3.24 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.24) | 8.2.35 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.2-alpine3.24.svg)](https://microbadger.com/images/spryker/php:8.2-alpine3.24 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.2/Dockerfile) | ✖ | -| [spryker/php:8.4-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.23) | 8.4.27 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.4-alpine3.23.svg)](https://microbadger.com/images/spryker/php:8.4-alpine3.23 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.23) | 8.3.36 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.3-alpine3.23.svg)](https://microbadger.com/images/spryker/php:8.3-alpine3.23 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.23) | 8.2.35 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.2-alpine3.23.svg)](https://microbadger.com/images/spryker/php:8.2-alpine3.23 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | -| [spryker/php:8.4-alpine3.22](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.22) | 8.4.22 | Alpine 3.22 | [![](https://images.microbadger.com/badges/image/spryker/php:8.4-alpine3.22.svg)](https://microbadger.com/images/spryker/php:8.4-alpine3.22 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.22/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3-alpine3.22](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.22) | 8.3.31 | Alpine 3.22 | [![](https://images.microbadger.com/badges/image/spryker/php:8.3-alpine3.22.svg)](https://microbadger.com/images/spryker/php:8.3-alpine3.22 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.22/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2-alpine3.22](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.22) | 8.2.31 | Alpine 3.22 | [![](https://images.microbadger.com/badges/image/spryker/php:8.2-alpine3.22.svg)](https://microbadger.com/images/spryker/php:8.2-alpine3.22 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.22/8.2/Dockerfile) | ✔ | -| [spryker/php:8.4-alpine3.21](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.21) | 8.4.15 | Alpine 3.21 | [![](https://images.microbadger.com/badges/image/spryker/php:8.4-alpine3.21.svg)](https://microbadger.com/images/spryker/php:8.4-alpine3.21 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.21/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3-alpine3.21](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.21) | 8.3.28 | Alpine 3.21 | [![](https://images.microbadger.com/badges/image/spryker/php:8.3-alpine3.21.svg)](https://microbadger.com/images/spryker/php:8.3-alpine3.21 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.21/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2-alpine3.21](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.21) | 8.2.29 | Alpine 3.21 | [![](https://images.microbadger.com/badges/image/spryker/php:8.2-alpine3.21.svg)](https://microbadger.com/images/spryker/php:8.2-alpine3.21 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.21/8.2/Dockerfile) | ✔ | -| [spryker/php:8.5-debian](https://hub.docker.com/r/spryker/php/tags?name=8.5-debian) | 8.5.12 | Debian "bookworm" | [![](https://images.microbadger.com/badges/image/spryker/php:8.5-debian.svg)](https://microbadger.com/images/spryker/php:8.5-debian "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.5/Dockerfile) | ✔ | -| [spryker/php:8.4-debian](https://hub.docker.com/r/spryker/php/tags?name=8.4-debian) | 8.4.27 | Debian "bookworm" | [![](https://images.microbadger.com/badges/image/spryker/php:8.4-debian.svg)](https://microbadger.com/images/spryker/php:8.4-debian "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3-debian](https://hub.docker.com/r/spryker/php/tags?name=8.3-debian) | 8.3.36 | Debian "bookworm" | [![](https://images.microbadger.com/badges/image/spryker/php:8.3-debian.svg)](https://microbadger.com/images/spryker/php:8.3-debian "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2-debian](https://hub.docker.com/r/spryker/php/tags?name=8.2-debian) | 8.2.35 | Debian "bookworm" | [![](https://images.microbadger.com/badges/image/spryker/php:8.2-debian.svg)](https://microbadger.com/images/spryker/php:8.2-debian "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.2/Dockerfile) | ✔ | +| Tag | PHP version | Linux distribution | Dockerfile | OTEL support | +|:--------------------------------------------------------------------------------------------|:------------|:-------------------|:-------------------------------------------------------------------------------------------|:------------:| +| [spryker/php:latest](https://hub.docker.com/r/spryker/php/tags?name=latest) | 8.2.35 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | +| [spryker/php:8.5](https://hub.docker.com/r/spryker/php/tags?name=8.5) | 8.5.12 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.5/Dockerfile) | ✔ | +| [spryker/php:8.4](https://hub.docker.com/r/spryker/php/tags?name=8.4) | 8.4.27 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.4/Dockerfile) | ✔ | +| [spryker/php:8.3](https://hub.docker.com/r/spryker/php/tags?name=8.3) | 8.3.36 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.3/Dockerfile) | ✔ | +| [spryker/php:8.2](https://hub.docker.com/r/spryker/php/tags?name=8.2) | 8.2.35 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | +| [spryker/php:8.5-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.5-alpine3.24) | 8.5.12 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.5/Dockerfile) | ✔ | +| [spryker/php:8.4-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.24) | 8.4.27 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.4/Dockerfile) | ✔ | +| [spryker/php:8.3-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.24) | 8.3.36 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.3/Dockerfile) | ✔ | +| [spryker/php:8.2-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.24) | 8.2.35 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.2/Dockerfile) | ✖ | +| [spryker/php:8.4-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.23) | 8.4.27 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.4/Dockerfile) | ✔ | +| [spryker/php:8.3-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.23) | 8.3.36 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.3/Dockerfile) | ✔ | +| [spryker/php:8.2-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.23) | 8.2.35 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | +| [spryker/php:8.5-debian](https://hub.docker.com/r/spryker/php/tags?name=8.5-debian) | 8.5.12 | Debian "bookworm" | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.5/Dockerfile) | ✔ | +| [spryker/php:8.4-debian](https://hub.docker.com/r/spryker/php/tags?name=8.4-debian) | 8.4.27 | Debian "bookworm" | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.4/Dockerfile) | ✔ | +| [spryker/php:8.3-debian](https://hub.docker.com/r/spryker/php/tags?name=8.3-debian) | 8.3.36 | Debian "bookworm" | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.3/Dockerfile) | ✔ | +| [spryker/php:8.2-debian](https://hub.docker.com/r/spryker/php/tags?name=8.2-debian) | 8.2.35 | Debian "bookworm" | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.2/Dockerfile) | ✔ | + +### Discontinued tags + +The `*-alpine3.21` and `*-alpine3.22` tags are no longer built. The official PHP images stopped publishing for these Alpine releases, so they remain on PHP versions without the October 2026 security fixes. Switch to the matching `-alpine3.23` or `-alpine3.24` tag. ## How to use ### Pull image ```bash -$ docker pull spryker/php -$ docker pull spryker/php:8.3 +docker pull spryker/php +docker pull spryker/php:8.4 ``` ### Run container ```bash -$ docker run -i --rm spryker/php:latest php -v +docker run -i --rm spryker/php:latest php -v ``` ### Dockerfile ```dockerfile -FROM spryker/php:8.2 +FROM spryker/php:8.4 ``` ### docker-compose.yml ```yaml -service1: - image: spryker/php:8.2-debian +services: + app: + image: spryker/php:8.4-debian ``` -### Enable NewRelic -```dockerfile -FROM spryker/php:8.2 +### Enable optional extensions -RUN mv /usr/local/etc/php/disabled/newrelic.ini /usr/local/etc/php/conf.d/90-newrelic.ini -``` +The following extensions are built into every image but stay disabled. Their configuration files live in `/usr/local/etc/php/disabled/`. -### Enable Blackfire -```dockerfile -FROM spryker/php:8.2 - -RUN mv /usr/local/etc/php/disabled/blackfire.ini /usr/local/etc/php/conf.d/90-blackfire.ini -``` +| Extension | Purpose | +|:------------|:---------------------------------------------------------------------| +| `amqp` | RabbitMQ client | +| `blackfire` | Blackfire profiler probe, configured through `BLACKFIRE_*` variables | +| `excimer` | Sampling profiler | +| `imagick` | ImageMagick bindings | +| `newrelic` | New Relic APM agent, configured through `NEWRELIC_*` variables | +| `otel` | OpenTelemetry with gRPC and Protobuf; see [Tags](#tags) for support | +| `pcov` | Code coverage driver | +| `tideways` | Tideways profiler, configured through `TIDEWAYS_*` variables | +| `xhprof` | Hierarchical profiler | +| `xlswriter` | Reads and writes XLSX files | +| `xsl` | XSLT transformations with `XSLTProcessor` | -### Enable Tideways +To enable one, move its file into `conf.d`: ```dockerfile -FROM spryker/php:8.2 +FROM spryker/php:8.4 -RUN mv /usr/local/etc/php/disabled/tideways.ini /usr/local/etc/php/conf.d/90-tideways.ini -``` - -### Enable XLSX (xlswriter) -`xlswriter` is built into every image but stays disabled by default. Enable it when the application reads or writes XLSX files. -```dockerfile -FROM spryker/php:8.2 - -RUN mv /usr/local/etc/php/disabled/xlswriter.ini /usr/local/etc/php/conf.d/90-xlswriter.ini +RUN mv /usr/local/etc/php/disabled/newrelic.ini /usr/local/etc/php/conf.d/90-newrelic.ini ``` -### Enable XSL (XSLT) -`xsl` is built into every image but stays disabled by default. Enable it when the application transforms XML with `XSLTProcessor`. -```dockerfile -FROM spryker/php:8.2 - -RUN mv /usr/local/etc/php/disabled/xsl.ini /usr/local/etc/php/conf.d/90-xsl.ini +With the [Spryker Docker SDK](https://github.com/spryker/docker-sdk), list them in the deploy file instead: +```yaml +image: + tag: spryker/php:8.4 + php: + enabled-extensions: + - newrelic ``` ## PHP extensions @@ -225,9 +219,10 @@ Composer ==================== Composer version 2.10.3 2026-08-27 13:34:23 ``` -##### Run the following to get the report + +The report above is for `spryker/php:8.3`. Run the following to get it for any tag: ```bash -$ docker run -i --rm spryker/php:8.3 bash -s<<'EOF' +docker run -i --rm spryker/php:8.3 bash -s<<'EOF' docker-php-source extract echo "Installed extensions" echo "====================" @@ -260,6 +255,6 @@ EOF ``` ## More information -* [Spryker documentation](https://documentation.spryker.com) -* [PHP supported versions](http://php.net/supported-versions.php) +* [Spryker documentation](https://docs.spryker.com) +* [PHP supported versions](https://www.php.net/supported-versions.php) * [PHP official images](https://github.com/docker-library/php) diff --git a/alpine/3.21/8.2/Dockerfile b/alpine/3.21/8.2/Dockerfile deleted file mode 100644 index 87b478c7..00000000 --- a/alpine/3.21/8.2/Dockerfile +++ /dev/null @@ -1,226 +0,0 @@ -# syntax = docker/dockerfile:1.0.2-experimental -ARG SPRYKER_PHP_VERSION=8.2.29 -FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.21 - -ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.10.3 -ARG BLACKFIRE_VERSION=1.87.1 -ARG BLACKFIRE_PHP_VERSION=82 -ARG NEWRELIC_VERSION=12.12.0.41 -ARG TIDEWAYS_VERSION=5.47.0 -ARG TIDEWAYS_PHP_VERSION=8.2 - -ENV srcRoot /data -RUN mkdir -p ${srcRoot} - -ARG PHP_RUN_DEPS="\ - freetype \ - gmp \ - gnu-libiconv \ - icu-libs \ - libbz2 \ - libc6-compat \ - libjpeg-turbo \ - libpng \ - libwebp \ - libxml2 \ - libxpm \ - libxslt \ - libzip \ - rabbitmq-c \ - imagemagick" - -ARG PHP_BUILD_DEPS="\ - autoconf \ - bzip2-dev \ - freetype-dev \ - gmp-dev \ - icu-dev \ - icu-data-full \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - postgresql-dev \ - rabbitmq-c-dev \ - g++ \ - imagemagick-dev" - -ARG PHP_EXTENSIONS="\ - bcmath \ - bz2 \ - ftp \ - gd \ - gmp \ - intl \ - mysqli \ - opcache \ - pcntl \ - pdo_mysql \ - pdo_pgsql \ - pgsql \ - soap \ - sockets \ - zip" - -ARG ADDITIONAL_PHP_EXTENSIONS="\ - xsl" - -ARG PHP_PECL_EXTENSIONS="\ - apcu \ - redis" - -ARG ADDITIONAL_PHP_PECL_EXTENSIONS="\ - pcov \ - xdebug \ - xhprof \ - excimer \ - amqp \ - imagick \ - xlswriter" - -ARG GRAPHVIZ_BUILD_DEPS="\ - expat-dev" - -ARG CFLAGS="-I/usr/src/php" -RUN apk update \ - && apk upgrade \ - && apk add --no-cache \ - bash \ - coreutils \ - curl \ - g++ \ - git \ - make \ - mysql-client \ - netcat-openbsd \ - openssh \ - postgresql-client \ - procps \ - python3 \ - shadow \ - unzip \ - linux-headers \ - libstdc++ \ - ${PHP_RUN_DEPS} \ - && apk add --no-cache --virtual .php-build-deps ${PHP_BUILD_DEPS} \ - && apk add --no-cache --virtual .graphviz-build-deps ${GRAPHVIZ_BUILD_DEPS} \ - && rm -rf /var/lib/apt/lists/ \ - && cd /tmp && curl -LO https://github.com/unicode-org/icu/releases/download/release-74-1/icu4c-74_1-src.tgz \ - && tar xzf icu4c-74_1-src.tgz \ - && cd icu/source && ./configure --prefix=/usr && make && make install \ - && docker-php-ext-configure gd \ - --disable-gd-jis-conv \ - --with-freetype=/usr \ - --with-jpeg=/usr \ - --with-webp=/usr \ - --with-xpm=/usr \ - && docker-php-ext-install -j5 ${PHP_EXTENSIONS} ${ADDITIONAL_PHP_EXTENSIONS} \ - && pecl install -o -f ${PHP_PECL_EXTENSIONS} ${ADDITIONAL_PHP_PECL_EXTENSIONS} \ - && rm -rf /tmp/pear \ - && docker-php-ext-enable ${PHP_EXTENSIONS} ${PHP_PECL_EXTENSIONS} \ - && for ext in ${ADDITIONAL_PHP_EXTENSIONS}; do rm -f /usr/local/etc/php/conf.d/docker-php-ext-${ext}.ini; done \ - && apk del --no-cache .php-build-deps - -# Related to https://github.com/docker-library/php/issues/240 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so - -# Otel -RUN echo "https://dl-cdn.alpinelinux.org/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/community" >> /etc/apk/repositories -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && apk add --no-cache \ - php${PHP_VERSION}-pecl-grpc \ - php${PHP_VERSION}-pecl-protobuf \ - php${PHP_VERSION}-pecl-opentelemetry - -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && EXT_DIR=$(php -r "echo ini_get('extension_dir');") \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/grpc.so $EXT_DIR/grpc.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/protobuf.so $EXT_DIR/protobuf.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/opentelemetry.so $EXT_DIR/opentelemetry.so - -# Blackfire -ENV BLACKFIRE_AGENT_SOCKET='' -RUN architecture=$(case ${TARGETPLATFORM} in "linux/amd64") echo "amd64" ;; linux/arm64) echo "arm64" ;; *) echo "amd64" ;; esac) \ - && curl -A "Docker" -o /tmp/blackfire.so -D - -L -s https://packages.blackfire.io/binaries/blackfire-php/${BLACKFIRE_VERSION}/blackfire-php-alpine_${architecture}-php-${BLACKFIRE_PHP_VERSION}.so \ - && mv /tmp/blackfire.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so - -# New Relic -ENV NEWRELIC_ENABLED=0 -ENV NEWRELIC_LICENSE='' -ENV NEWRELIC_APPNAME='Spryker' -ENV NEWRELIC_DISTRIBUTED_TRACING_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_ENABLED=0 -ENV NEWRELIC_SPAN_EVENTS_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_THRESHOLD=0 -ENV NEWRELIC_DISTRIBUTED_TRACING_EXCLUDE_NEWRELIC_HEADER=0 - -RUN bash -c 'curl -L "https://download.newrelic.com/php_agent/archive/${NEWRELIC_VERSION}/newrelic-php5-${NEWRELIC_VERSION}-linux-musl.tar.gz" | tar -C /tmp -zx \ - && export NR_INSTALL_USE_CP_NOT_LN=1 \ - && export NR_INSTALL_SILENT=1 \ - && /tmp/newrelic-php5-*/newrelic-install install \ - && rm -rf /tmp/newrelic-php5-* /tmp/nrinstall* \ - && /usr/bin/install -d -m 777 /var/log/newrelic/ \ - && rm /usr/local/etc/php/conf.d/newrelic.ini' - -# Tideways -ENV TIDEWAYS_APIKEY='' -ENV TIDEWAYS_DAEMON_URI='' -ENV TIDEWAYS_CLI_ENABLED=0 -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/amd64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/arm64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -#GraphViz 7.0.5 -RUN cd /tmp && \ - curl -L https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/7.0.5/graphviz-7.0.5.tar.gz | tar -zx && \ - cd /tmp/graphviz-7.0.5 && \ - ./configure && \ - make && \ - make install && \ - rm -rf /tmp/graphviz-7.0.5 && \ - apk del --no-cache .graphviz-build-deps - -# Opcache -RUN /usr/bin/install -d -m 777 /var/run/opcache - -# Remove default FPM pool -RUN rm /usr/local/etc/php-fpm.d/www.conf && \ - rm /usr/local/etc/php-fpm.d/docker.conf && \ - rm /usr/local/etc/php-fpm.d/zz-docker.conf - -# Add FPM configs -COPY context/php/php-fpm.d/worker.conf /usr/local/etc/php-fpm.d/worker.conf -COPY context/php/php-fpm.conf /usr/local/etc/php-fpm.conf - -# Copy php.ini configuration -COPY context/php/php.ini /usr/local/etc/php/ -COPY context/php/conf.d/90-opcache.ini /usr/local/etc/php/conf.d/ -COPY context/php/conf.d/92-session.ini /usr/local/etc/php/conf.d/ -COPY context/php/disabled /usr/local/etc/php/disabled - -WORKDIR /data - -# Install composer -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} - -# Create application user 'spryker' -RUN addgroup spryker && \ - adduser -h /home/spryker -s /bin/sh -G www-data -D spryker && \ - chown spryker:spryker ${srcRoot} - -USER spryker -ENV COMPOSER_MEMORY_LIMIT=-1 -RUN mkdir -p /home/spryker/.composer -RUN bash -c '[[ $COMPOSER_VERSION == "1"* ]] && composer global require hirak/prestissimo && rm -rf /home/spryker/.composer/cache || true' - -USER root diff --git a/alpine/3.21/8.3/Dockerfile b/alpine/3.21/8.3/Dockerfile deleted file mode 100644 index 625d1534..00000000 --- a/alpine/3.21/8.3/Dockerfile +++ /dev/null @@ -1,226 +0,0 @@ -# syntax = docker/dockerfile:1.0.2-experimental -ARG SPRYKER_PHP_VERSION=8.3.28 -FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.21 - -ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.10.3 -ARG BLACKFIRE_VERSION=1.92.48 -ARG BLACKFIRE_PHP_VERSION=83 -ARG NEWRELIC_VERSION=12.12.0.41 -ARG TIDEWAYS_VERSION=5.47.0 -ARG TIDEWAYS_PHP_VERSION=8.3 - -ENV srcRoot /data -RUN mkdir -p ${srcRoot} - -ARG PHP_RUN_DEPS="\ - freetype \ - gmp \ - gnu-libiconv \ - icu-libs \ - libbz2 \ - libc6-compat \ - libjpeg-turbo \ - libpng \ - libwebp \ - libxml2 \ - libxpm \ - libxslt \ - libzip \ - rabbitmq-c \ - imagemagick" - -ARG PHP_BUILD_DEPS="\ - autoconf \ - bzip2-dev \ - freetype-dev \ - gmp-dev \ - icu-dev \ - icu-data-full \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - postgresql-dev \ - rabbitmq-c-dev \ - g++ \ - imagemagick-dev" - -ARG PHP_EXTENSIONS="\ - bcmath \ - bz2 \ - ftp \ - gd \ - gmp \ - intl \ - mysqli \ - opcache \ - pcntl \ - pdo_mysql \ - pdo_pgsql \ - pgsql \ - soap \ - sockets \ - zip" - -ARG ADDITIONAL_PHP_EXTENSIONS="\ - xsl" - -ARG PHP_PECL_EXTENSIONS="\ - apcu \ - redis" - -ARG ADDITIONAL_PHP_PECL_EXTENSIONS="\ - pcov \ - xdebug \ - xhprof \ - excimer \ - amqp \ - imagick \ - xlswriter" - -ARG GRAPHVIZ_BUILD_DEPS="\ - expat-dev" - -ARG CFLAGS="-I/usr/src/php" -RUN apk update \ - && apk upgrade \ - && apk add --no-cache \ - bash \ - coreutils \ - curl \ - g++ \ - git \ - make \ - mysql-client \ - netcat-openbsd \ - openssh \ - postgresql-client \ - procps \ - python3 \ - shadow \ - unzip \ - linux-headers \ - libstdc++ \ - ${PHP_RUN_DEPS} \ - && apk add --no-cache --virtual .php-build-deps ${PHP_BUILD_DEPS} \ - && apk add --no-cache --virtual .graphviz-build-deps ${GRAPHVIZ_BUILD_DEPS} \ - && rm -rf /var/lib/apt/lists/ \ - && cd /tmp && curl -LO https://github.com/unicode-org/icu/releases/download/release-74-1/icu4c-74_1-src.tgz \ - && tar xzf icu4c-74_1-src.tgz \ - && cd icu/source && ./configure --prefix=/usr && make && make install \ - && docker-php-ext-configure gd \ - --disable-gd-jis-conv \ - --with-freetype=/usr \ - --with-jpeg=/usr \ - --with-webp=/usr \ - --with-xpm=/usr \ - && docker-php-ext-install -j5 ${PHP_EXTENSIONS} ${ADDITIONAL_PHP_EXTENSIONS} \ - && pecl install -o -f ${PHP_PECL_EXTENSIONS} ${ADDITIONAL_PHP_PECL_EXTENSIONS} \ - && rm -rf /tmp/pear \ - && docker-php-ext-enable ${PHP_EXTENSIONS} ${PHP_PECL_EXTENSIONS} \ - && for ext in ${ADDITIONAL_PHP_EXTENSIONS}; do rm -f /usr/local/etc/php/conf.d/docker-php-ext-${ext}.ini; done \ - && apk del --no-cache .php-build-deps - -# Related to https://github.com/docker-library/php/issues/240 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so - -# Otel -RUN echo "https://dl-cdn.alpinelinux.org/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/community" >> /etc/apk/repositories -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && apk add --no-cache \ - php${PHP_VERSION}-pecl-grpc \ - php${PHP_VERSION}-pecl-protobuf \ - php${PHP_VERSION}-pecl-opentelemetry - -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && EXT_DIR=$(php -r "echo ini_get('extension_dir');") \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/grpc.so $EXT_DIR/grpc.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/protobuf.so $EXT_DIR/protobuf.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/opentelemetry.so $EXT_DIR/opentelemetry.so - -## Blackfire -ENV BLACKFIRE_AGENT_SOCKET='' -RUN architecture=$(case ${TARGETPLATFORM} in "linux/amd64") echo "amd64" ;; linux/arm64) echo "arm64" ;; *) echo "amd64" ;; esac) \ - && curl -A "Docker" -o /tmp/blackfire.so -D - -L -s https://packages.blackfire.io/binaries/blackfire-php/${BLACKFIRE_VERSION}/blackfire-php-alpine_${architecture}-php-${BLACKFIRE_PHP_VERSION}.so \ - && mv /tmp/blackfire.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so - -# New Relic -ENV NEWRELIC_ENABLED=0 -ENV NEWRELIC_LICENSE='' -ENV NEWRELIC_APPNAME='Spryker' -ENV NEWRELIC_DISTRIBUTED_TRACING_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_ENABLED=0 -ENV NEWRELIC_SPAN_EVENTS_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_THRESHOLD=0 -ENV NEWRELIC_DISTRIBUTED_TRACING_EXCLUDE_NEWRELIC_HEADER=0 - -RUN bash -c 'curl -L "https://download.newrelic.com/php_agent/archive/${NEWRELIC_VERSION}/newrelic-php5-${NEWRELIC_VERSION}-linux-musl.tar.gz" | tar -C /tmp -zx \ - && export NR_INSTALL_USE_CP_NOT_LN=1 \ - && export NR_INSTALL_SILENT=1 \ - && /tmp/newrelic-php5-*/newrelic-install install \ - && rm -rf /tmp/newrelic-php5-* /tmp/nrinstall* \ - && /usr/bin/install -d -m 777 /var/log/newrelic/ \ - && rm /usr/local/etc/php/conf.d/newrelic.ini' - -# Tideways -ENV TIDEWAYS_APIKEY='' -ENV TIDEWAYS_DAEMON_URI='' -ENV TIDEWAYS_CLI_ENABLED=0 -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/amd64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/arm64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -# GraphViz 7.0.5 -RUN cd /tmp && \ - curl -L https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/7.0.5/graphviz-7.0.5.tar.gz | tar -zx && \ - cd /tmp/graphviz-7.0.5 && \ - ./configure && \ - make && \ - make install && \ - rm -rf /tmp/graphviz-7.0.5 && \ - apk del --no-cache .graphviz-build-deps - -# Opcache -RUN /usr/bin/install -d -m 777 /var/run/opcache - -# Remove default FPM pool -RUN rm /usr/local/etc/php-fpm.d/www.conf && \ - rm /usr/local/etc/php-fpm.d/docker.conf && \ - rm /usr/local/etc/php-fpm.d/zz-docker.conf - -# Add FPM configs -COPY context/php/php-fpm.d/worker.conf /usr/local/etc/php-fpm.d/worker.conf -COPY context/php/php-fpm.conf /usr/local/etc/php-fpm.conf - -# Copy php.ini configuration -COPY context/php/php.ini /usr/local/etc/php/ -COPY context/php/conf.d/90-opcache.ini /usr/local/etc/php/conf.d/ -COPY context/php/conf.d/92-session.ini /usr/local/etc/php/conf.d/ -COPY context/php/disabled /usr/local/etc/php/disabled - -WORKDIR /data - -# Install composer -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} - -# Create application user 'spryker' -RUN addgroup spryker && \ - adduser -h /home/spryker -s /bin/sh -G www-data -D spryker && \ - chown spryker:spryker ${srcRoot} - -USER spryker -ENV COMPOSER_MEMORY_LIMIT=-1 -RUN mkdir -p /home/spryker/.composer -RUN bash -c '[[ $COMPOSER_VERSION == "1"* ]] && composer global require hirak/prestissimo && rm -rf /home/spryker/.composer/cache || true' - -USER root diff --git a/alpine/3.21/8.4/Dockerfile b/alpine/3.21/8.4/Dockerfile deleted file mode 100644 index 57511e2d..00000000 --- a/alpine/3.21/8.4/Dockerfile +++ /dev/null @@ -1,226 +0,0 @@ -# syntax = docker/dockerfile:1.0.2-experimental -ARG SPRYKER_PHP_VERSION=8.4.15 -FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.21 - -ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.10.3 -ARG BLACKFIRE_VERSION=1.92.48 -ARG BLACKFIRE_PHP_VERSION=84 -ARG NEWRELIC_VERSION=12.12.0.41 -ARG TIDEWAYS_VERSION=5.47.0 -ARG TIDEWAYS_PHP_VERSION=8.4 - -ENV srcRoot /data -RUN mkdir -p ${srcRoot} - -ARG PHP_RUN_DEPS="\ - freetype \ - gmp \ - gnu-libiconv \ - icu-libs \ - libbz2 \ - libc6-compat \ - libjpeg-turbo \ - libpng \ - libwebp \ - libxml2 \ - libxpm \ - libxslt \ - libzip \ - rabbitmq-c \ - imagemagick" - -ARG PHP_BUILD_DEPS="\ - autoconf \ - bzip2-dev \ - freetype-dev \ - gmp-dev \ - icu-dev \ - icu-data-full \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - postgresql-dev \ - rabbitmq-c-dev \ - g++ \ - imagemagick-dev" - -ARG PHP_EXTENSIONS="\ - bcmath \ - bz2 \ - ftp \ - gd \ - gmp \ - intl \ - mysqli \ - opcache \ - pcntl \ - pdo_mysql \ - pdo_pgsql \ - pgsql \ - soap \ - sockets \ - zip" - -ARG ADDITIONAL_PHP_EXTENSIONS="\ - xsl" - -ARG PHP_PECL_EXTENSIONS="\ - apcu \ - redis" - -ARG ADDITIONAL_PHP_PECL_EXTENSIONS="\ - pcov \ - xdebug \ - xhprof \ - excimer \ - amqp \ - imagick \ - xlswriter" - -ARG GRAPHVIZ_BUILD_DEPS="\ - expat-dev" - -ARG CFLAGS="-I/usr/src/php" -RUN apk update \ - && apk upgrade \ - && apk add --no-cache \ - bash \ - coreutils \ - curl \ - g++ \ - git \ - make \ - mysql-client \ - netcat-openbsd \ - openssh \ - postgresql-client \ - procps \ - python3 \ - shadow \ - unzip \ - linux-headers \ - libstdc++ \ - ${PHP_RUN_DEPS} \ - && apk add --no-cache --virtual .php-build-deps ${PHP_BUILD_DEPS} \ - && apk add --no-cache --virtual .graphviz-build-deps ${GRAPHVIZ_BUILD_DEPS} \ - && rm -rf /var/lib/apt/lists/ \ - && cd /tmp && curl -LO https://github.com/unicode-org/icu/releases/download/release-74-1/icu4c-74_1-src.tgz \ - && tar xzf icu4c-74_1-src.tgz \ - && cd icu/source && ./configure --prefix=/usr && make && make install \ - && docker-php-ext-configure gd \ - --disable-gd-jis-conv \ - --with-freetype=/usr \ - --with-jpeg=/usr \ - --with-webp=/usr \ - --with-xpm=/usr \ - && docker-php-ext-install -j5 ${PHP_EXTENSIONS} ${ADDITIONAL_PHP_EXTENSIONS} \ - && pecl install -o -f ${PHP_PECL_EXTENSIONS} ${ADDITIONAL_PHP_PECL_EXTENSIONS} \ - && rm -rf /tmp/pear \ - && docker-php-ext-enable ${PHP_EXTENSIONS} ${PHP_PECL_EXTENSIONS} \ - && for ext in ${ADDITIONAL_PHP_EXTENSIONS}; do rm -f /usr/local/etc/php/conf.d/docker-php-ext-${ext}.ini; done \ - && apk del --no-cache .php-build-deps - -# Related to https://github.com/docker-library/php/issues/240 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so - -# Otel -RUN echo "https://dl-cdn.alpinelinux.org/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/community" >> /etc/apk/repositories -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && apk add --no-cache \ - php${PHP_VERSION}-pecl-grpc \ - php${PHP_VERSION}-pecl-protobuf \ - php${PHP_VERSION}-pecl-opentelemetry - -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && EXT_DIR=$(php -r "echo ini_get('extension_dir');") \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/grpc.so $EXT_DIR/grpc.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/protobuf.so $EXT_DIR/protobuf.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/opentelemetry.so $EXT_DIR/opentelemetry.so - -## Blackfire -ENV BLACKFIRE_AGENT_SOCKET='' -RUN architecture=$(case ${TARGETPLATFORM} in "linux/amd64") echo "amd64" ;; linux/arm64) echo "arm64" ;; *) echo "amd64" ;; esac) \ - && curl -A "Docker" -o /tmp/blackfire.so -D - -L -s https://packages.blackfire.io/binaries/blackfire-php/${BLACKFIRE_VERSION}/blackfire-php-alpine_${architecture}-php-${BLACKFIRE_PHP_VERSION}.so \ - && mv /tmp/blackfire.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so - -# New Relic -ENV NEWRELIC_ENABLED=0 -ENV NEWRELIC_LICENSE='' -ENV NEWRELIC_APPNAME='Spryker' -ENV NEWRELIC_DISTRIBUTED_TRACING_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_ENABLED=0 -ENV NEWRELIC_SPAN_EVENTS_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_THRESHOLD=0 -ENV NEWRELIC_DISTRIBUTED_TRACING_EXCLUDE_NEWRELIC_HEADER=0 - -RUN bash -c 'curl -L "https://download.newrelic.com/php_agent/archive/${NEWRELIC_VERSION}/newrelic-php5-${NEWRELIC_VERSION}-linux-musl.tar.gz" | tar -C /tmp -zx \ - && export NR_INSTALL_USE_CP_NOT_LN=1 \ - && export NR_INSTALL_SILENT=1 \ - && /tmp/newrelic-php5-*/newrelic-install install \ - && rm -rf /tmp/newrelic-php5-* /tmp/nrinstall* \ - && /usr/bin/install -d -m 777 /var/log/newrelic/ \ - && rm /usr/local/etc/php/conf.d/newrelic.ini' - -# Tideways -ENV TIDEWAYS_APIKEY='' -ENV TIDEWAYS_DAEMON_URI='' -ENV TIDEWAYS_CLI_ENABLED=0 -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/amd64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/arm64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -# GraphViz 7.0.5 -RUN cd /tmp && \ - curl -L https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/7.0.5/graphviz-7.0.5.tar.gz | tar -zx && \ - cd /tmp/graphviz-7.0.5 && \ - ./configure && \ - make && \ - make install && \ - rm -rf /tmp/graphviz-7.0.5 && \ - apk del --no-cache .graphviz-build-deps - -# Opcache -RUN /usr/bin/install -d -m 777 /var/run/opcache - -# Remove default FPM pool -RUN rm /usr/local/etc/php-fpm.d/www.conf && \ - rm /usr/local/etc/php-fpm.d/docker.conf && \ - rm /usr/local/etc/php-fpm.d/zz-docker.conf - -# Add FPM configs -COPY context/php/php-fpm.d/worker.conf /usr/local/etc/php-fpm.d/worker.conf -COPY context/php/php-fpm.conf /usr/local/etc/php-fpm.conf - -# Copy php.ini configuration -COPY context/php/php.ini /usr/local/etc/php/ -COPY context/php/conf.d/90-opcache.ini /usr/local/etc/php/conf.d/ -COPY context/php/conf.d/92-session.ini /usr/local/etc/php/conf.d/ -COPY context/php/disabled /usr/local/etc/php/disabled - -WORKDIR /data - -# Install composer -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} - -# Create application user 'spryker' -RUN addgroup spryker && \ - adduser -h /home/spryker -s /bin/sh -G www-data -D spryker && \ - chown spryker:spryker ${srcRoot} - -USER spryker -ENV COMPOSER_MEMORY_LIMIT=-1 -RUN mkdir -p /home/spryker/.composer -RUN bash -c '[[ $COMPOSER_VERSION == "1"* ]] && composer global require hirak/prestissimo && rm -rf /home/spryker/.composer/cache || true' - -USER root diff --git a/alpine/3.22/8.2/Dockerfile b/alpine/3.22/8.2/Dockerfile deleted file mode 100644 index 245fbf6a..00000000 --- a/alpine/3.22/8.2/Dockerfile +++ /dev/null @@ -1,235 +0,0 @@ -# syntax = docker/dockerfile:1.0.2-experimental -ARG SPRYKER_PHP_VERSION=8.2.31 -FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.22 - -ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.10.3 -ARG BLACKFIRE_VERSION=1.87.1 -ARG BLACKFIRE_PHP_VERSION=82 -ARG NEWRELIC_VERSION=12.12.0.41 -ARG TIDEWAYS_VERSION=5.47.0 -ARG TIDEWAYS_PHP_VERSION=8.2 - -ENV srcRoot /data -RUN mkdir -p ${srcRoot} - -ARG PHP_RUN_DEPS="\ - freetype \ - gmp \ - gnu-libiconv \ - icu-libs \ - libbz2 \ - libc6-compat \ - libjpeg-turbo \ - libpng \ - libwebp \ - libxml2 \ - libxpm \ - libxslt \ - libzip \ - rabbitmq-c \ - imagemagick" - -ARG PHP_BUILD_DEPS="\ - autoconf \ - bzip2-dev \ - freetype-dev \ - gmp-dev \ - icu-dev \ - icu-data-full \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - postgresql-dev \ - rabbitmq-c-dev \ - g++ \ - imagemagick-dev" - -ARG PHP_EXTENSIONS="\ - bcmath \ - bz2 \ - ftp \ - gd \ - gmp \ - intl \ - mysqli \ - opcache \ - pcntl \ - pdo_mysql \ - pdo_pgsql \ - pgsql \ - soap \ - sockets \ - zip" - -ARG ADDITIONAL_PHP_EXTENSIONS="\ - xsl" - -ARG PHP_PECL_EXTENSIONS="\ - apcu \ - redis" - -ARG ADDITIONAL_PHP_PECL_EXTENSIONS="\ - pcov \ - xdebug \ - xhprof \ - excimer \ - amqp \ - imagick \ - xlswriter" - -ARG GRAPHVIZ_BUILD_DEPS="\ - expat-dev" - -ARG CFLAGS="-I/usr/src/php" -RUN apk update \ - && apk upgrade \ - && apk add --no-cache \ - bash \ - coreutils \ - curl \ - g++ \ - git \ - make \ - mysql-client \ - netcat-openbsd \ - openssh \ - postgresql-client \ - procps \ - python3 \ - shadow \ - unzip \ - linux-headers \ - libstdc++ \ - openssl-dev \ - zlib-dev \ - scdoc \ - ${PHP_RUN_DEPS} \ - && apk add --no-cache --virtual .php-build-deps ${PHP_BUILD_DEPS} \ - && apk add --no-cache --virtual .graphviz-build-deps ${GRAPHVIZ_BUILD_DEPS} \ - && rm -rf /var/lib/apt/lists/ \ - && cd /tmp \ - && git clone --depth 1 --branch v3.0.0_rc7 https://github.com/alpinelinux/apk-tools.git apk-tools-v3.0.0_rc7 \ - && cd apk-tools-v3.0.0_rc7 && make LUA=no && make LUA=no install \ - && cd /tmp \ - && curl -LO https://github.com/unicode-org/icu/releases/download/release-74-1/icu4c-74_1-src.tgz \ - && tar xzf icu4c-74_1-src.tgz \ - && cd icu/source && ./configure --prefix=/usr && make && make install \ - && cd /tmp \ - && rm -rf /tmp/apk-tools-v3.0.0_rc7 /tmp/icu4c-74_1-src.tgz /tmp/icu \ - && docker-php-ext-configure gd \ - --disable-gd-jis-conv \ - --with-freetype=/usr \ - --with-jpeg=/usr \ - --with-webp=/usr \ - --with-xpm=/usr \ - && docker-php-ext-install -j5 ${PHP_EXTENSIONS} ${ADDITIONAL_PHP_EXTENSIONS} \ - && pecl install -o -f ${PHP_PECL_EXTENSIONS} ${ADDITIONAL_PHP_PECL_EXTENSIONS} \ - && rm -rf /tmp/pear \ - && docker-php-ext-enable ${PHP_EXTENSIONS} ${PHP_PECL_EXTENSIONS} \ - && for ext in ${ADDITIONAL_PHP_EXTENSIONS}; do rm -f /usr/local/etc/php/conf.d/docker-php-ext-${ext}.ini; done \ - && apk del --no-cache .php-build-deps - -# Related to https://github.com/docker-library/php/issues/240 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so - -# Otel -RUN echo "https://dl-cdn.alpinelinux.org/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/community" >> /etc/apk/repositories -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && apk add --no-cache \ - php${PHP_VERSION}-pecl-grpc \ - php${PHP_VERSION}-pecl-protobuf \ - php${PHP_VERSION}-pecl-opentelemetry - -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && EXT_DIR=$(php -r "echo ini_get('extension_dir');") \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/grpc.so $EXT_DIR/grpc.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/protobuf.so $EXT_DIR/protobuf.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/opentelemetry.so $EXT_DIR/opentelemetry.so - -# Blackfire -ENV BLACKFIRE_AGENT_SOCKET='' -RUN architecture=$(case ${TARGETPLATFORM} in "linux/amd64") echo "amd64" ;; linux/arm64) echo "arm64" ;; *) echo "amd64" ;; esac) \ - && curl -A "Docker" -o /tmp/blackfire.so -D - -L -s https://packages.blackfire.io/binaries/blackfire-php/${BLACKFIRE_VERSION}/blackfire-php-alpine_${architecture}-php-${BLACKFIRE_PHP_VERSION}.so \ - && mv /tmp/blackfire.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so - -# New Relic -ENV NEWRELIC_ENABLED=0 -ENV NEWRELIC_LICENSE='' -ENV NEWRELIC_APPNAME='Spryker' -ENV NEWRELIC_DISTRIBUTED_TRACING_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_ENABLED=0 -ENV NEWRELIC_SPAN_EVENTS_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_THRESHOLD=0 -ENV NEWRELIC_DISTRIBUTED_TRACING_EXCLUDE_NEWRELIC_HEADER=0 - -RUN bash -c 'curl -L "https://download.newrelic.com/php_agent/archive/${NEWRELIC_VERSION}/newrelic-php5-${NEWRELIC_VERSION}-linux-musl.tar.gz" | tar -C /tmp -zx \ - && export NR_INSTALL_USE_CP_NOT_LN=1 \ - && export NR_INSTALL_SILENT=1 \ - && /tmp/newrelic-php5-*/newrelic-install install \ - && rm -rf /tmp/newrelic-php5-* /tmp/nrinstall* \ - && /usr/bin/install -d -m 777 /var/log/newrelic/ \ - && rm /usr/local/etc/php/conf.d/newrelic.ini' - -# Tideways -ENV TIDEWAYS_APIKEY='' -ENV TIDEWAYS_DAEMON_URI='' -ENV TIDEWAYS_CLI_ENABLED=0 -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/amd64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/arm64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -# #GraphViz 7.0.5 -# RUN cd /tmp && \ -# curl -L https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/7.0.5/graphviz-7.0.5.tar.gz | tar -zx && \ -# cd /tmp/graphviz-7.0.5 && \ -# ./configure && \ -# make && \ -# make install && \ -# rm -rf /tmp/graphviz-7.0.5 && \ -# apk del --no-cache .graphviz-build-deps - -# Opcache -RUN /usr/bin/install -d -m 777 /var/run/opcache - -# Remove default FPM pool -RUN rm /usr/local/etc/php-fpm.d/www.conf && \ - rm /usr/local/etc/php-fpm.d/docker.conf && \ - rm /usr/local/etc/php-fpm.d/zz-docker.conf - -# Add FPM configs -COPY context/php/php-fpm.d/worker.conf /usr/local/etc/php-fpm.d/worker.conf -COPY context/php/php-fpm.conf /usr/local/etc/php-fpm.conf - -# Copy php.ini configuration -COPY context/php/php.ini /usr/local/etc/php/ -COPY context/php/conf.d/90-opcache.ini /usr/local/etc/php/conf.d/ -COPY context/php/conf.d/92-session.ini /usr/local/etc/php/conf.d/ -COPY context/php/disabled /usr/local/etc/php/disabled - -WORKDIR /data - -# Install composer -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} - -# Create application user 'spryker' -RUN addgroup spryker && \ - adduser -h /home/spryker -s /bin/sh -G www-data -D spryker && \ - chown spryker:spryker ${srcRoot} - -USER spryker -ENV COMPOSER_MEMORY_LIMIT=-1 -RUN mkdir -p /home/spryker/.composer -RUN bash -c '[[ $COMPOSER_VERSION == "1"* ]] && composer global require hirak/prestissimo && rm -rf /home/spryker/.composer/cache || true' - -USER root diff --git a/alpine/3.22/8.3/Dockerfile b/alpine/3.22/8.3/Dockerfile deleted file mode 100644 index 016a2418..00000000 --- a/alpine/3.22/8.3/Dockerfile +++ /dev/null @@ -1,235 +0,0 @@ -# syntax = docker/dockerfile:1.0.2-experimental -ARG SPRYKER_PHP_VERSION=8.3.31 -FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.22 - -ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.10.3 -ARG BLACKFIRE_VERSION=1.92.48 -ARG BLACKFIRE_PHP_VERSION=83 -ARG NEWRELIC_VERSION=12.12.0.41 -ARG TIDEWAYS_VERSION=5.47.0 -ARG TIDEWAYS_PHP_VERSION=8.3 - -ENV srcRoot /data -RUN mkdir -p ${srcRoot} - -ARG PHP_RUN_DEPS="\ - freetype \ - gmp \ - gnu-libiconv \ - icu-libs \ - libbz2 \ - libc6-compat \ - libjpeg-turbo \ - libpng \ - libwebp \ - libxml2 \ - libxpm \ - libxslt \ - libzip \ - rabbitmq-c \ - imagemagick" - -ARG PHP_BUILD_DEPS="\ - autoconf \ - bzip2-dev \ - freetype-dev \ - gmp-dev \ - icu-dev \ - icu-data-full \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - postgresql-dev \ - rabbitmq-c-dev \ - g++ \ - imagemagick-dev" - -ARG PHP_EXTENSIONS="\ - bcmath \ - bz2 \ - ftp \ - gd \ - gmp \ - intl \ - mysqli \ - opcache \ - pcntl \ - pdo_mysql \ - pdo_pgsql \ - pgsql \ - soap \ - sockets \ - zip" - -ARG ADDITIONAL_PHP_EXTENSIONS="\ - xsl" - -ARG PHP_PECL_EXTENSIONS="\ - apcu \ - redis" - -ARG ADDITIONAL_PHP_PECL_EXTENSIONS="\ - pcov \ - xdebug \ - xhprof \ - excimer \ - amqp \ - imagick \ - xlswriter" - -ARG GRAPHVIZ_BUILD_DEPS="\ - expat-dev" - -ARG CFLAGS="-I/usr/src/php" -RUN apk update \ - && apk upgrade \ - && apk add --no-cache \ - bash \ - coreutils \ - curl \ - g++ \ - git \ - make \ - mysql-client \ - netcat-openbsd \ - openssh \ - postgresql-client \ - procps \ - python3 \ - shadow \ - unzip \ - linux-headers \ - libstdc++ \ - openssl-dev \ - zlib-dev \ - scdoc \ - ${PHP_RUN_DEPS} \ - && apk add --no-cache --virtual .php-build-deps ${PHP_BUILD_DEPS} \ - && apk add --no-cache --virtual .graphviz-build-deps ${GRAPHVIZ_BUILD_DEPS} \ - && rm -rf /var/lib/apt/lists/ \ - && cd /tmp \ - && git clone --depth 1 --branch v3.0.0_rc7 https://github.com/alpinelinux/apk-tools.git apk-tools-v3.0.0_rc7 \ - && cd apk-tools-v3.0.0_rc7 && make LUA=no && make LUA=no install \ - && cd /tmp \ - && curl -LO https://github.com/unicode-org/icu/releases/download/release-74-1/icu4c-74_1-src.tgz \ - && tar xzf icu4c-74_1-src.tgz \ - && cd icu/source && ./configure --prefix=/usr && make && make install \ - && cd /tmp \ - && rm -rf /tmp/apk-tools-v3.0.0_rc7 /tmp/icu4c-74_1-src.tgz /tmp/icu \ - && docker-php-ext-configure gd \ - --disable-gd-jis-conv \ - --with-freetype=/usr \ - --with-jpeg=/usr \ - --with-webp=/usr \ - --with-xpm=/usr \ - && docker-php-ext-install -j5 ${PHP_EXTENSIONS} ${ADDITIONAL_PHP_EXTENSIONS} \ - && pecl install -o -f ${PHP_PECL_EXTENSIONS} ${ADDITIONAL_PHP_PECL_EXTENSIONS} \ - && rm -rf /tmp/pear \ - && docker-php-ext-enable ${PHP_EXTENSIONS} ${PHP_PECL_EXTENSIONS} \ - && for ext in ${ADDITIONAL_PHP_EXTENSIONS}; do rm -f /usr/local/etc/php/conf.d/docker-php-ext-${ext}.ini; done \ - && apk del --no-cache .php-build-deps - -# Related to https://github.com/docker-library/php/issues/240 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so - -# Otel -RUN echo "https://dl-cdn.alpinelinux.org/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/community" >> /etc/apk/repositories -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && apk add --no-cache \ - php${PHP_VERSION}-pecl-grpc \ - php${PHP_VERSION}-pecl-protobuf \ - php${PHP_VERSION}-pecl-opentelemetry - -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && EXT_DIR=$(php -r "echo ini_get('extension_dir');") \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/grpc.so $EXT_DIR/grpc.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/protobuf.so $EXT_DIR/protobuf.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/opentelemetry.so $EXT_DIR/opentelemetry.so - -## Blackfire -ENV BLACKFIRE_AGENT_SOCKET='' -RUN architecture=$(case ${TARGETPLATFORM} in "linux/amd64") echo "amd64" ;; linux/arm64) echo "arm64" ;; *) echo "amd64" ;; esac) \ - && curl -A "Docker" -o /tmp/blackfire.so -D - -L -s https://packages.blackfire.io/binaries/blackfire-php/${BLACKFIRE_VERSION}/blackfire-php-alpine_${architecture}-php-${BLACKFIRE_PHP_VERSION}.so \ - && mv /tmp/blackfire.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so - -# New Relic -ENV NEWRELIC_ENABLED=0 -ENV NEWRELIC_LICENSE='' -ENV NEWRELIC_APPNAME='Spryker' -ENV NEWRELIC_DISTRIBUTED_TRACING_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_ENABLED=0 -ENV NEWRELIC_SPAN_EVENTS_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_THRESHOLD=0 -ENV NEWRELIC_DISTRIBUTED_TRACING_EXCLUDE_NEWRELIC_HEADER=0 - -RUN bash -c 'curl -L "https://download.newrelic.com/php_agent/archive/${NEWRELIC_VERSION}/newrelic-php5-${NEWRELIC_VERSION}-linux-musl.tar.gz" | tar -C /tmp -zx \ - && export NR_INSTALL_USE_CP_NOT_LN=1 \ - && export NR_INSTALL_SILENT=1 \ - && /tmp/newrelic-php5-*/newrelic-install install \ - && rm -rf /tmp/newrelic-php5-* /tmp/nrinstall* \ - && /usr/bin/install -d -m 777 /var/log/newrelic/ \ - && rm /usr/local/etc/php/conf.d/newrelic.ini' - -# Tideways -ENV TIDEWAYS_APIKEY='' -ENV TIDEWAYS_DAEMON_URI='' -ENV TIDEWAYS_CLI_ENABLED=0 -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/amd64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/arm64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -# GraphViz 7.0.5 -RUN cd /tmp && \ - curl -L https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/7.0.5/graphviz-7.0.5.tar.gz | tar -zx && \ - cd /tmp/graphviz-7.0.5 && \ - ./configure && \ - make && \ - make install && \ - rm -rf /tmp/graphviz-7.0.5 && \ - apk del --no-cache .graphviz-build-deps - -# Opcache -RUN /usr/bin/install -d -m 777 /var/run/opcache - -# Remove default FPM pool -RUN rm /usr/local/etc/php-fpm.d/www.conf && \ - rm /usr/local/etc/php-fpm.d/docker.conf && \ - rm /usr/local/etc/php-fpm.d/zz-docker.conf - -# Add FPM configs -COPY context/php/php-fpm.d/worker.conf /usr/local/etc/php-fpm.d/worker.conf -COPY context/php/php-fpm.conf /usr/local/etc/php-fpm.conf - -# Copy php.ini configuration -COPY context/php/php.ini /usr/local/etc/php/ -COPY context/php/conf.d/90-opcache.ini /usr/local/etc/php/conf.d/ -COPY context/php/conf.d/92-session.ini /usr/local/etc/php/conf.d/ -COPY context/php/disabled /usr/local/etc/php/disabled - -WORKDIR /data - -# Install composer -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} - -# Create application user 'spryker' -RUN addgroup spryker && \ - adduser -h /home/spryker -s /bin/sh -G www-data -D spryker && \ - chown spryker:spryker ${srcRoot} - -USER spryker -ENV COMPOSER_MEMORY_LIMIT=-1 -RUN mkdir -p /home/spryker/.composer -RUN bash -c '[[ $COMPOSER_VERSION == "1"* ]] && composer global require hirak/prestissimo && rm -rf /home/spryker/.composer/cache || true' - -USER root diff --git a/alpine/3.22/8.4/Dockerfile b/alpine/3.22/8.4/Dockerfile deleted file mode 100644 index e21dc95b..00000000 --- a/alpine/3.22/8.4/Dockerfile +++ /dev/null @@ -1,235 +0,0 @@ -# syntax = docker/dockerfile:1.0.2-experimental -ARG SPRYKER_PHP_VERSION=8.4.22 -FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.22 - -ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.10.3 -ARG BLACKFIRE_VERSION=1.92.48 -ARG BLACKFIRE_PHP_VERSION=84 -ARG NEWRELIC_VERSION=12.12.0.41 -ARG TIDEWAYS_VERSION=5.47.0 -ARG TIDEWAYS_PHP_VERSION=8.4 - -ENV srcRoot /data -RUN mkdir -p ${srcRoot} - -ARG PHP_RUN_DEPS="\ - freetype \ - gmp \ - gnu-libiconv \ - icu-libs \ - libbz2 \ - libc6-compat \ - libjpeg-turbo \ - libpng \ - libwebp \ - libxml2 \ - libxpm \ - libxslt \ - libzip \ - rabbitmq-c \ - imagemagick" - -ARG PHP_BUILD_DEPS="\ - autoconf \ - bzip2-dev \ - freetype-dev \ - gmp-dev \ - icu-dev \ - icu-data-full \ - libjpeg-turbo-dev \ - libpng-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - postgresql-dev \ - rabbitmq-c-dev \ - g++ \ - imagemagick-dev" - -ARG PHP_EXTENSIONS="\ - bcmath \ - bz2 \ - ftp \ - gd \ - gmp \ - intl \ - mysqli \ - opcache \ - pcntl \ - pdo_mysql \ - pdo_pgsql \ - pgsql \ - soap \ - sockets \ - zip" - -ARG ADDITIONAL_PHP_EXTENSIONS="\ - xsl" - -ARG PHP_PECL_EXTENSIONS="\ - apcu \ - redis" - -ARG ADDITIONAL_PHP_PECL_EXTENSIONS="\ - pcov \ - xdebug \ - xhprof \ - excimer \ - amqp \ - imagick \ - xlswriter" - -ARG GRAPHVIZ_BUILD_DEPS="\ - expat-dev" - -ARG CFLAGS="-I/usr/src/php" -RUN apk update \ - && apk upgrade \ - && apk add --no-cache \ - bash \ - coreutils \ - curl \ - g++ \ - git \ - make \ - mysql-client \ - netcat-openbsd \ - openssh \ - postgresql-client \ - procps \ - python3 \ - shadow \ - unzip \ - linux-headers \ - libstdc++ \ - openssl-dev \ - zlib-dev \ - scdoc \ - ${PHP_RUN_DEPS} \ - && apk add --no-cache --virtual .php-build-deps ${PHP_BUILD_DEPS} \ - && apk add --no-cache --virtual .graphviz-build-deps ${GRAPHVIZ_BUILD_DEPS} \ - && rm -rf /var/lib/apt/lists/ \ - && cd /tmp \ - && git clone --depth 1 --branch v3.0.0_rc7 https://github.com/alpinelinux/apk-tools.git apk-tools-v3.0.0_rc7 \ - && cd apk-tools-v3.0.0_rc7 && make LUA=no && make LUA=no install \ - && cd /tmp \ - && curl -LO https://github.com/unicode-org/icu/releases/download/release-74-1/icu4c-74_1-src.tgz \ - && tar xzf icu4c-74_1-src.tgz \ - && cd icu/source && ./configure --prefix=/usr && make && make install \ - && cd /tmp \ - && rm -rf /tmp/apk-tools-v3.0.0_rc7 /tmp/icu4c-74_1-src.tgz /tmp/icu \ - && docker-php-ext-configure gd \ - --disable-gd-jis-conv \ - --with-freetype=/usr \ - --with-jpeg=/usr \ - --with-webp=/usr \ - --with-xpm=/usr \ - && docker-php-ext-install -j5 ${PHP_EXTENSIONS} ${ADDITIONAL_PHP_EXTENSIONS} \ - && pecl install -o -f ${PHP_PECL_EXTENSIONS} ${ADDITIONAL_PHP_PECL_EXTENSIONS} \ - && rm -rf /tmp/pear \ - && docker-php-ext-enable ${PHP_EXTENSIONS} ${PHP_PECL_EXTENSIONS} \ - && for ext in ${ADDITIONAL_PHP_EXTENSIONS}; do rm -f /usr/local/etc/php/conf.d/docker-php-ext-${ext}.ini; done \ - && apk del --no-cache .php-build-deps - -# Related to https://github.com/docker-library/php/issues/240 -ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so - -# Otel -RUN echo "https://dl-cdn.alpinelinux.org/alpine/v$(cut -d'.' -f1,2 /etc/alpine-release)/community" >> /etc/apk/repositories -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && apk add --no-cache \ - php${PHP_VERSION}-pecl-grpc \ - php${PHP_VERSION}-pecl-protobuf \ - php${PHP_VERSION}-pecl-opentelemetry - -RUN PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ - && EXT_DIR=$(php -r "echo ini_get('extension_dir');") \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/grpc.so $EXT_DIR/grpc.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/protobuf.so $EXT_DIR/protobuf.so \ - && ln -s /usr/lib/php${PHP_VERSION}/modules/opentelemetry.so $EXT_DIR/opentelemetry.so - -## Blackfire -ENV BLACKFIRE_AGENT_SOCKET='' -RUN architecture=$(case ${TARGETPLATFORM} in "linux/amd64") echo "amd64" ;; linux/arm64) echo "arm64" ;; *) echo "amd64" ;; esac) \ - && curl -A "Docker" -o /tmp/blackfire.so -D - -L -s https://packages.blackfire.io/binaries/blackfire-php/${BLACKFIRE_VERSION}/blackfire-php-alpine_${architecture}-php-${BLACKFIRE_PHP_VERSION}.so \ - && mv /tmp/blackfire.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so - -# New Relic -ENV NEWRELIC_ENABLED=0 -ENV NEWRELIC_LICENSE='' -ENV NEWRELIC_APPNAME='Spryker' -ENV NEWRELIC_DISTRIBUTED_TRACING_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_ENABLED=0 -ENV NEWRELIC_SPAN_EVENTS_ENABLED=0 -ENV NEWRELIC_TRANSACTION_TRACER_THRESHOLD=0 -ENV NEWRELIC_DISTRIBUTED_TRACING_EXCLUDE_NEWRELIC_HEADER=0 - -RUN bash -c 'curl -L "https://download.newrelic.com/php_agent/archive/${NEWRELIC_VERSION}/newrelic-php5-${NEWRELIC_VERSION}-linux-musl.tar.gz" | tar -C /tmp -zx \ - && export NR_INSTALL_USE_CP_NOT_LN=1 \ - && export NR_INSTALL_SILENT=1 \ - && /tmp/newrelic-php5-*/newrelic-install install \ - && rm -rf /tmp/newrelic-php5-* /tmp/nrinstall* \ - && /usr/bin/install -d -m 777 /var/log/newrelic/ \ - && rm /usr/local/etc/php/conf.d/newrelic.ini' - -# Tideways -ENV TIDEWAYS_APIKEY='' -ENV TIDEWAYS_DAEMON_URI='' -ENV TIDEWAYS_CLI_ENABLED=0 -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/amd64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-x86_64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -RUN bash -c 'if [ "${TARGETPLATFORM}" == "linux/arm64" ]; then \ - wget "https://s3-eu-west-1.amazonaws.com/tideways/extension/${TIDEWAYS_VERSION}/tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz" \ - && tar xvzf tideways-php-${TIDEWAYS_VERSION}-alpine-arm64.tar.gz \ - && cp ./tideways-php-${TIDEWAYS_VERSION}/tideways-php-alpine-${TIDEWAYS_PHP_VERSION}.so $(php-config --extension-dir)/tideways.so; fi' - -# GraphViz 7.0.5 -RUN cd /tmp && \ - curl -L https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/7.0.5/graphviz-7.0.5.tar.gz | tar -zx && \ - cd /tmp/graphviz-7.0.5 && \ - ./configure && \ - make && \ - make install && \ - rm -rf /tmp/graphviz-7.0.5 && \ - apk del --no-cache .graphviz-build-deps - -# Opcache -RUN /usr/bin/install -d -m 777 /var/run/opcache - -# Remove default FPM pool -RUN rm /usr/local/etc/php-fpm.d/www.conf && \ - rm /usr/local/etc/php-fpm.d/docker.conf && \ - rm /usr/local/etc/php-fpm.d/zz-docker.conf - -# Add FPM configs -COPY context/php/php-fpm.d/worker.conf /usr/local/etc/php-fpm.d/worker.conf -COPY context/php/php-fpm.conf /usr/local/etc/php-fpm.conf - -# Copy php.ini configuration -COPY context/php/php.ini /usr/local/etc/php/ -COPY context/php/conf.d/90-opcache.ini /usr/local/etc/php/conf.d/ -COPY context/php/conf.d/92-session.ini /usr/local/etc/php/conf.d/ -COPY context/php/disabled /usr/local/etc/php/disabled - -WORKDIR /data - -# Install composer -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} - -# Create application user 'spryker' -RUN addgroup spryker && \ - adduser -h /home/spryker -s /bin/sh -G www-data -D spryker && \ - chown spryker:spryker ${srcRoot} - -USER spryker -ENV COMPOSER_MEMORY_LIMIT=-1 -RUN mkdir -p /home/spryker/.composer -RUN bash -c '[[ $COMPOSER_VERSION == "1"* ]] && composer global require hirak/prestissimo && rm -rf /home/spryker/.composer/cache || true' - -USER root From 4778e13f23138b8d0f009dd2c0d487f1312302a8 Mon Sep 17 00:00:00 2001 From: alexanderM91 Date: Wed, 28 Oct 2026 10:24:47 +0100 Subject: [PATCH 2/2] ReadMe updates --- README.md | 123 ++++++++++++++++++++++++++---------------------------- 1 file changed, 60 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index 6b875698..c1c0067e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # PHP-FPM -[![Docker Stars](https://img.shields.io/docker/stars/spryker/php.svg)](https://hub.docker.com/r/spryker/php) -[![Docker Pulls](https://img.shields.io/docker/pulls/spryker/php.svg)](https://hub.docker.com/r/spryker/php) +[![Docker Stars](https://img.shields.io/docker/stars/spryker/php.svg)](https://store.docker.com/community/images/spryker/php) +[![Docker Pulls](https://img.shields.io/docker/pulls/spryker/php.svg)](https://store.docker.com/community/images/spryker/php) -## Description +# Description Extends official PHP Docker images with extensions and tools to be able to run Spryker. @@ -11,7 +11,7 @@ Extends official PHP Docker images with extensions and tools to be able to run S * `Alpine 3.23` * `Alpine 3.24` * `Debian "bookworm"` -* Platforms: `linux/amd64`, `linux/arm64` + * Users: `root`, `spryker` * Working directory: `/data` * Includes: @@ -26,86 +26,84 @@ Extends official PHP Docker images with extensions and tools to be able to run S ## Tags -| Tag | PHP version | Linux distribution | Dockerfile | OTEL support | -|:--------------------------------------------------------------------------------------------|:------------|:-------------------|:-------------------------------------------------------------------------------------------|:------------:| -| [spryker/php:latest](https://hub.docker.com/r/spryker/php/tags?name=latest) | 8.2.35 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | -| [spryker/php:8.5](https://hub.docker.com/r/spryker/php/tags?name=8.5) | 8.5.12 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.5/Dockerfile) | ✔ | -| [spryker/php:8.4](https://hub.docker.com/r/spryker/php/tags?name=8.4) | 8.4.27 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3](https://hub.docker.com/r/spryker/php/tags?name=8.3) | 8.3.36 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2](https://hub.docker.com/r/spryker/php/tags?name=8.2) | 8.2.35 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | -| [spryker/php:8.5-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.5-alpine3.24) | 8.5.12 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.5/Dockerfile) | ✔ | -| [spryker/php:8.4-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.24) | 8.4.27 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.24) | 8.3.36 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.24) | 8.2.35 | Alpine 3.24 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.2/Dockerfile) | ✖ | -| [spryker/php:8.4-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.23) | 8.4.27 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.23) | 8.3.36 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.23) | 8.2.35 | Alpine 3.23 | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | -| [spryker/php:8.5-debian](https://hub.docker.com/r/spryker/php/tags?name=8.5-debian) | 8.5.12 | Debian "bookworm" | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.5/Dockerfile) | ✔ | -| [spryker/php:8.4-debian](https://hub.docker.com/r/spryker/php/tags?name=8.4-debian) | 8.4.27 | Debian "bookworm" | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3-debian](https://hub.docker.com/r/spryker/php/tags?name=8.3-debian) | 8.3.36 | Debian "bookworm" | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2-debian](https://hub.docker.com/r/spryker/php/tags?name=8.2-debian) | 8.2.35 | Debian "bookworm" | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.2/Dockerfile) | ✔ | - -### Discontinued tags - -The `*-alpine3.21` and `*-alpine3.22` tags are no longer built. The official PHP images stopped publishing for these Alpine releases, so they remain on PHP versions without the October 2026 security fixes. Switch to the matching `-alpine3.23` or `-alpine3.24` tag. +| Tag | PHP version | Linux distribution | Details | Dockerfile | OTEL support | +|:--------------------------------------------------------------------------------------------|:------------|:-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------|:------------:| +| [spryker/php:latest](https://hub.docker.com/r/spryker/php/tags?name=latest) | 8.2.35 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:latest.svg)](https://microbadger.com/images/spryker/php:latest "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | +| [spryker/php:8.5](https://hub.docker.com/r/spryker/php/tags?name=8.5) | 8.5.12 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.5.svg)](https://microbadger.com/images/spryker/php:8.5 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.5/Dockerfile) | ✔ | +| [spryker/php:8.4](https://hub.docker.com/r/spryker/php/tags?name=8.4) | 8.4.27 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.4.svg)](https://microbadger.com/images/spryker/php:8.4 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.4/Dockerfile) | ✔ | +| [spryker/php:8.3](https://hub.docker.com/r/spryker/php/tags?name=8.3) | 8.3.36 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.3.svg)](https://microbadger.com/images/spryker/php:8.3 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.3/Dockerfile) | ✔ | +| [spryker/php:8.2](https://hub.docker.com/r/spryker/php/tags?name=8.2) | 8.2.35 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.2.svg)](https://microbadger.com/images/spryker/php:8.2 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | +| [spryker/php:8.5-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.5-alpine3.24) | 8.5.12 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.5-alpine3.24.svg)](https://microbadger.com/images/spryker/php:8.5-alpine3.24 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.5/Dockerfile) | ✔ | +| [spryker/php:8.4-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.24) | 8.4.27 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.4-alpine3.24.svg)](https://microbadger.com/images/spryker/php:8.4-alpine3.24 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.4/Dockerfile) | ✔ | +| [spryker/php:8.3-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.24) | 8.3.36 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.3-alpine3.24.svg)](https://microbadger.com/images/spryker/php:8.3-alpine3.24 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.3/Dockerfile) | ✔ | +| [spryker/php:8.2-alpine3.24](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.24) | 8.2.35 | Alpine 3.24 | [![](https://images.microbadger.com/badges/image/spryker/php:8.2-alpine3.24.svg)](https://microbadger.com/images/spryker/php:8.2-alpine3.24 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.24/8.2/Dockerfile) | ✖ | +| [spryker/php:8.4-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.23) | 8.4.27 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.4-alpine3.23.svg)](https://microbadger.com/images/spryker/php:8.4-alpine3.23 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.4/Dockerfile) | ✔ | +| [spryker/php:8.3-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.23) | 8.3.36 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.3-alpine3.23.svg)](https://microbadger.com/images/spryker/php:8.3-alpine3.23 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.3/Dockerfile) | ✔ | +| [spryker/php:8.2-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.2-alpine3.23) | 8.2.35 | Alpine 3.23 | [![](https://images.microbadger.com/badges/image/spryker/php:8.2-alpine3.23.svg)](https://microbadger.com/images/spryker/php:8.2-alpine3.23 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.23/8.2/Dockerfile) | ✖ | +| [spryker/php:8.5-debian](https://hub.docker.com/r/spryker/php/tags?name=8.5-debian) | 8.5.12 | Debian "bookworm" | [![](https://images.microbadger.com/badges/image/spryker/php:8.5-debian.svg)](https://microbadger.com/images/spryker/php:8.5-debian "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.5/Dockerfile) | ✔ | +| [spryker/php:8.4-debian](https://hub.docker.com/r/spryker/php/tags?name=8.4-debian) | 8.4.27 | Debian "bookworm" | [![](https://images.microbadger.com/badges/image/spryker/php:8.4-debian.svg)](https://microbadger.com/images/spryker/php:8.4-debian "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.4/Dockerfile) | ✔ | +| [spryker/php:8.3-debian](https://hub.docker.com/r/spryker/php/tags?name=8.3-debian) | 8.3.36 | Debian "bookworm" | [![](https://images.microbadger.com/badges/image/spryker/php:8.3-debian.svg)](https://microbadger.com/images/spryker/php:8.3-debian "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.3/Dockerfile) | ✔ | +| [spryker/php:8.2-debian](https://hub.docker.com/r/spryker/php/tags?name=8.2-debian) | 8.2.35 | Debian "bookworm" | [![](https://images.microbadger.com/badges/image/spryker/php:8.2-debian.svg)](https://microbadger.com/images/spryker/php:8.2-debian "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/debian/bookworm/8.2/Dockerfile) | ✔ | ## How to use ### Pull image ```bash -docker pull spryker/php -docker pull spryker/php:8.4 +$ docker pull spryker/php +$ docker pull spryker/php:8.3 ``` ### Run container ```bash -docker run -i --rm spryker/php:latest php -v +$ docker run -i --rm spryker/php:latest php -v ``` ### Dockerfile ```dockerfile -FROM spryker/php:8.4 +FROM spryker/php:8.2 ``` ### docker-compose.yml ```yaml -services: - app: - image: spryker/php:8.4-debian +service1: + image: spryker/php:8.2-debian ``` -### Enable optional extensions +### Enable NewRelic +```dockerfile +FROM spryker/php:8.2 -The following extensions are built into every image but stay disabled. Their configuration files live in `/usr/local/etc/php/disabled/`. +RUN mv /usr/local/etc/php/disabled/newrelic.ini /usr/local/etc/php/conf.d/90-newrelic.ini +``` -| Extension | Purpose | -|:------------|:---------------------------------------------------------------------| -| `amqp` | RabbitMQ client | -| `blackfire` | Blackfire profiler probe, configured through `BLACKFIRE_*` variables | -| `excimer` | Sampling profiler | -| `imagick` | ImageMagick bindings | -| `newrelic` | New Relic APM agent, configured through `NEWRELIC_*` variables | -| `otel` | OpenTelemetry with gRPC and Protobuf; see [Tags](#tags) for support | -| `pcov` | Code coverage driver | -| `tideways` | Tideways profiler, configured through `TIDEWAYS_*` variables | -| `xhprof` | Hierarchical profiler | -| `xlswriter` | Reads and writes XLSX files | -| `xsl` | XSLT transformations with `XSLTProcessor` | +### Enable Blackfire +```dockerfile +FROM spryker/php:8.2 + +RUN mv /usr/local/etc/php/disabled/blackfire.ini /usr/local/etc/php/conf.d/90-blackfire.ini +``` -To enable one, move its file into `conf.d`: +### Enable Tideways ```dockerfile -FROM spryker/php:8.4 +FROM spryker/php:8.2 -RUN mv /usr/local/etc/php/disabled/newrelic.ini /usr/local/etc/php/conf.d/90-newrelic.ini +RUN mv /usr/local/etc/php/disabled/tideways.ini /usr/local/etc/php/conf.d/90-tideways.ini ``` -With the [Spryker Docker SDK](https://github.com/spryker/docker-sdk), list them in the deploy file instead: -```yaml -image: - tag: spryker/php:8.4 - php: - enabled-extensions: - - newrelic +### Enable XLSX (xlswriter) +`xlswriter` is built into every image but stays disabled by default. Enable it when the application reads or writes XLSX files. +```dockerfile +FROM spryker/php:8.2 + +RUN mv /usr/local/etc/php/disabled/xlswriter.ini /usr/local/etc/php/conf.d/90-xlswriter.ini +``` + +### Enable XSL (XSLT) +`xsl` is built into every image but stays disabled by default. Enable it when the application transforms XML with `XSLTProcessor`. +```dockerfile +FROM spryker/php:8.2 + +RUN mv /usr/local/etc/php/disabled/xsl.ini /usr/local/etc/php/conf.d/90-xsl.ini ``` ## PHP extensions @@ -219,10 +217,9 @@ Composer ==================== Composer version 2.10.3 2026-08-27 13:34:23 ``` - -The report above is for `spryker/php:8.3`. Run the following to get it for any tag: +##### Run the following to get the report ```bash -docker run -i --rm spryker/php:8.3 bash -s<<'EOF' +$ docker run -i --rm spryker/php:8.3 bash -s<<'EOF' docker-php-source extract echo "Installed extensions" echo "====================" @@ -255,6 +252,6 @@ EOF ``` ## More information -* [Spryker documentation](https://docs.spryker.com) -* [PHP supported versions](https://www.php.net/supported-versions.php) +* [Spryker documentation](https://documentation.spryker.com) +* [PHP supported versions](http://php.net/supported-versions.php) * [PHP official images](https://github.com/docker-library/php)