Skip to content

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/qaack for user/password/db) baked in via ENV, so a Qaackfile needs no variable config to get a working DB out of the box.
  • max_allowed_packet=1G bumped up (the default is too small for typical dumps/imports).
  • A .my.cnf for root so CLI tools work without passing credentials.
  • Auto-granted privileges for the qaack user via an init script.
  • A HEALTHCHECK so the orchestrator knows when the DB is actually ready, not just "container started."
  • openssh-client/curl added, 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.
  • supervisor to 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 /checkout directory plus DOCROOT/WEBROOT env vars — the key integration point: the checkout: true option in qaackfile.yml mounts the repo into /checkout, and the web server config points there.
  • mailpit bundled for catching outgoing mail in dev/test environments.
  • A HEALTHCHECK hitting /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 — adds git and a /checkout dir/entrypoint tweak, the same checkout pattern as the web images.
  • node16/18/22-pm2 — adds pm2 (process manager) plus a /checkout workdir 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:

  • bash command must be available in the PATH
  • git command must be available in the PATH
  • WORKDIR environment variable must be defined (usually as /checkout)