Docker images¶
Qaack provided images¶
Qaack provides a set of common docker images, built on top of stock upstream images. You can find them here.
Note
These images exist because Qaack needs each container to plug into its environment orchestration in specific ways that stock images don't support: checkout mounting, predictable env, healthchecks, and (for web images) running multiple processes. If you'd rather bring your own image, jump to Custom images.
Database images¶
mariadb10.4, mariadb10.6, mariadb11.8 — built on stock mariadb:X:
- Preset credentials (
qaack/qaack/qaackfor user/password/db) baked in viaENV, so a Qaackfile needs no variable config to get a working DB out of the box. max_allowed_packet=1Gbumped up (the default is too small for typical dumps/imports).- A
.my.cnffor root so CLI tools work without passing credentials. - Auto-granted privileges for the
qaackuser via an init script. - A
HEALTHCHECKso the orchestrator knows when the DB is actually ready, not just "container started." openssh-client/curladded, for remote dump/restore or file transfer tasks.
Web images¶
apache-php83/84, nginx-php7x/8x — built from raw debian:11
rather than the official PHP/nginx images, since they need heavier
customization:
- A full PHP toolchain (via the Sury PPA) plus common extensions
(
gd,imagick,mysql,intl,opcache, etc.) and Composer preinstalled. supervisorto run web server + PHP-FPM (+ mailpit) as one container — Qaack services are one container per service, so anything needing multiple processes has to self-manage them.- A
/checkoutdirectory plusDOCROOT/WEBROOTenv vars — the key integration point: thecheckout: trueoption inqaackfile.ymlmounts the repo into/checkout, and the web server config points there. mailpitbundled for catching outgoing mail in dev/test environments.- A
HEALTHCHECKhitting/health. - Dev conveniences (
git,vim,nano, ssh client) for interactive debugging inside the environment.
Other images¶
elasticsearch7/8— single-node/no-security env tweaks so it runs standalone without a cluster.solr8/9— addsgitand a/checkoutdir/entrypoint tweak, the same checkout pattern as the web images.node16/18/22-pm2— addspm2(process manager) plus a/checkoutworkdir and basic dev tools.
The common thread across almost all of them: inject the /checkout
convention Qaack relies on, add a healthcheck so the platform can
detect readiness, and preseed sane default credentials/config — things
a generic upstream image can't assume about how it'll be orchestrated.
Custom images¶
However, Qaack just pulls the image and runs it, so its not necessary any extra step to run any docker image.
To use a custom image, simply specify your registry in the Qaackfile. In order to make it work properly, it must meet the following requirements:
bashcommand must be available in the PATHgitcommand must be available in the PATHWORKDIRenvironment variable must be defined (usually as/checkout)