Extends official PHP Docker images with extensions and tools to be able to run Spryker.
-
Based on official PHP images
Alpine 3.20Alpine 3.21Alpine 3.22Alpine 3.23Debian "bullseye"
-
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.30 | Alpine 3.22 | π | β | |
| spryker/php:8.4 | 8.4.16 | Alpine 3.22 | π | β | |
| spryker/php:8.3 | 8.3.29 | Alpine 3.22 | π | β | |
| spryker/php:8.2 | 8.2.30 | Alpine 3.22 | π | β | |
| spryker/php:8.1 | 8.1.32 | Alpine 3.20 | π | β | |
| spryker/php:8.4-alpine3.23 | 8.4.16 | Alpine 3.23 | π | β | |
| spryker/php:8.3-alpine3.23 | 8.3.29 | Alpine 3.23 | π | β | |
| spryker/php:8.2-alpine3.23 | 8.2.30 | Alpine 3.23 | π | β | |
| spryker/php:8.4-alpine3.22 | 8.4.16 | Alpine 3.22 | π | β | |
| spryker/php:8.3-alpine3.22 | 8.3.29 | Alpine 3.22 | π | β | |
| spryker/php:8.2-alpine3.22 | 8.2.30 | 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.4-alpine3.20 | 8.4.8 | Alpine 3.20 | π | β | |
| spryker/php:8.3-alpine3.20 | 8.3.17 | Alpine 3.20 | π | β | |
| spryker/php:8.2-alpine3.20 | 8.2.28 | Alpine 3.20 | π | β | |
| spryker/php:8.1-alpine3.20 | 8.1.32 | Alpine 3.20 | π | β | |
| spryker/php:8.4-debian | 8.4.11 | Debian "bullseye" | π | β | |
| spryker/php:8.3-debian | 8.3.24 | Debian "bullseye" | π | β | |
| spryker/php:8.2-debian | 8.2.29 | Debian "bullseye" | π | β | |
| spryker/php:8.1-debian | 8.1.33 | Debian "bullseye" | π | β | |
| spryker/php:8.0-debian | 8.0.30 | Debian "bullseye" | π | β |
$ 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.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.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
[ ] tideways 5.30.0-252e30b
[ ] xhprof 2.3.10
INSTALLED PACKAGES, CHANNEL PECL.PHP.NET:
=========================================
PACKAGE VERSION STATE
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.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.30 (/usr/local/bin/php)
$ 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
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