Extends official PHP Docker images with extensions and tools to be able to run Spryker.
-
Based on official PHP images
Alpine 3.21Alpine 3.22Alpine 3.23Alpine 3.24Debian "bookworm"
-
Users:
root,spryker -
Working directory:
/data -
Includes:
- PHP extensions
- PostgreSQL client
- MySQL client
- CURL
- OpenSSH client
- Composer v2
Note: Provided images require additional configuration for development, staging, and production use.
| Tag | PHP version | Linux distribution | Details | Dockerfile | OTEL support |
|---|---|---|---|---|---|
| spryker/php:latest | 8.2.33 | Alpine 3.23 | π | β | |
| spryker/php:8.5 | 8.5.10 | Alpine 3.24 | π | β | |
| spryker/php:8.4 | 8.4.25 | Alpine 3.23 | π | β | |
| spryker/php:8.3 | 8.3.33 | Alpine 3.23 | π | β | |
| spryker/php:8.2 | 8.2.33 | Alpine 3.23 | π | β | |
| spryker/php:8.5-alpine3.24 | 8.5.10 | Alpine 3.24 | π | β | |
| spryker/php:8.4-alpine3.24 | 8.4.25 | Alpine 3.24 | π | β | |
| spryker/php:8.3-alpine3.24 | 8.3.33 | Alpine 3.24 | π | β | |
| spryker/php:8.2-alpine3.24 | 8.2.33 | Alpine 3.24 | π | β | |
| spryker/php:8.4-alpine3.23 | 8.4.25 | Alpine 3.23 | π | β | |
| spryker/php:8.3-alpine3.23 | 8.3.33 | Alpine 3.23 | π | β | |
| spryker/php:8.2-alpine3.23 | 8.2.33 | Alpine 3.23 | π | β | |
| spryker/php:8.4-alpine3.22 | 8.4.22 | Alpine 3.22 | π | β | |
| spryker/php:8.3-alpine3.22 | 8.3.31 | Alpine 3.22 | π | β | |
| spryker/php:8.2-alpine3.22 | 8.2.31 | Alpine 3.22 | π | β | |
| spryker/php:8.4-alpine3.21 | 8.4.15 | Alpine 3.21 | π | β | |
| spryker/php:8.3-alpine3.21 | 8.3.28 | Alpine 3.21 | π | β | |
| spryker/php:8.2-alpine3.21 | 8.2.29 | Alpine 3.21 | π | β | |
| spryker/php:8.5-debian | 8.5.10 | Debian "bookworm" | π | β | |
| spryker/php:8.4-debian | 8.4.25 | Debian "bookworm" | π | β | |
| spryker/php:8.3-debian | 8.3.33 | Debian "bookworm" | π | β | |
| spryker/php:8.2-debian | 8.2.33 | Debian "bookworm" | π | β |
$ docker pull spryker/php
$ docker pull spryker/php:8.3$ docker run -i --rm spryker/php:latest php -vFROM spryker/php:8.2service1:
image: spryker/php:8.2-debianFROM spryker/php:8.2
RUN mv /usr/local/etc/php/disabled/newrelic.ini /usr/local/etc/php/conf.d/90-newrelic.iniFROM spryker/php:8.2
RUN mv /usr/local/etc/php/disabled/blackfire.ini /usr/local/etc/php/conf.d/90-blackfire.iniFROM spryker/php:8.2
RUN mv /usr/local/etc/php/disabled/tideways.ini /usr/local/etc/php/conf.d/90-tideways.inixlswriter is built into every image but stays disabled by default. Enable it when the application reads or writes XLSX files.
FROM spryker/php:8.2
RUN mv /usr/local/etc/php/disabled/xlswriter.ini /usr/local/etc/php/conf.d/90-xlswriter.iniInstalled extensions
====================
[x] bcmath
[x] bz2
[ ] calendar
[ ] com_dotnet
[x] ctype
[x] curl
[x] date
[ ] dba
[ ] dl_test
[x] dom
[ ] enchant
[ ] exif
[ ] ext_skel.php
[ ] ffi
[x] fileinfo
[x] filter
[x] ftp
[x] gd
[ ] gettext
[x] gmp
[x] hash
[x] iconv
[ ] imap
[x] intl
[x] json
[ ] ldap
[x] libxml
[x] mbstring
[x] mysqli
[x] mysqlnd
[ ] oci8
[ ] odbc
[x] opcache
[x] openssl
[x] pcntl
[x] pcre
[x] pdo
[ ] pdo_dblib
[ ] pdo_firebird
[x] pdo_mysql
[ ] pdo_oci
[ ] pdo_odbc
[x] pdo_pgsql
[x] pdo_sqlite
[x] pgsql
[x] phar
[x] posix
[ ] pspell
[x] random
[x] readline
[x] reflection
[x] session
[ ] shmop
[x] simplexml
[ ] skeleton
[ ] snmp
[x] soap
[x] sockets
[x] sodium
[x] spl
[x] sqlite3
[x] standard
[ ] sysvmsg
[ ] sysvsem
[ ] sysvshm
[ ] tidy
[x] tokenizer
[x] xml
[x] xmlreader
[x] xmlwriter
[ ] xsl
[ ] zend_test
[x] zip
[x] zlib
Disabled extensions
====================
[ ] amqp 2.2.0
[ ] blackfire 1.92.48~linux-musl-x64-non_zts83
[ ] excimer 1.2.6
[ ] imagick 3.8.1
[ ] newrelic 12.10.0.39
[ ] otel
[ ] pcov 1.0.12
[ ] tideways 5.42.0-d1af5cc
[ ] xhprof 2.3.10
[ ] xlswriter 3.0.0
INSTALLED PACKAGES, CHANNEL PECL.PHP.NET:
=========================================
PACKAGE VERSION STATE
amqp 2.2.0 stable
apcu 5.1.28 stable
excimer 1.2.6 stable
imagick 3.8.1 stable
pcov 1.0.12 stable
redis 6.3.0 stable
xdebug 3.5.3 stable
xhprof 2.3.10 stable
xlswriter 3.0.0 stable
Composer
====================
Composer version 2.10.3 2026-08-27 13:34:23
$ docker run -i --rm spryker/php:8.3 bash -s<<'EOF'
docker-php-source extract
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