From 002b9023369824c022a26350113da9a2d0ebc147 Mon Sep 17 00:00:00 2001 From: alexanderM91 Date: Wed, 7 Jan 2026 06:31:00 +0100 Subject: [PATCH 1/3] Alpine 3.23 + Default Alpine 3.22 --- .github/workflows/ci.yml | 23 +- .../workflows/ecr-scheduled-security-scan.yml | 3 + ...tryvi-trufflehog-default-security-scan.yml | 14 ++ README.md | 4 + alpine/3.20/8.1/Dockerfile | 4 +- alpine/3.20/8.2/Dockerfile | 4 +- alpine/3.20/8.3/Dockerfile | 4 +- alpine/3.20/8.4/Dockerfile | 4 +- alpine/3.21/8.2/Dockerfile | 4 +- alpine/3.21/8.3/Dockerfile | 4 +- alpine/3.21/8.4/Dockerfile | 4 +- alpine/3.22/8.2/Dockerfile | 4 +- alpine/3.22/8.3/Dockerfile | 4 +- alpine/3.22/8.4/Dockerfile | 4 +- alpine/3.23/8.2/Dockerfile | 230 ++++++++++++++++++ alpine/3.23/8.3/Dockerfile | 230 ++++++++++++++++++ alpine/3.23/8.4/Dockerfile | 230 ++++++++++++++++++ debian/bullseye/8.0/Dockerfile | 4 +- debian/bullseye/8.1/Dockerfile | 4 +- debian/bullseye/8.2/Dockerfile | 4 +- debian/bullseye/8.3/Dockerfile | 4 +- debian/bullseye/8.4/Dockerfile | 4 +- 22 files changed, 758 insertions(+), 36 deletions(-) create mode 100644 alpine/3.23/8.2/Dockerfile create mode 100644 alpine/3.23/8.3/Dockerfile create mode 100644 alpine/3.23/8.4/Dockerfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9f38ae86..4ffc3ee5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,10 +20,10 @@ jobs: tags: [ "spryker/php:8.1", "spryker/php:8.1-alpine3.20" ] platforms: [ "linux/amd64", "linux/arm64" ] - image: "alpine/3.20/8.2/Dockerfile" - tags: [ "spryker/php:latest", "spryker/php:8.2", "spryker/php:8.2-alpine3.20" ] + tags: [ "spryker/php:8.2-alpine3.20" ] platforms: [ "linux/amd64", "linux/arm64" ] - image: "alpine/3.20/8.3/Dockerfile" - tags: [ "spryker/php:8.3", "spryker/php:8.3-alpine3.20" ] + tags: [ "spryker/php:8.3-alpine3.20" ] platforms: [ "linux/amd64", "linux/arm64" ] - image: "alpine/3.20/8.4/Dockerfile" tags: [ "spryker/php:8.4-alpine3.20" ] @@ -37,18 +37,29 @@ jobs: tags: [ "spryker/php:8.3-alpine3.21" ] platforms: [ "linux/amd64", "linux/arm64" ] - image: "alpine/3.21/8.4/Dockerfile" - tags: [ "spryker/php:8.4", "spryker/php:8.4-alpine3.21" ] + tags: [ "spryker/php:8.4-alpine3.21" ] platforms: [ "linux/amd64", "linux/arm64" ] ### Alpine 3.22 - image: "alpine/3.22/8.2/Dockerfile" - tags: [ "spryker/php:8.2-alpine3.22" ] + tags: [ "spryker/php:latest", "spryker/php:8.2", "spryker/php:8.2-alpine3.22" ] platforms: [ "linux/amd64", "linux/arm64" ] - image: "alpine/3.22/8.3/Dockerfile" - tags: [ "spryker/php:8.3-alpine3.22" ] + tags: [ "spryker/php:8.3", "spryker/php:8.3-alpine3.22" ] platforms: [ "linux/amd64", "linux/arm64" ] - image: "alpine/3.22/8.4/Dockerfile" - tags: [ "spryker/php:8.4-alpine3.22" ] + tags: ["spryker/php:8.4", "spryker/php:8.4-alpine3.22" ] + platforms: [ "linux/amd64", "linux/arm64" ] + + ### Alpine 3.23 + - image: "alpine/3.23/8.2/Dockerfile" + tags: [ "spryker/php:8.2-alpine3.23" ] + platforms: [ "linux/amd64", "linux/arm64" ] + - image: "alpine/3.23/8.3/Dockerfile" + tags: [ "spryker/php:8.3-alpine3.23" ] + platforms: [ "linux/amd64", "linux/arm64" ] + - image: "alpine/3.23/8.4/Dockerfile" + tags: [ "spryker/php:8.4-alpine3.23" ] platforms: [ "linux/amd64", "linux/arm64" ] ## Debian diff --git a/.github/workflows/ecr-scheduled-security-scan.yml b/.github/workflows/ecr-scheduled-security-scan.yml index 255529e2..fe8fc078 100644 --- a/.github/workflows/ecr-scheduled-security-scan.yml +++ b/.github/workflows/ecr-scheduled-security-scan.yml @@ -34,6 +34,9 @@ jobs: - 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" steps: - name: Login to DockerHub diff --git a/.github/workflows/tryvi-trufflehog-default-security-scan.yml b/.github/workflows/tryvi-trufflehog-default-security-scan.yml index 72f5a5f0..77c55bdf 100644 --- a/.github/workflows/tryvi-trufflehog-default-security-scan.yml +++ b/.github/workflows/tryvi-trufflehog-default-security-scan.yml @@ -45,6 +45,20 @@ jobs: tags: "8.4-alpine3.22" platforms: "linux/amd64" + ### Alpine 3.23 + - context: "alpine/3.23/8.2" + dockerfile: "Dockerfile" + tags: "8.2-alpine3.23" + platforms: "linux/amd64" + - context: "alpine/3.23/8.3" + dockerfile: "Dockerfile" + tags: "8.3-alpine3.23" + platforms: "linux/amd64" + - context: "alpine/3.23/8.4" + dockerfile: "Dockerfile" + tags: "8.4-alpine3.23" + platforms: "linux/amd64" + steps: - name: Checkout code uses: actions/checkout@v3 diff --git a/README.md b/README.md index 134b7a3a..369d8021 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Extends official PHP Docker images with extensions and tools to be able to run S * `Alpine 3.20` * `Alpine 3.21` * `Alpine 3.22` + * `Alpine 3.23` * `Debian "bullseye"` * Users: `root`, `spryker` @@ -35,6 +36,9 @@ Extends official PHP Docker images with extensions and tools to be able to run S | [spryker/php:8.2](https://hub.docker.com/r/spryker/php/tags?name=8.2) | 8.2.28 | Alpine 3.20 | [![](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.20/8.2/Dockerfile) | ✔ | | [spryker/php:8.1](https://hub.docker.com/r/spryker/php/tags?name=8.1) | 8.1.32 | Alpine 3.20 | [![](https://images.microbadger.com/badges/image/spryker/php:8.1.svg)](https://microbadger.com/images/spryker/php:8.1 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.20/8.1/Dockerfile) | ✖ | | [spryker/php:8.4-alpine3.22](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.22) | 8.4.16 | 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.4-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.23) | 8.4.16 | 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.29 | 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.30 | 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.3-alpine3.22](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.22) | 8.3.29 | 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.30 | 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) | ✔ | diff --git a/alpine/3.20/8.1/Dockerfile b/alpine/3.20/8.1/Dockerfile index 9fcaf5d7..b4cd8a85 100644 --- a/alpine/3.20/8.1/Dockerfile +++ b/alpine/3.20/8.1/Dockerfile @@ -4,11 +4,11 @@ ARG SPRYKER_PHP_VERSION=8.1.32 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.20 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.87.1 ARG BLACKFIRE_PHP_VERSION=81 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.1 ENV srcRoot /data diff --git a/alpine/3.20/8.2/Dockerfile b/alpine/3.20/8.2/Dockerfile index 7a150d25..36aa349a 100644 --- a/alpine/3.20/8.2/Dockerfile +++ b/alpine/3.20/8.2/Dockerfile @@ -3,11 +3,11 @@ ARG SPRYKER_PHP_VERSION=8.2.28 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.20 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.87.1 ARG BLACKFIRE_PHP_VERSION=82 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.2 ENV srcRoot /data diff --git a/alpine/3.20/8.3/Dockerfile b/alpine/3.20/8.3/Dockerfile index 9216642d..a79ee68b 100644 --- a/alpine/3.20/8.3/Dockerfile +++ b/alpine/3.20/8.3/Dockerfile @@ -3,11 +3,11 @@ ARG SPRYKER_PHP_VERSION=8.3.17 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.20 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.92.48 ARG BLACKFIRE_PHP_VERSION=83 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.3 ENV srcRoot /data diff --git a/alpine/3.20/8.4/Dockerfile b/alpine/3.20/8.4/Dockerfile index 68544c81..3b12d06e 100644 --- a/alpine/3.20/8.4/Dockerfile +++ b/alpine/3.20/8.4/Dockerfile @@ -3,11 +3,11 @@ ARG SPRYKER_PHP_VERSION=8.4.8 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.20 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.92.48 ARG BLACKFIRE_PHP_VERSION=84 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.4 ENV srcRoot /data diff --git a/alpine/3.21/8.2/Dockerfile b/alpine/3.21/8.2/Dockerfile index b601ef6a..6caeb53f 100644 --- a/alpine/3.21/8.2/Dockerfile +++ b/alpine/3.21/8.2/Dockerfile @@ -3,11 +3,11 @@ ARG SPRYKER_PHP_VERSION=8.2.29 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.21 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.87.1 ARG BLACKFIRE_PHP_VERSION=82 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.2 ENV srcRoot /data diff --git a/alpine/3.21/8.3/Dockerfile b/alpine/3.21/8.3/Dockerfile index b6270931..9d8670c2 100644 --- a/alpine/3.21/8.3/Dockerfile +++ b/alpine/3.21/8.3/Dockerfile @@ -3,11 +3,11 @@ ARG SPRYKER_PHP_VERSION=8.3.28 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.21 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.92.48 ARG BLACKFIRE_PHP_VERSION=83 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.3 ENV srcRoot /data diff --git a/alpine/3.21/8.4/Dockerfile b/alpine/3.21/8.4/Dockerfile index e758feba..c30fcd31 100644 --- a/alpine/3.21/8.4/Dockerfile +++ b/alpine/3.21/8.4/Dockerfile @@ -3,11 +3,11 @@ ARG SPRYKER_PHP_VERSION=8.4.15 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.21 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.92.48 ARG BLACKFIRE_PHP_VERSION=84 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.4 ENV srcRoot /data diff --git a/alpine/3.22/8.2/Dockerfile b/alpine/3.22/8.2/Dockerfile index 71355ca7..4a614351 100644 --- a/alpine/3.22/8.2/Dockerfile +++ b/alpine/3.22/8.2/Dockerfile @@ -3,11 +3,11 @@ ARG SPRYKER_PHP_VERSION=8.2.30 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.22 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.87.1 ARG BLACKFIRE_PHP_VERSION=82 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.2 ENV srcRoot /data diff --git a/alpine/3.22/8.3/Dockerfile b/alpine/3.22/8.3/Dockerfile index d39f7b99..ec8f02c7 100644 --- a/alpine/3.22/8.3/Dockerfile +++ b/alpine/3.22/8.3/Dockerfile @@ -3,11 +3,11 @@ ARG SPRYKER_PHP_VERSION=8.3.29 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.22 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.92.48 ARG BLACKFIRE_PHP_VERSION=83 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.3 ENV srcRoot /data diff --git a/alpine/3.22/8.4/Dockerfile b/alpine/3.22/8.4/Dockerfile index 8980cc64..d245253a 100644 --- a/alpine/3.22/8.4/Dockerfile +++ b/alpine/3.22/8.4/Dockerfile @@ -3,11 +3,11 @@ ARG SPRYKER_PHP_VERSION=8.4.16 FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.22 ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.92.48 ARG BLACKFIRE_PHP_VERSION=84 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.4 ENV srcRoot /data diff --git a/alpine/3.23/8.2/Dockerfile b/alpine/3.23/8.2/Dockerfile new file mode 100644 index 00000000..505820b1 --- /dev/null +++ b/alpine/3.23/8.2/Dockerfile @@ -0,0 +1,230 @@ +# syntax = docker/dockerfile:1.0.2-experimental +ARG SPRYKER_PHP_VERSION=8.2.30 +FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.23 + +ARG TARGETPLATFORM +ARG COMPOSER_VERSION=2.9.3 +ARG BLACKFIRE_VERSION=1.87.1 +ARG BLACKFIRE_PHP_VERSION=82 +ARG NEWRELIC_VERSION=12.3.0.28 +ARG TIDEWAYS_VERSION=5.32.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 \ + 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 PHP_PECL_EXTENSIONS="\ + apcu \ + redis" + +ARG ADDITIONAL_PHP_PECL_EXTENSIONS="\ + pcov \ + xdebug \ + xhprof \ + excimer \ + amqp \ + imagick" + +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 \ + && curl -L https://gitlab.alpinelinux.org/alpine/apk-tools/-/archive/v3.0.0_rc7/apk-tools-v3.0.0_rc7.tar.gz | tar -zx \ + && 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} \ + && pecl install -o -f ${PHP_PECL_EXTENSIONS} ${ADDITIONAL_PHP_PECL_EXTENSIONS} \ + && rm -rf /tmp/pear \ + && docker-php-ext-enable ${PHP_EXTENSIONS} ${PHP_PECL_EXTENSIONS} \ + && 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.23/8.3/Dockerfile b/alpine/3.23/8.3/Dockerfile new file mode 100644 index 00000000..dbe4b3f5 --- /dev/null +++ b/alpine/3.23/8.3/Dockerfile @@ -0,0 +1,230 @@ +# syntax = docker/dockerfile:1.0.2-experimental +ARG SPRYKER_PHP_VERSION=8.3.29 +FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.23 + +ARG TARGETPLATFORM +ARG COMPOSER_VERSION=2.9.3 +ARG BLACKFIRE_VERSION=1.92.48 +ARG BLACKFIRE_PHP_VERSION=83 +ARG NEWRELIC_VERSION=12.3.0.28 +ARG TIDEWAYS_VERSION=5.32.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 \ + 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 PHP_PECL_EXTENSIONS="\ + apcu \ + redis" + +ARG ADDITIONAL_PHP_PECL_EXTENSIONS="\ + pcov \ + xdebug \ + xhprof \ + excimer \ + amqp \ + imagick" + +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 \ + && curl -L https://gitlab.alpinelinux.org/alpine/apk-tools/-/archive/v3.0.0_rc7/apk-tools-v3.0.0_rc7.tar.gz | tar -zx \ + && 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} \ + && pecl install -o -f ${PHP_PECL_EXTENSIONS} ${ADDITIONAL_PHP_PECL_EXTENSIONS} \ + && rm -rf /tmp/pear \ + && docker-php-ext-enable ${PHP_EXTENSIONS} ${PHP_PECL_EXTENSIONS} \ + && 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.23/8.4/Dockerfile b/alpine/3.23/8.4/Dockerfile new file mode 100644 index 00000000..13cdc905 --- /dev/null +++ b/alpine/3.23/8.4/Dockerfile @@ -0,0 +1,230 @@ +# syntax = docker/dockerfile:1.0.2-experimental +ARG SPRYKER_PHP_VERSION=8.4.16 +FROM php:${SPRYKER_PHP_VERSION}-fpm-alpine3.23 + +ARG TARGETPLATFORM +ARG COMPOSER_VERSION=2.9.3 +ARG BLACKFIRE_VERSION=1.92.48 +ARG BLACKFIRE_PHP_VERSION=84 +ARG NEWRELIC_VERSION=12.3.0.28 +ARG TIDEWAYS_VERSION=5.32.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 \ + 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 PHP_PECL_EXTENSIONS="\ + apcu \ + redis" + +ARG ADDITIONAL_PHP_PECL_EXTENSIONS="\ + pcov \ + xdebug \ + xhprof \ + excimer \ + amqp \ + imagick" + +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 \ + && curl -L https://gitlab.alpinelinux.org/alpine/apk-tools/-/archive/v3.0.0_rc7/apk-tools-v3.0.0_rc7.tar.gz | tar -zx \ + && 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} \ + && pecl install -o -f ${PHP_PECL_EXTENSIONS} ${ADDITIONAL_PHP_PECL_EXTENSIONS} \ + && rm -rf /tmp/pear \ + && docker-php-ext-enable ${PHP_EXTENSIONS} ${PHP_PECL_EXTENSIONS} \ + && 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/debian/bullseye/8.0/Dockerfile b/debian/bullseye/8.0/Dockerfile index 086d2fcf..1f4443b0 100644 --- a/debian/bullseye/8.0/Dockerfile +++ b/debian/bullseye/8.0/Dockerfile @@ -4,11 +4,11 @@ ARG SPRYKER_PHP_VERSION=8.0.30 FROM php:${SPRYKER_PHP_VERSION}-fpm-bullseye ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.87.1 ARG BLACKFIRE_PHP_VERSION=80 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.0 ARG GOLANG_VERSION=1.20.3 diff --git a/debian/bullseye/8.1/Dockerfile b/debian/bullseye/8.1/Dockerfile index 92186ce5..de13af93 100644 --- a/debian/bullseye/8.1/Dockerfile +++ b/debian/bullseye/8.1/Dockerfile @@ -5,11 +5,11 @@ FROM php:${SPRYKER_PHP_VERSION}-fpm-bullseye SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.87.1 ARG BLACKFIRE_PHP_VERSION=81 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.1 ARG GOLANG_VERSION=1.20.3 diff --git a/debian/bullseye/8.2/Dockerfile b/debian/bullseye/8.2/Dockerfile index 7c7b5bff..814b6ac3 100644 --- a/debian/bullseye/8.2/Dockerfile +++ b/debian/bullseye/8.2/Dockerfile @@ -5,11 +5,11 @@ FROM php:${SPRYKER_PHP_VERSION}-fpm-bullseye SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.87.1 ARG BLACKFIRE_PHP_VERSION=82 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.2 ARG GOLANG_VERSION=1.20.3 diff --git a/debian/bullseye/8.3/Dockerfile b/debian/bullseye/8.3/Dockerfile index 43081c6b..b8c74b9c 100644 --- a/debian/bullseye/8.3/Dockerfile +++ b/debian/bullseye/8.3/Dockerfile @@ -5,11 +5,11 @@ FROM php:${SPRYKER_PHP_VERSION}-fpm-bullseye SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.92.48 ARG BLACKFIRE_PHP_VERSION=83 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.3 ARG GOLANG_VERSION=1.20.3 diff --git a/debian/bullseye/8.4/Dockerfile b/debian/bullseye/8.4/Dockerfile index 92b26af5..3d41a4a4 100644 --- a/debian/bullseye/8.4/Dockerfile +++ b/debian/bullseye/8.4/Dockerfile @@ -5,11 +5,11 @@ FROM php:${SPRYKER_PHP_VERSION}-fpm-bullseye SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG TARGETPLATFORM -ARG COMPOSER_VERSION=2.8.12 +ARG COMPOSER_VERSION=2.9.3 ARG BLACKFIRE_VERSION=1.92.48 ARG BLACKFIRE_PHP_VERSION=84 ARG NEWRELIC_VERSION=12.3.0.28 -ARG TIDEWAYS_VERSION=5.30.0 +ARG TIDEWAYS_VERSION=5.32.0 ARG TIDEWAYS_PHP_VERSION=8.4 ARG GOLANG_VERSION=1.20.3 From eab055a7208661e420cc1419544ae00fb232fa73 Mon Sep 17 00:00:00 2001 From: alexanderM91 Date: Wed, 7 Jan 2026 07:16:39 +0100 Subject: [PATCH 2/3] Remove OTEL support for PHP 8.2 Alpine 3.23 --- alpine/3.23/8.2/Dockerfile | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/alpine/3.23/8.2/Dockerfile b/alpine/3.23/8.2/Dockerfile index 505820b1..7787478e 100644 --- a/alpine/3.23/8.2/Dockerfile +++ b/alpine/3.23/8.2/Dockerfile @@ -131,20 +131,6 @@ RUN apk update \ # 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) \ From fb4146ca52788a94f307c8369165a6588b72ff1e Mon Sep 17 00:00:00 2001 From: alexanderM91 Date: Fri, 9 Jan 2026 08:01:56 +0100 Subject: [PATCH 3/3] Fix ReadMe --- README.md | 68 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 369d8021..5869aba6 100644 --- a/README.md +++ b/README.md @@ -30,15 +30,15 @@ Extends official PHP Docker images with extensions and tools to be able to run S | Tag | PHP version | Linux distribution | Details | Dockerfile | OTEL support | |:--------------------------------------------------------------------------------------------|:------------|:-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------|:------------:| -| [spryker/php:latest](https://hub.docker.com/r/spryker/php/tags?name=latest) | 8.2.28 | Alpine 3.20 | [![](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.20/8.2/Dockerfile) | ✔ | -| [spryker/php:8.4](https://hub.docker.com/r/spryker/php/tags?name=8.4) | 8.4.8 | Alpine 3.20 | [![](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.20/8.4/Dockerfile) | ✔ | -| [spryker/php:8.3](https://hub.docker.com/r/spryker/php/tags?name=8.3) | 8.3.17 | Alpine 3.20 | [![](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.20/8.3/Dockerfile) | ✔ | -| [spryker/php:8.2](https://hub.docker.com/r/spryker/php/tags?name=8.2) | 8.2.28 | Alpine 3.20 | [![](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.20/8.2/Dockerfile) | ✔ | +| [spryker/php:latest](https://hub.docker.com/r/spryker/php/tags?name=latest) | 8.2.30 | Alpine 3.22 | [![](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.22/8.2/Dockerfile) | ✔ | +| [spryker/php:8.4](https://hub.docker.com/r/spryker/php/tags?name=8.4) | 8.4.16 | Alpine 3.22 | [![](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.22/8.4/Dockerfile) | ✔ | +| [spryker/php:8.3](https://hub.docker.com/r/spryker/php/tags?name=8.3) | 8.3.29 | Alpine 3.22 | [![](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.22/8.3/Dockerfile) | ✔ | +| [spryker/php:8.2](https://hub.docker.com/r/spryker/php/tags?name=8.2) | 8.2.30 | Alpine 3.22 | [![](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.22/8.2/Dockerfile) | ✔ | | [spryker/php:8.1](https://hub.docker.com/r/spryker/php/tags?name=8.1) | 8.1.32 | Alpine 3.20 | [![](https://images.microbadger.com/badges/image/spryker/php:8.1.svg)](https://microbadger.com/images/spryker/php:8.1 "Get your own image badge on microbadger.com") | [:link:](https://github.com/spryker/docker-php/blob/master/alpine/3.20/8.1/Dockerfile) | ✖ | | [spryker/php:8.4-alpine3.22](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.22) | 8.4.16 | 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.4-alpine3.23](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.23) | 8.4.16 | 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.29 | 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.30 | 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.23](https://hub.docker.com/r/spryker/php/tags?name=8.4-alpine3.23) | 8.4.16 | 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.29 | 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.30 | 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.3-alpine3.22](https://hub.docker.com/r/spryker/php/tags?name=8.3-alpine3.22) | 8.3.29 | 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.30 | 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) | ✔ | @@ -181,9 +181,10 @@ Installed extensions Disabled extensions ==================== - [ ] amqp 2.1.2 + [ ] amqp 2.2.0 [ ] blackfire 1.87.1~linux-musl-x64-non_zts82 [ ] excimer 1.2.5 + [ ] imagick 3.8.1 [ ] newrelic 12.3.0.28 [ ] otel [ ] pcov 1.0.12 @@ -193,35 +194,50 @@ Disabled extensions INSTALLED PACKAGES, CHANNEL PECL.PHP.NET: ========================================= PACKAGE VERSION STATE -amqp 2.1.2 stable -apcu 5.1.27 stable +amqp 2.2.0 stable +apcu 5.1.28 stable excimer 1.2.5 stable +imagick 3.8.1 stable pcov 1.0.12 stable -redis 6.2.0 stable -xdebug 3.4.7 stable +redis 6.3.0 stable +xdebug 3.5.0 stable xhprof 2.3.10 stable Composer ==================== Composer version 2.8.12 2025-09-19 13:41:59 -PHP version 8.2.28 (/usr/local/bin/php) +PHP version 8.2.30 (/usr/local/bin/php) ``` ##### Run the following to get the report ```bash -$ docker run -i --rm spryker/php:latest bash -s<<'EOF' +$ docker run -i --rm spryker/php:8.2-alpine3.22 bash -s<<'EOF' docker-php-source extract - echo "Installed extensions"; - echo "===================="; - for ext in `ls /usr/src/php/ext`; do echo ' ' `php -r "if (extension_loaded('$ext' !== 'opcache' ? '$ext' : 'Zend OPcache')) { echo '[x] $ext'; } else { echo '[ ] $ext'; }"`; done - echo ""; - echo "Disabled extensions"; - echo "===================="; - for f in /usr/local/etc/php/disabled/*.ini; do disabled=$(basename $f | sed -e 's/\.ini$//'); echo " [ ] ${disabled} $(PHP_INI_SCAN_DIR=:/usr/local/etc/php/disabled php -r "echo phpversion('${disabled}');")"; done - echo ""; - pear list -c pecl - echo ""; - echo "Composer"; - echo "===================="; + echo "Installed extensions" + echo "====================" + for ext in $(ls /usr/src/php/ext); do + if php -r "exit(extension_loaded('$ext') || ('$ext' == 'opcache' && extension_loaded('Zend OPcache')) ? 0 : 1);" 2>/dev/null; then + echo " [x] $ext" + else + echo " [ ] $ext" + fi + done + echo "" + echo "Disabled extensions" + echo "====================" + for f in /usr/local/etc/php/disabled/*.ini; do + if [ -f "$f" ]; then + disabled=$(basename "$f" | sed -e 's/\.ini$//') + version=$(PHP_INI_SCAN_DIR=:/usr/local/etc/php/disabled php -r "echo phpversion('${disabled}');" 2>/dev/null || echo "") + echo " [ ] ${disabled} ${version}" + fi + done + echo "" + echo "INSTALLED PACKAGES, CHANNEL PECL.PHP.NET:" + echo "=========================================" + pear list -c pecl 2>/dev/null || echo "No PECL packages found" + echo "" + echo "Composer" + echo "====================" composer -V EOF ```