erplibre/docker/README.base.md

6.2 KiB

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

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

Building the docker images

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 .

Running ERPLibre using Docker-Compose

Go at the root of this git project.

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

Show docker-compose information

Diagnostic Docker-Compose

Afficher les informations docker-compose

docker compose ps
docker compose logs IMAGE_NAME

Show docker information

Afficher les informations docker

docker ps -a
docker volume ls
docker inspect DOCKER_NAME

Connect to a running docker

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

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

Commands for debugging

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

Cleaning

Delete all system

Nettoyage

Supprimer tout le système

docker system prune -a

Delete docker image

Supprimer une image docker

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

Delete volumes

Supprimer les volumes

docker compose rm -v

Delete containers

Supprimer les conteneurs

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

Delete volume

Supprimer un volume

docker volume prune

Change docker directory

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

Changer le répertoire docker

Vous pouvez changer le répertoire docker en modifiant le fichier /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 :

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

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

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