Official Joomla Component Builder (JCB) Docker image
10K+
These are the official Docker images for Joomla Component Builder (JCB).
Each image provides a ready-to-use Joomla environment with Joomla Component Builder automatically installed and optionally configurable via environment variables and CLI commands.
No manual installation. No guessing. Just run the container.
https://github.com/octoleo/joomengine/tree/master/dockerโ
set -euo pipefail)www-data (no root runtime)These images are ideal for:
All images are published under:
octoleo/joomengine
Examples:
docker pull octoleo/joomengine:latest
docker pull octoleo/joomengine:6.1.3
docker pull octoleo/joomengine:6.1.3-php8.2-apache
latestalways points to the highest stable JCB release, Apache variant, using the highest supported PHP version.
When the container starts:
configuration.php exists):
www-dataThis guarantees:
This image is configured entirely via environment variables. All variables are optional unless stated otherwise.
The entrypoint runs in strict mode (set -euo pipefail). Missing or invalid critical values will cause the container to exit early and loudly.
Database Connection - at least one of:
JOOMLA_DB_HOST - Database hostname (optionally host:port)MYSQL_PORT_3306_TCP - Legacy Docker link supportDatabase Password - at least one of:
JOOMLA_DB_PASSWORD - Direct passwordJOOMLA_DB_PASSWORD_FILE - Path to password file (e.g., Docker secrets)MYSQL_ENV_MYSQL_ROOT_PASSWORD - Used when JOOMLA_DB_USER=rootJOOMLA_DB_PASSWORD_ALLOW_EMPTY=yes - Explicitly allow empty password| Variable | Default |
|---|---|
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 | [email protected] |
Automatic Joomla installation is performed only if all of the following are true:
installation/ directory existsJOOMLA_SITE_NAME > 2 charactersJOOMLA_ADMIN_USER > 2 charactersJOOMLA_ADMIN_USERNAME alphabetical onlyJOOMLA_ADMIN_PASSWORD > 12 charactersJOOMLA_ADMIN_EMAIL valid email formatIf any condition fails, the container starts normally without auto-install.
Multiple values must be semicolon-separated (;):
JOOMLA_EXTENSIONS_URLS - URLs to install after Joomla setupJOOMLA_EXTENSIONS_PATHS - Local paths to install after Joomla setupโ ๏ธ URL validation is intentionally strict (HTTPS/HTTP only, no IPs, no ports in domain).
JOOMLA_CLI_COMMANDS - Semicolon-separated Joomla CLI commandsEach command is passed as-is to cli/joomla.php. Shell tokenization is not performed.
environment:
JOOMLA_CLI_COMMANDS: "cache:clean;extension:list --type=component"
What happens:
www-dataJOOMLA_SMTP_HOST - Format: hostname or hostname:portโ ๏ธ IPv4 only - IPv6 addresses (e.g., [::1]:587) are not supported.
โ Fails fast on misconfiguration โ No silent fallbacks โ Deterministic startup behavior โ Safe for repeated container restarts โ Compatible with Apache and PHP-FPM variants
docker-compose.ymlservices:
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:
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
JOOMLA_CLI_COMMANDS: "componentbuilder:pull:joomla_component --items=d7e30702-ec49-45ac-8897-0389d61d6da0"
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:
Open your browser at:
http://localhost:8080
Admin credentials:
joomenginejoomengine@securewww-dataCopyright (C) 2021โ2026 Llewellyn van der Merwe
Licensed under the GNU General Public License v2 (GPLv2)
See LICENSE for details.
Content type
Image
Digest
sha256:f27142e01โฆ
Size
278.7 MB
Last updated
10 days ago
docker pull octoleo/joomengine