Unofficial Docker image for Dolibarr - Not Production Ready
10K+
A configurable, multi-platform Docker image for Dolibarr ERP & CRM, maintained by Azure Technology LLC.
This image is built from official Dolibarr source releases and is not based on the dolibarr/dolibarr Docker image.
azuretechllc/dolibarr
Pull the latest supported stable image:
docker pull azuretechllc/dolibarr:latest
Or pin a specific release:
docker pull azuretechllc/dolibarr:23.0.3
Published images must support both linux/amd64 and linux/arm64.
A release is not published unless its verified maximum supported PHP version is available for both required architectures.
The build catalog only includes Dolibarr releases for which the maximum supported PHP version has been explicitly verified. The image uses that maximum PHP line. If the PHP maximum cannot be verified, or the corresponding official PHP/Apache base cannot support both architectures, the release is skipped rather than guessed.
Supported backends are MariaDB, MySQL, PostgreSQL, external MariaDB/MySQL, and external PostgreSQL. The database is not embedded in this image.
Generic database configuration:
DOLI_DB_TYPE=mysqli
DOLI_DB_HOST=database
DOLI_DB_HOST_PORT=3306
DOLI_DB_NAME=dolidb
DOLI_DB_USER=dolidbuser
DOLI_DB_PASSWORD=CHANGE_ME_DATABASE_PASSWORD
DOLI_DB_SSL=false
For PostgreSQL use DOLI_DB_TYPE=pgsql and normally port 5432.
cp .env.example .env
docker compose up -d
docker compose logs -f dolibarr
At minimum, review DOLIBARR_TAG, database credentials, administrator credentials, DOLI_URL_ROOT, and storage paths before starting.
DOLI_INSTALL_AUTO=1 enables first-boot installation using the supplied environment variables. Set DOLI_INSTALL_AUTO=0 to use the Dolibarr web installer.
Selected DOLI_CONF_* variables map to allow-listed native settings from Dolibarr's conf.php.example. See .env.example for the settings exposed by the current build.
Runtime defaults are selected according to the PHP version contained in the image.
Current verified PHP profiles use:
PHP_MEMORY_LIMIT=512M
PHP_UPLOAD_MAX_FILESIZE=100M
PHP_POST_MAX_SIZE=110M
PHP_MAX_EXECUTION_TIME=300
These values are user-overridable. A future PHP line must have an explicit runtime profile before an image using that PHP line is published.
Additional runtime settings include:
PHP_DATE_TIMEZONE=America/Chicago
PHP_ALLOW_URL_FOPEN=0
The container validates that PHP_POST_MAX_SIZE is at least as large as PHP_UPLOAD_MAX_FILESIZE.
Host-side paths are configurable:
DOLI_DOCUMENTS_PATH=./data/documents
DOLI_CUSTOM_PATH=./data/custom
DOLI_CONF_PATH=./data/conf
DOLI_DB_DATA_PATH=./data/database
Absolute host paths may be used. Container-side paths remain fixed. DOLI_DB_DATA_PATH is not used with an external database.
Forward migrations are enabled by default:
DOLI_UPGRADE_AUTO=1
On startup, an existing installation is checked before Apache starts. The process waits for the database, determines the installed version, compares it with the image, refuses downgrades, skips unnecessary patch-only migrations, performs required forward migration levels sequentially with Dolibarr's native upgrade.php, upgrade2.php, and step5.php, verifies the database version after each migration, and stops startup on any failure.
Automatic migration never uses ignoredbversion.
Disable automatic migration with:
DOLI_UPGRADE_AUTO=0
Manual validation remains available:
docker exec dolibarr dolibarr-upgrade --check
Before updating production, back up the database, documents, custom modules, and conf.php, and verify third-party module compatibility.
Change only the tag:
DOLIBARR_TAG=23.0.3
Then:
docker compose pull
docker compose up -d
docker compose logs -f dolibarr
With DOLI_UPGRADE_AUTO=1, required forward database migrations run automatically during startup.
When using DOLIBARR_TAG=latest, use the same pull/recreate procedure. A pinned version is recommended for controlled production upgrades.
Database downgrades are intentionally not automatic. After a database has been migrated, do not simply change the image to an older tag. Restore the pre-upgrade database and persistent-data backups, then start the matching older image.
The project includes:
docker-compose.yml
compose/docker-compose.mariadb.yml
compose/docker-compose.mysql.yml
compose/docker-compose.postgresql.yml
compose/docker-compose.external-db.yml
docker login
./build-every-version.sh
Images are published to azuretechllc/dolibarr. Releases that fail the verified PHP or AMD64/ARM64 requirements are skipped.
Use strong unique credentials, HTTPS, current backups, protected database networking, restricted conf.php permissions, and pinned production tags. Use supported secret-file (*_FILE) variables for sensitive values where applicable.
This is an independently maintained Docker packaging project for Dolibarr and is not an official Dolibarr Docker image. Dolibarr itself is developed and maintained by the Dolibarr project and its contributors.
Legacy Dolibarr releases whose verified maximum PHP line falls outside the modern official PHP-image policy use Dockerfile.legacy.
The legacy builder:
config/legacy-build-recipes.conf;A legacy image is not published unless an explicit recipe exists. The project does not guess an undocumented PHP or Apache combination.
Dolibarr publishes PHP compatibility limits, but not a maximum Apache version. Therefore the project does not claim an Apache maximum. Apache is selected by the verified Debian legacy recipe.
All published images must still satisfy the project requirement for both linux/amd64 and linux/arm64.
Content type
Image
Digest
sha256:3b25f7fb8…
Size
238.3 MB
Last updated
10 minutes ago
docker pull azuretechllc/dolibarr:4.0