A base image for our Odoo projects.
This image alone does nothing because it doesn't contain any Odoo's code. The
code should be added in a Docker inheriting from this image.
A project has to respect a structure, look at the example.
See also the Changelog.
The host for the database is
/data/odoo is declared, which is expected to contain Odoo's filestore
(this path is set in
Ports 8069 and 8072 are exposed by default.
MIGRATE can be
False and determines whether migration tool
marabunta will be launched. By default migration will be launched.
In Marabunta versions, you can
declare additional execution modes, such as
full in order to choose
which operations and addons are executed for a migration.
A typical use case would be:
- Install the set of addons in the base mode (the base mode is always executed)
- Load an excerpt of the data in the
demomode, used for test instances
- Load the complete dataset in the
fullmode, used for the integration and
On the test server, you would set
MARABUNTA_MODE=demo and on the production
By default, Marabunta does not allow
to execute more than one version upgrade at a time. This is because it is
dangerous to execute a migration script (say 9.1.0) if the version of the code
is not the same (say 9.2.0).
For a production server, it works, because usually you only want to upgrade to
the last version N from N-1. But for development or a test server, you might
want to take the risk of running all the migration scripts consecutively, this
MARABUNTA_ALLOW_SERIE=True is for.
When you are developing / testing migrations with
Marabunta, you can force the upgrade
of a specific version with
DEMO can be
False and determines whether Odoo will load its Demo
data. It has effect only at the creation of the database.
By default, the user ID inside of the container will be 9001. There is little
concern with this ID until we setup a host volume: the same user ID will be
used to write the files on the host's filesystem. 9001 will probably be
inexistent on the host system but at least it will not collide with an actual
Instead, you can set the ID of the host's system in
LOCAL_USER_ID, which will
then be shared by the container. All the files created in host volumes will
then share the same user.
Odoo Configuration Options
The main configuration options of Odoo can be configured through environment variables. The name of the environment variables are the same of the options but uppercased (eg.
Look in 9.0/etc/openerp.cfg.tmpl to see the full list.
While most of the variables can be set in the docker-compose file so we can have different values for different environments, the
ADDONS_PATH must be set in the
Dockerfile of your project with a line such as:
By setting this value in the
Dockerfile, it will be integrated into the build and thus will be consistent across each environment.
By the way, you can add other
ENV variables in your project's
Dockerfile if you want to customize the default values of some variables for a project.