PHP 8.4.27 Debian 13 (trixie) complete for Laravel dev/CI
2.9K
PHP 8.4.27 on Debian 13 (trixie), complete flavour: a Laravel development and CI image by Dolphiq, made for dqx.
| Tag | Moves when |
|---|---|
:X.Y.Z | never |
:X.Y | PHP, MySQL client, npm and tool patches; same distro and Node major |
:X | also Node majors, distro minors and added extensions |
:latest | every release; for trying out only |
Pin :X.Y in projects, currently dolphiq/dqx-php84-debian-complete:1.2 (1.2.0).
# docker-compose.yml
services:
app:
image: dolphiq/dqx-php84-debian-complete:1.2
environment:
PHP_MEMORY_LIMIT: 1G
Or mount an ini file into /usr/local/etc/php/conf.d/; it wins over the variable.
# bitbucket-pipelines.yml
image: dolphiq/dqx-php84-debian-complete:1.2
PHP 8.4.27 on Debian 13 (trixie) comes in 2 flavours; sizes are the compressed download.
| Flavour | Contents | Size |
|---|---|---|
slim | PHP, the common extensions, Composer, Node + npm (through safe-chain), git and the MySQL client | 151 MB |
complete (this image) | slim plus ImageMagick (PDF, SVG), Postgres and zsh | 231 MB |
Versions read from dolphiq/dqx-php84-debian-complete:1.2.0.
| Component | Version |
|---|---|
| OS | Debian GNU/Linux 13 (trixie) |
| PHP | 8.4.27 |
| Node.js | 24.22.1 |
| npm | 11.19.1 |
| Composer | 2.10.3 |
| MySQL client (mysql, mysqldump, mysqladmin) | 8.4.13 |
| git | 2.56.0 |
| Aikido safe-chain (npm, npx run through it) | 1.5.26 |
| bash | 5.2.37 |
| curl | 8.14.1 |
| OpenSSH client | 10.0p2 |
| rsync | 3.5.0 |
| unzip | 6.00 |
| zip | 3.0 |
| zsh with oh-my-zsh | 5.9 |
| ImageMagick (SVG, PDF, WebP) | 7.1.1 |
| Ghostscript | 10.05.1 |
| poppler-utils (pdftotext, pdftoppm) | 25.03.0 |
| rsvg-convert | 2.60.0 |
| postgresql-client (psql, pg_dump) | 17.11 |
PHP extensions added to the official image: bcmath 8.4.27, exif 8.4.27, gd 8.4.27, igbinary 3.2.16, intl 8.4.27, mbstring 8.4.27, msgpack 3.0.1, mysqli 8.4.27, pcntl 8.4.27, pcov 1.0.12, pdo_mysql 8.4.27, redis 6.3.0, soap 8.4.27, sockets 8.4.27, xdebug 3.5.3, zend opcache 8.4.27, zip 1.22.8, imagick 3.8.1, pdo_pgsql 8.4.27, pgsql 8.4.27.
All 52 loaded modules: bcmath, Core, ctype, curl, date, dom, exif, fileinfo, filter, gd, hash, iconv, igbinary, imagick, intl, json, libxml, mbstring, msgpack, mysqli, mysqlnd, openssl, pcntl, pcov, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, random, readline, redis, Reflection, session, SimpleXML, soap, sockets, sodium, SPL, sqlite3, standard, tokenizer, xdebug, xml, xmlreader, xmlwriter, Zend OPcache, zip, zlib.
nl.dolphiq.dqx.contents label: the contents above as JSON, readable from the registry without pulling (dqx image info dolphiq/dqx-php84-debian-complete:1.2)./etc/dqx-image.json in the image: the versions read from the binaries, every PHP extension with its version and the OS tools.catalog/images.json and catalog/contents/php84-debian-complete/<version>.json: every image and every released version.Every setting is an environment variable. An ini file in /usr/local/etc/php/conf.d/ overrides it: the image's own ini (00-dqx.ini) loads first.
| Variable | Default | Sets |
|---|---|---|
PHP_PCOV_ENABLED | 0 | 1 turns pcov on (off by default: it slows every request by 4-13%) |
PHP_MEMORY_LIMIT | 512M | memory_limit |
PHP_UPLOAD_MAX_FILESIZE | 64M | upload_max_filesize |
PHP_POST_MAX_SIZE | 64M | post_max_size |
PHP_MAX_EXECUTION_TIME | 300 | max_execution_time |
PHP_DATE_TIMEZONE | UTC | date.timezone |
PHP_OPCACHE_ENABLE | 1 | opcache.enable (timestamps are always validated) |
TZ | UTC | system timezone |
Xdebug is loaded and off (xdebug.mode = off in docker-php-ext-xdebug.ini). Set XDEBUG_MODE (for example debug or coverage) to turn it on; dqx xdebug on does that per site.
The image runs as root in /var/www, uses php.ini-development, and has no HEALTHCHECK (compose or dqx defines one).
npm resolves only versions published at least 2 days ago (min-release-age=2 in npm's global config, for every user), so a lock file written in the image passes a pipeline whose Aikido safe-chain refuses versions younger than 48 hours. For one install of a newer version: npm install --min-release-age=0 <package>@<version>; for another window: --min-release-age=<days>. --before works on its own and overrides the setting.
Project-specific needs go into a project Dockerfile on top of this image. Install the build tools, compile and remove them in one RUN; add the runtime libraries an extension needs (for example libldap for ldap):
FROM dolphiq/dqx-php84-debian-complete:1.2
RUN apt-get update \
&& apt-get install -y --no-install-recommends $PHPIZE_DEPS \
&& docker-php-ext-install calendar \
&& apt-get purge -y --auto-remove $PHPIZE_DEPS \
&& rm -rf /var/lib/apt/lists/*
Full history, sources and the other images: https://bitbucket.org/dq-private/dqx-docker-images-php (releases/php84-debian-complete/CHANGELOG.md).
Content type
Image
Digest
sha256:d2d7652d3…
Size
220.7 MB
Last updated
8 days ago
docker pull dolphiq/dqx-php84-debian-complete