Skip to main content

JoomEngine

The Engine That builds the 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.
No manual installation.
No guessing.
Just run the container.

What You Get

Built on the Official Joomla Image

No forks. No custom hacks. Pure upstream foundation.

JCB Preloaded & Ready

Zero manual installation required.

Idempotent First-Run Installer

Safe to restart. Never installs twice.

Automatic First-Run Provisioning

Joomla and JCB installed instantly on launch.

Fail-Fast, Deterministic Startup

Strict error handling from the first instruction.

Extension Auto-Install Support

Install from URL or local path at startup.

Built-In Joomla CLI Automation

Trigger CLI workflows during container startup.

Non-Root Runtime (www-data)

Secure by default. No root execution.

Integrated SMTP Configuration

Production-ready mail setup via environment variables.

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)
Permissions
Runs as www-data.
Ownership is corrected automatically for volume mounts.)
Environment Variables
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=hostname
# or
JOOMLA_SMTP_HOST=hostname:port
Admin (Defaults)
Username: joomengine
Password: joomengine@secure
Adapt your fork of JoomEngine's repository to build your own component's offical docker image - like never before.