erplibre/docker/README.fr.md
Mathieu Benoit 42e10bcced [UPD] install : le venv d'outillage passe en Python 3.14.7
install_erplibre.sh bâtissait .venv.erplibre avec le python3 du système, quelle
que soit sa version : un 3.10 y donnait un venv que l'outillage ne sait pas
charger. Il délègue à install_venv.sh, qui obtient la version par mise, pyenv
ou la distribution, et rebâtit un venv hors service. Le PATCH ne borne que le
venv d'Odoo, dont le pyproject exige « >=3.12.10,<3.13 » : l'exiger ailleurs
écartait un Python de distribution d'un cran en retard — NixOS 25.11 livre
3.14.2 — et faisait compiler CPython pour rien. Le module NixOS déclare
désormais les DEUX Python, substitués depuis les fichiers de version.
Vérifié : 15 tests sur des venvs factices, conservés, rebâtis ou refusés selon
leur état, et un chemin sans pyvenv.cfg garde son contenu.

--- EN ---

install_erplibre.sh built .venv.erplibre with the system python3, whatever its
version: a 3.10 gave a venv the tooling cannot load. It delegates to
install_venv.sh, which obtains the version through mise, pyenv or the
distribution, and rebuilds a venv out of service. The PATCH bounds only Odoo's
venv, whose pyproject requires ">=3.12.10,<3.13": requiring it elsewhere turned
away a distribution Python one step behind — NixOS 25.11 ships 3.14.2 — and
compiled CPython for nothing. The NixOS module now declares BOTH Pythons,
substituted from the version files.
Checked: 15 tests on stub venvs, kept, rebuilt or refused by their state, and a
path without pyvenv.cfg keeps its content.

Assisted-by: Claude Opus 5
2026-09-24 13:56:57 -04:00

3.7 KiB

ERPLibre - Docker

Ces images sont préparées pour permettre une meilleure portabilité et reproductibilité des versions d'ERPLibre.

En raison du code croissant d'ERPLibre, cela pourrait aussi simplifier le développement.

NOTE : Ces Dockerfiles sont en développement actif pour le moment. Les incompatibilités entre les versions sont normales jusqu'à ce que l'interface soit stabilisée.

Prérequis

  • Connaissances de base avec Docker, Linux et bash
  • Dernière version de Docker

Représentation des fichiers

  • Dockerfile.base : Ce Dockerfile représente la couche d'image Docker de base réutilisée par les autres couches enfants.
  • Dockerfile.dev : Ce Dockerfile est spécialisé pour le développement.
  • Dockerfile.prod{pkg,src} : Dockerfile.prod.* est une image Docker spécialisée pour les systèmes de production. Dockerfile.prod.pkg réutilise les fichiers Debian officiels d'Odoo.com. Dockerfile.prod.src récupère le code source d'Odoo comme environnement d'exécution ERPLibre.

Démarrage

Assurez-vous de démarrer le démon docker

systemctl start docker

Construire les images docker

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 .

.venv.erplibre est bâti sur le Python de l'image, celui d'Odoo, sans mise ni pyenv. La construction s'arrête quand ce Python ne sait pas lire script/, ce qui arrive avec une version d'Odoo dépréciée.

Exécuter ERPLibre avec Docker-Compose

Allez à la racine de ce projet git.

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

Diagnostic Docker-Compose

Afficher les informations docker-compose

docker compose ps
docker compose logs IMAGE_NAME

Afficher les informations docker

docker ps -a
docker volume ls
docker inspect DOCKER_NAME

Se connecter à un docker en cours d'exécution

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

Commandes pour le débogage

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

Nettoyage

Supprimer tout le système

docker system prune -a

Supprimer une image docker

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

Supprimer les volumes

docker compose rm -v

Supprimer les conteneurs

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

Supprimer un volume

docker volume prune

Changer le répertoire docker

Vous pouvez changer le répertoire docker en modifiant le fichier /etc/docker/daemon.json

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

Et redémarrez le service docker. Vous pouvez supprimer ou déplacer tous les anciens emplacements de docker.

Ou

Ajoutez --data-root /second_drive/docker comme dans l'exemple suivant dans le fichier /lib/systemd/system/docker.service :

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

Mettre à jour docker

Lors de la construction de votre docker avec le script

make docker_build_odoo_18

Listez vos versions docker

docker images

Vous devez pousser votre image docker et mettre à jour votre tag, comme 1.0.1 :

docker push technolibre/erplibre:VERSION

Diagnostic

Lorsque vous obtenez une erreur de module manquant, ou après une mise à jour, vous devez mettre à jour le fichier de configuration.

make docker_exec_erplibre_gen_config