PHP 8.0.30 Alpine 3.24 complete for Laravel dev/CI (EOL)
1.2K
PHP 8.0.30 on Alpine 3.24, complete flavour: a Laravel development and CI image by Dolphiq, made for dqx.
End of life. PHP has no upstream support for this version any more. These images are built from source with backported fixes, only on request. Move to a supported PHP line.
| 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-php80-alpine-complete:1.0 (1.0.1).
# docker-compose.yml
services:
app:
image: dolphiq/dqx-php80-alpine-complete:1.0
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-php80-alpine-complete:1.0
Versions read from dolphiq/dqx-php80-alpine-complete:1.0.1.
| Component | Version |
|---|---|
| OS | Alpine Linux v3.24 |
| PHP | 8.0.30 (built from source, git) |
| Node.js | 24.22.1 |
| npm | 11.12.1 |
| Composer | 2.10.3 |
| MySQL client (mysql, mysqldump) | 8.4.13 |
| git | 2.54.0 |
| Aikido safe-chain (npm, npx run through it) | 1.5.26 |
| bash | 5.3.9 |
| curl | 8.23.0 |
| OpenSSH client | 10.3p1 |
| rsync | 3.5.0 |
| unzip | 6.00 |
| zip | 3.0 |
| zsh with oh-my-zsh | 5.9 |
| ImageMagick (SVG, PDF, WebP) | 7.1.2 |
| Ghostscript | 10.08.0 |
| poppler-utils (pdftotext, pdftoppm) | 25.12.0 |
| rsvg-convert | 2.62.3 |
| postgresql-client (psql, pg_dump) | 18.6 |
PHP extensions added to the official image: bcmath 8.0.30, exif 8.0.30, gd 8.0.30, igbinary 3.2.16, intl 8.0.30, mbstring 8.0.30, msgpack 3.0.1, mysqli 8.0.30, pcntl 8.0.30, pcov 1.0.12, pdo_mysql 8.0.30, redis 6.3.0, soap 8.0.30, sockets 8.0.30, xdebug 3.5.3, zend opcache 8.0.30, zip 1.19.5, imagick 3.8.1, pdo_pgsql 8.0.30, pgsql 8.0.30.
All 52 loaded modules: bcmath, Core, ctype, curl, date, dom, exif, fileinfo, filter, ftp, 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, 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-php80-alpine-complete:1.0)./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/php80-alpine-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>. Alpine's npm refuses --before while the setting is in the global config, even next to --min-release-age=0: use npm install --globalconfig=/dev/null --before=<date> ....
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-php80-alpine-complete:1.0
RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS \
&& docker-php-ext-install calendar \
&& apk del .build-deps
Full history, sources and the other images: https://bitbucket.org/dq-private/dqx-docker-images-php (releases/php80-alpine-complete/CHANGELOG.md).
Content type
Image
Digest
sha256:a2f25c37e…
Size
132.4 MB
Last updated
13 days ago
docker pull dolphiq/dqx-php80-alpine-complete