erplibre/docker
Mathieu Benoit f7f5e800fe [ADD] test: what the tooling imports must be declared
textual, urwid and lxml were already in the tooling requirements; the
earlier table read as if they were missing, when it only compared
against the system python. psycopg2 is the one absent, and stays so:
nothing under script/ imports it, the analysis tools query PostgreSQL
through psql, and the Odoo venvs declare it where Odoo needs it.

A test now answers this by reading the imports instead of the venv. It
bites both ways: a removed declaration, and a new undeclared import.

Also chmod +X -> +x in the Dockerfile: uppercase only adds the bit to
directories, or to files that already carry one. On what COPY had just
laid down in 644 it did nothing.

--- FR ---

[ADD] test : ce que l'outillage importe doit être déclaré

textual, urwid et lxml y étaient déjà ; le tableau précédent laissait
croire le contraire, alors qu'il comparait au python du système.
psycopg2 est le seul absent, et le reste : rien sous script/ ne
l'importe, les outils d'analyse passent par psql, et les venvs Odoo le
déclarent là où Odoo en a besoin.

Un test répond désormais à la question en lisant les imports plutôt
que le venv. Il mord des deux côtés : déclaration retirée, et import
non déclaré.

Aussi chmod +X -> +x dans le Dockerfile : la majuscule n'ajoute le bit
qu'aux répertoires, ou aux fichiers qui en portent déjà un. Sur ce que
COPY venait de déposer en 644, elle ne faisait rien.

Assisted-by: Claude Opus 5
2026-08-17 00:40:01 -04:00
..
docker-compose_odoo_12.0.yml [UPD] docker compose refresh 2025-12-02 00:29:39 -05:00
docker-compose_odoo_14.0.yml [UPD] docker compose refresh 2025-12-02 00:29:39 -05:00
docker-compose_odoo_16.0.yml [UPD] docker compose refresh 2025-12-02 00:29:39 -05:00
docker-compose_odoo_18.0.yml [UPD] docker odoo 18 2026-02-05 02:07:47 -05:00
docker-compose_odoo_18.0_selenium.yml [UPD] docker odoo 18 2026-02-05 02:07:47 -05:00
Dockerfile [ADD] test: what the tooling imports must be declared 2026-08-17 00:40:01 -04:00
Dockerfile.base [FIX] docker install postgresql-client-18 for postgresql 18 2025-11-26 03:32:18 -05:00
Dockerfile.prod.pkg [IMP] support multi version odoo on same workspace 2025-10-31 01:36:26 -04:00
entrypoint.sh [IMP] support multi version odoo on same workspace 2025-10-31 01:36:26 -04:00
odoo.conf [ADD] docker add update_all_db and stop_before_init 2020-10-25 02:01:52 -04:00
README.base.md [UPD] doc replace odoo 16 by odoo 18 2026-03-07 00:06:11 -05:00
README.fr.md [UPD] doc replace odoo 16 by odoo 18 2026-03-07 00:06:11 -05:00
README.md [UPD] doc replace odoo 16 by odoo 18 2026-03-07 00:06:11 -05:00
repo_manifest_gen_org_prefix_path.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
wait-for-psql.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00

ERPLibre - Docker

Those images are prepared to permit better portability and reproducibility of ERPLibre release.

Due the growing code of ERPLibre, it could also simplify development.

NOTE: Those Dockerfiles themselves are in heavy development for now. Incompatibilities between releases are normal until the interface is stabilized.

Pre-requirements

  • Basic knowledge with Docker, Linux and bash
  • Latest Docker version

Files representations

  • Dockerfile.base: This Dockerfile represents the base Docker image layer reused by other child layers.
  • Dockerfile.dev: This Dockerfile is specialized in development.
  • Dockerfile.prod{pkg,src}: Dockerfile.prod.* is a Docker image specialized for production systems. Dockerfile.prod.pkg reuses official Debian files from Odoo.com. Dockerfile.prod.src fetches the Odoo source code as the ERPLibre runtime.

Getting started

Be sure to start daemon docker

systemctl start docker

Building the docker images

cd docker
docker build -f Dockerfile.base -t technolibre/erplibre-base:12.0 .
docker build -f Dockerfile.prod.pkg -t technolibre/erplibre:12.0-pkg .

Running ERPLibre using Docker-Compose

Go at the root of this git project.

cd ERPLibre
docker compose -f docker-compose.yml up -d

Diagnostic Docker-Compose

Show docker-compose information

docker compose ps
docker compose logs IMAGE_NAME

Show docker information

docker ps -a
docker volume ls
docker inspect DOCKER_NAME

Connect to a running docker

docker exec -ti DOCKER_NAME bash
docker exec -u root -ti DOCKER_NAME bash

Commands for debugging

docker run -p 8069:8069 --entrypoint bash -ti DOCKER_NAME
docker exec -ti DOCKER_NAME bash
docker exec -u root -ti DOCKER_NAME bash
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_USER=odoo -e POSTGRES_DB=postgres postgre

export
db_host = "host.docker.internal"

docker stats erplibre_ERPLibre_1

Cleaning

Delete all system

docker system prune -a

Delete docker image

docker image prune
docker rmi $(docker images -q)

Delete volumes

docker compose rm -v

Delete containers

docker rm $(docker ps -a | grep -v IMAGE | awk '{print $1}')

Delete volume

docker volume prune

Change docker directory

You can change the docker directory by editing file /etc/docker/daemon.json

{
  "data-root": "/home/docker"
}

And restart docker service. You can delete or move all older locations of docker.

Or

Add --data-root /second_drive/docker like example following into file /lib/systemd/system/docker.service :

ExecStart=/usr/bin/dockerd --data-root /second_drive/docker -H fd:// --containerd=/run/containerd/containerd.sock

Update docker

When building your docker with script

make docker_build_odoo_18

List your docker version

docker images

You need to push your docker image and update your tag, like 1.0.1:

docker push technolibre/erplibre:VERSION

Diagnostic

When getting and error about missing module, or after an upgrade, you need to update config file.

make docker_exec_erplibre_gen_config