Sign inSign up

tuxgasy/dolibarr

By tuxgasy

•Updated about 2 years ago

Docker image for Dolibarr with auto installer on first boot.

Image
71

500K+

tuxgasy/dolibarr repository overview

⁠Dolibarr on Docker

Docker image for Dolibarr with auto installer on first boot.

⁠Supported tags

  • 15.0.3-php7.4 15.0.3 15
  • 16.0.5-php8.1 16.0.5 16
  • 17.0.4-php8.1 17.0.4 17
  • 18.0.5-php8.1 18.0.5 18
  • 19.0.2-php8.2 19.0.2 19 latest
  • develop

End of support for PHP < 7.4

Dolibarr versions 7, 8, 9, 10, 11, 12, 13, 14 no more updated

⁠Supported architectures

Linux x86-64 (amd64), ARMv7 32-bit (arm32v7 :warning: MariaDB/Mysql docker images don't support it) and ARMv8 64-bit (arm64v8)

⁠What is Dolibarr ?

Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda, ...).

⁠How to run this image ?

This image is based on the official PHP repository⁠.

Important: This image don't contains database. So you need to link it with a database container.

Let's use Docker Compose⁠ to integrate it with MariaDB⁠ (you can also use MySQL⁠ if you prefer).

Create docker-compose.yml file as following:

services:
    mariadb:
        image: mariadb:latest
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: dolibarr

    web:
        image: tuxgasy/dolibarr
        environment:
            DOLI_DB_HOST: mariadb
            DOLI_DB_USER: root
            DOLI_DB_PASSWORD: root
            DOLI_DB_NAME: dolibarr
            DOLI_URL_ROOT: 'http://0.0.0.0'
            PHP_INI_DATE_TIMEZONE: 'Europe/Paris'
        ports:
            - "80:80"
        links:
            - mariadb

Then run all services docker-compose up -d. Now, go to http://0.0.0.0⁠ to access to the new Dolibarr installation.

⁠Other examples

You can find several examples in the examples directory, such as:

⁠Upgrading version and migrating DB

The install.lock file is located inside the container volume /var/www/documents.

Remove the install.lock file and start an updated version container. Ensure that env DOLI_INSTALL_AUTO is set to 1. It will migrate Database to the new version. You can still use the standard way to upgrade through web interface.

⁠Early support for PostgreSQL

Setting DOLI_DB_TYPE to pgsql enable Dolibarr to run with a PostgreSQL database. When set to use pgsql, Dolibarr must be installed manually on it's first execution:

  • Browse to http://0.0.0.0/install;
  • Follow the installation setup;
  • Add install.lock inside the container volume /var/www/html/documents (ex docker-compose exec services-data_dolibarr_1 /bin/bash -c "touch /var/www/html/documents/install.lock").

When setup this way, to upgrade version the use of the web interface is mandatory:

  • Remove the install.lock file (ex docker-compose exec services-data_dolibarr_1 /bin/bash -c "rm -f /var/www/html/documents/install.lock").
  • Browse to http://0.0.0.0/install;
  • Upgrade DB;
  • Add install.lock inside the container volume /var/www/html/documents (ex docker-compose exec services-data_dolibarr_1 /bin/bash -c "touch /var/www/html/documents/install.lock").

⁠Environment variables summary

VariableDefault valueDescription
DOLI_INSTALL_AUTO11: The installation will be executed on first boot
DOLI_PROD11: Dolibarr will be run in production mode
DOLI_DB_TYPEmysqliType of the DB server (mysqli, pgsql)
DOLI_DB_HOSTmysqlHost name of the MariaDB/MySQL server
DOLI_DB_HOST_PORT3306Host port of the MariaDB/MySQL server
DOLI_DB_USERdoliDatabase user
DOLI_DB_PASSWORDdoli_passDatabase user's password
DOLI_DB_NAMEdolidbDatabase name
DOLI_ADMIN_LOGINadminAdmin's login create on the first boot
DOLI_ADMIN_PASSWORDadminAdmin'password
DOLI_URL_ROOThttp://localhost⁠Url root of the Dolibarr installation
DOLI_ENABLE_MODULESComma-separated list of modules to be activated at install. modUser will always be activated. (Ex: Societe,Facture,Stock)
DOLI_COMPANY_NAMESet the company name of Dolibarr at container init
DOLI_COMPANY_COUNTRYCODESet the company and Dolibarr country at container init. Need 2-letter codes like "FR", "GB", "US",...
PHP_INI_DATE_TIMEZONEUTCDefault timezone on PHP
PHP_INI_MEMORY_LIMIT256MPHP Memory limit
PHP_INI_UPLOAD_MAX_FILESIZE2MPHP Maximum allowed size for uploaded files
PHP_INI_POST_MAX_SIZE8MPHP Maximum size of POST data that PHP will accept.
PHP_INI_ALLOW_URL_FOPEN0Allow URL-aware fopen wrappers
WWW_USER_IDID of user www-data. ID will not changed if leave empty. During a development, it is very practical to put the same ID as the host user.
WWW_GROUP_IDID of group www-data. ID will not changed if leave empty.
DOLI_AUTHdolibarrWhich method is used to connect users, change to ldap or ldap, dolibarr to use LDAP
DOLI_LDAP_HOST127.0.0.1The host of the LDAP server
DOLI_LDAP_PORT389The port of the LDAP server
DOLI_LDAP_VERSION3The version of LDAP to use
DOLI_LDAP_SERVER_TYPEopenldapThe type of LDAP server (openLDAP, Active Directory, eGroupWare)
DOLI_LDAP_LOGIN_ATTRIBUTEuidThe attribute used to bind users
DOLI_LDAP_DNou=users,dc=my-domain,dc=comThe base where to look for users
DOLI_LDAP_FILTERThe filter to authorise users to connect
DOLI_LDAP_BIND_DNThe complete DN of the user with read access on users
DOLI_LDAP_BIND_PASSThe password of the bind user
DOLI_LDAP_DEBUGfalseActivate debug mode
DOLI_CRON01: Enable cron service
DOLI_CRON_KEYSecurity key launch cron jobs
DOLI_CRON_USERDolibarr user used for cron jobs
DOLI_INSTANCE_UNIQUE_IDSecret ID used as a salt / key for some encryption. By default, it is set randomly when the docker container is created.

Some environment variables are compatible with docker secrets behaviour, just add the _FILE suffix to var name and point the value file to read. Environment variables that are compatible with docker secrets:

  • DOLI_DB_USER => DOLI_DB_USER_FILE
  • DOLI_DB_PASSWORD => DOLI_DB_PASSWORD_FILE
  • DOLI_ADMIN_LOGIN => DOLI_ADMIN_LOGIN_FILE
  • DOLI_ADMIN_PASSWORD => DOLI_ADMIN_PASSWORD_FILE
  • DOLI_CRON_KEY => DOLI_CRON_KEY_FILE
  • DOLI_CRON_USER => DOLI_CRON_USER_FILE
  • DOLI_INSTANCE_UNIQUE_ID => DOLI_INSTANCE_UNIQUE_ID_FILE

⁠Add post-deployment and before starting scripts

It is possible to execute *.sh, *.sql and/or *.php custom file at the end of deployment or before starting Apache by mounting volumes. For scripts executed during deployment mount volume in /var/www/scripts/docker-init.d. For scripts executed before Apache stating mount volume in /var/www/scripts/before-starting.d.

\docker-init.d
|- custom_script.sql
|- custom_script.php
|- custom_script.sh

Mount the volumes with compose file :

services:
    mariadb:
        image: mariadb:latest
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: dolibarr

    web:
        image: tuxgasy/dolibarr
        environment:
            DOLI_DB_HOST: mariadb
            DOLI_DB_USER: root
            DOLI_DB_PASSWORD: root
            DOLI_DB_NAME: dolibarr
            DOLI_URL_ROOT: 'http://0.0.0.0'
            PHP_INI_DATE_TIMEZONE: 'Europe/Paris'
        volumes :
          - volume-scripts:/var/www/scripts/docker-init.d
          - before-starting-scripts:/var/www/scripts/before-starting.d
        ports:
            - "80:80"
        links:
            - mariadb

Tag summary

Content type

Image

Digest

sha256:a47f3e955…

Size

238.2 MB

Last updated

about 2 years ago

docker pull tuxgasy/dolibarr