Skip to main content

JoomEngine

The Engine That builds to offical JCB docker images

JoomEngine delivers the official Docker environment for Joomla Component Builder (JCB). Each image ships with Joomla and JCB pre-installed, giving you a ready-to-run development environment that can be configured through environment variables and optional CLI automation.
No manual installation.
No guessing.
Just run the container.

What You Get

Joomla (official base image)

JCB preloaded in the image

Safe one-time install (idempotent)

Automatic Joomla + JCB install on first run

Deterministic, fail-fast startup (`set -euo pipefail`)

Optional extension install (URL or path)

Optional Joomla CLI automation

Runs as `www-data` (no root runtime)

SMTP configuration support


How it Works

  1. Entry point runs with strict error handling
  2. If Joomla isn’t installed and required variables exist → Joomla installs, DB verified, admin configured
  3. Once configured (`configuration.php`) → extensions (optional), JCB installs, SMTP applied, CLI commands run
  4. Continues running as `www-data`
  • Fail-fast (no silent fallbacks)
  • Idempotent (no repeated installs)
  • Safe restarts with persistent volumes
  • Deterministic outcomes

Quickstart

docker pull octoleo/joomengine:latest
docker pull octoleo/joomengine:6.1.3
docker pull octoleo/joomengine:6.1.3-php8.2-apache
Tip: latest points to the highest stable release (Apache variant, highest supported PHP).
http://localhost:8080
After running compose, open the site in your browser.
services:
  joomla:
    image: octoleo/joomengine:latest
    ports:
      - "8080:80"
    environment:
      JOOMLA_DB_HOST: mariadb:3306
      JOOMLA_DB_USER: joomengine
      JOOMLA_DB_NAME: joomengine
      JOOMLA_DB_PASSWORD: secure_password12345
    depends_on:
      - mariadb
    volumes:
      - joomla_data:/var/www/html

  mariadb:
    image: mariadb:latest
    environment:
      MARIADB_USER: joomengine
      MARIADB_DATABASE: joomengine
      MARIADB_PASSWORD: secure_password12345
      MARIADB_ROOT_PASSWORD: your_root_secure_password12345
    volumes:
      - mariadb_data:/var/lib/mysql

volumes:
  joomla_data:
  mariadb_data:

"Automation" (Run JCB commands automatically)

environment:
  JOOMLA_CLI_COMMANDS: "cache:clean;extension:list --type=component"
Commands are semicolon-separated and passed to cli/joomla.php.

What happens

  • Runs as www-data
  • Executes after install is ready
  • Failures stop the container (safe by default)

Configuration

Required (DB Host)

JOOMLA_DB_HOST or MYSQL_PORT_3306_TCP

Required (DB Password)

JOOMLA_DB_PASSWORD or JOOMLA_DB_PASSWORD_FILE (secrets)

Optional Extensions

JOOMLA_EXTENSIONS_URLS / JOOMLA_EXTENSIONS_PATHS (semicolon-separated)
JOOMLA_DB_USER
joomengine
JOOMLA_DB_NAME
joomengine
JOOMLA_DB_TYPE
mysqli
JOOMLA_DB_PREFIX
joom_
JOOMLA_SITE_NAME
Joomla Component Builder - JoomEngine
JOOMLA_ADMIN_USER
JoomEngine Hero
JOOMLA_ADMIN_USERNAME
joomengine
JOOMLA_ADMIN_PASSWORD
joomengine@secure
JOOMLA_ADMIN_EMAIL
joomengine@example.com

SMTP

JOOMLA_SMTP_HOST accepts hostname or hostname:port.

Admin (defaults)

Username: joomengine Password: joomengine@secure

Permissions

Runs as www-data. Ownership is corrected automatically for volume mounts.
Adapt your fork of JoomEngine's repository to build your own component's offical docker image - like never before.