Sign inSign up

dolphiq/dqx-php86-debian-complete

By dolphiq

•Updated 8 days ago

PHP 8.6.0RC4 Debian 13 (trixie) complete for Laravel dev/CI (pre-release)

Image
0

1.6K

dolphiq/dqx-php86-debian-complete repository overview

⁠dolphiq/dqx-php86-debian-complete

PHP 8.6.0RC4 on Debian 13 (trixie), complete flavour: a Laravel development and CI image by Dolphiq, made for dqx⁠.

Pre-release. PHP 8.6.0RC4 is not stable yet; versions stay 0.x until the first stable build.

⁠Tags

TagMoves when
:X.Y.Znever
:X.YPHP, MySQL client, npm and tool patches; same distro and Node major
:Xalso Node majors, distro minors and added extensions
:latestevery release; for trying out only

Pin :X.Y in projects, currently dolphiq/dqx-php86-debian-complete:0.3 (0.3.0).

⁠Use

# docker-compose.yml
services:
  app:
    image: dolphiq/dqx-php86-debian-complete:0.3
    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-php86-debian-complete:0.3

⁠Flavours

PHP 8.6.0RC4 on Debian 13 (trixie) comes in 2 flavours; sizes are the compressed download.

FlavourContentsSize
slim⁠PHP, the common extensions, Composer, Node + npm (through safe-chain), git and the MySQL client154 MB
complete (this image)slim plus ImageMagick (PDF, SVG), Postgres and zsh234 MB

⁠Contents

Versions read from dolphiq/dqx-php86-debian-complete:0.3.0.

ComponentVersion
OSDebian GNU/Linux 13 (trixie)
PHP8.6.0RC4
Node.js24.22.1
npm11.19.1
Composer2.10.3
MySQL client (mysql, mysqldump, mysqladmin)8.4.13
git2.56.0
Aikido safe-chain (npm, npx run through it)1.5.26
bash5.2.37
curl8.14.1
OpenSSH client10.0p2
rsync3.5.0
unzip6.00
zip3.0
zsh with oh-my-zsh5.9
ImageMagick (SVG, PDF, WebP)7.1.1
Ghostscript10.05.1
poppler-utils (pdftotext, pdftoppm)25.03.0
rsvg-convert2.60.0
postgresql-client (psql, pg_dump)17.11

PHP extensions added to the official image: bcmath 8.6.0RC4, exif 8.6.0RC4, gd 8.6.0RC4, igbinary 3.2.17RC1, intl 8.6.0RC4, mbstring 8.6.0RC4, msgpack 3.0.1, mysqli 8.6.0RC4, pcntl 8.6.0RC4, pdo_mysql 8.6.0RC4, redis 6.3.0RC1, soap 8.6.0RC4, sockets 8.6.0RC4, xdebug 3.6.0alpha1, zend opcache 8.6.0RC4, zip 8.6.0RC4, imagick @PACKAGE_VERSION@, pdo_pgsql 8.6.0RC4, pgsql 8.6.0RC4.

Not available for this PHP yet: pcov.

All 53 loaded modules: bcmath, Core, ctype, curl, date, dom, exif, fileinfo, filter, gd, hash, iconv, igbinary, imagick, intl, json, lexbor, libxml, mbstring, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, random, readline, redis, Reflection, session, SimpleXML, soap, sockets, sodium, SPL, sqlite3, standard, tokenizer, uri, xdebug, xml, xmlreader, xmlwriter, Zend OPcache, zip, zlib.

⁠Machine-readable

  • nl.dolphiq.dqx.contents label: the contents above as JSON, readable from the registry without pulling (dqx image info dolphiq/dqx-php86-debian-complete:0.3).
  • /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/php86-debian-complete/<version>.json: every image and every released version.

⁠Environment

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.

VariableDefaultSets
PHP_PCOV_ENABLED01 turns pcov on (off by default: it slows every request by 4-13%)
PHP_MEMORY_LIMIT512Mmemory_limit
PHP_UPLOAD_MAX_FILESIZE64Mupload_max_filesize
PHP_POST_MAX_SIZE64Mpost_max_size
PHP_MAX_EXECUTION_TIME300max_execution_time
PHP_DATE_TIMEZONEUTCdate.timezone
PHP_OPCACHE_ENABLE1opcache.enable (timestamps are always validated)
TZUTCsystem 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 minimum release age

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.

⁠Extend

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-php86-debian-complete:0.3

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/*

⁠Changelog

⁠0.3.0
  • minor: Add mysqladmin next to mysql and mysqldump
⁠0.2.1
  • patch: An ini file in conf.d now overrides the PHP_* environment defaults: the image's own ini loads first (00-dqx.ini instead of zz-dqx.ini), so php: settings from dqx and ini files written in CI take effect
  • patch: Points to dqx: an org.opencontainers.image.url label (https://dqx.dev⁠), and one line with the link when an interactive shell opens in a terminal (bash; zsh in complete). Silent in CI and non-interactive runs
⁠0.2.0
  • minor: Add busybox, for the dqx scheduler (busybox crond)
⁠0.1.0
  • minor: npm resolves only versions published at least 2 days ago (min-release-age), so a lock file written in the image passes a pipeline whose safe-chain refuses versions younger than 48 hours

Full history, sources and the other images: https://bitbucket.org/dq-private/dqx-docker-images-php⁠ (releases/php86-debian-complete/CHANGELOG.md).

Tag summary

Content type

Image

Digest

sha256:e4ec63d5f…

Size

223 MB

Last updated

8 days ago

docker pull dolphiq/dqx-php86-debian-complete