Sign inSign up

dolphiq/dqx-php82-debian-complete

By dolphiq

•Updated 8 days ago

PHP 8.2.35 Debian 13 (trixie) complete for Laravel dev/CI

Image
0

2.7K

dolphiq/dqx-php82-debian-complete repository overview

⁠dolphiq/dqx-php82-debian-complete

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

⁠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-php82-debian-complete:1.2 (1.2.0).

⁠Use

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

⁠Flavours

PHP 8.2.35 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 client147 MB
complete (this image)slim plus ImageMagick (PDF, SVG), Postgres and zsh227 MB

⁠Contents

Versions read from dolphiq/dqx-php82-debian-complete:1.2.0.

ComponentVersion
OSDebian GNU/Linux 13 (trixie)
PHP8.2.35
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.2.35, exif 8.2.35, gd 8.2.35, igbinary 3.2.16, intl 8.2.35, mbstring 8.2.35, msgpack 3.0.1, mysqli 8.2.35, pcntl 8.2.35, pcov 1.0.12, pdo_mysql 8.2.35, redis 6.3.0, soap 8.2.35, sockets 8.2.35, xdebug 3.5.3, zend opcache 8.2.35, zip 1.21.1, imagick 3.8.1, pdo_pgsql 8.2.35, pgsql 8.2.35.

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.

⁠Machine-readable

  • nl.dolphiq.dqx.contents label: the contents above as JSON, readable from the registry without pulling (dqx image info dolphiq/dqx-php82-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/php82-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-php82-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/*

⁠Changelog

⁠1.2.0
  • minor: Add mysqladmin next to mysql and mysqldump
⁠1.1.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
⁠1.1.0
  • minor: Add busybox, for the dqx scheduler (busybox crond)
⁠1.0.1
  • patch: 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
⁠1.0.0
  • major: First stable release: :1 keeps the PHP line, the distro major and every extension listed for its flavour

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

Tag summary

Content type

Image

Digest

sha256:0ac0dc56c…

Size

216.8 MB

Last updated

8 days ago

docker pull dolphiq/dqx-php82-debian-complete