# How to use or run Dolibarr with Docker (for a development environment) ?

The docker-compose.yml file is a sample of a config file to use to build and run Dolibarr in the 
current workspace with Docker. This docker image is intended for **development usage**. 
For a production usage you should consider official packages on https://hub.docker.com/r/dolibarr/dolibarr.


Before build/run, define the variable HOST_USER_ID as following:

        export HOST_USER_ID=$(id -u)

Go in repository build/docker :

        cd dev/build/docker

And then, depending on whether you want to run with a MariaDB database or
PostgreSQL database, you can run:

        docker compose -f docker-compose.yml -f mariadb.yml up

or

        docker compose -f docker-compose.yml -f postgres.yml up

This will run the following Docker containers : Dolibarr, MariaDB, MailDev.
In the case of PostgreSQL, only Dolibarr, MailDev and the PostgreSQL database will be running.

The URL to go to the installed Dolibarr is :

        http://0.0.0.0

In Dolibarr configuration Email let PHP mail function, To see all mail send by
Dolibarr go to maildev

        http://0.0.0.0:8081

Setup the database connection during the installation process, please use
mariadb or postgres (name of the database container) as database host.


## Setup your custom modules

You can setup your own modules from your development folder by using volume
mounts and docker compose override. For instance for your module "yourmodule"
located in `/path/to/your/module_folder`, you can edit `yourmodule.yml` and
write:

        ---
        services:
            web:
                volumes:
                    - /path/to/your/module_folder:/var/www/html/custom/yourmodule/

This will add your module at runtime inside the dolibarr custom plugins and it
will automatically be synced with your development environment.

Then, you can start by extending one of the commands above, for instance for
mariadb:

        docker compose -f docker-compose.yml -f postgres.yml -f yourmodule.yml up
