Table of Contents

,

Installer et faire tourner Odoo avec Docker

Les instructions sont valables pour un système d'exploitation Debian mais devraient être valable pour ses dérivatifs comme Ubuntu.

Préparer le système

Créer un nouvel utilisateur

# adduser sysadm

S'assurer que l'utilitaire sudo est installé.

# apt install sudo

Ajouter le nouvel utilisateur au group sudo

# adduser sysadm sudo

A partir de maintenant toutes les commandes sont exécutées en tant qu'utilisateur sysadm.

Se délogguer de l'utilisateur root et se relogguer en tant que sysadm.

Installer docker

S'assurer que l'utilitaire curl est installé.

$ sudo apt install curl

Installer Docker

$ curl -sSL https://get.docker.com/ | sudo sh

Installer l'utilitaire docker-compose.

$ sudo pip3 install docker-compose

Lancer Odoo avec docker

Créer un dossier qui contiendra l'ensemble des configurations.

$ cd
$ mkdir service.odoo

Télécharger les configurations :

$ cd
$ cd service.odoo
$ curl -s "https://wiki.elosys.net/doku.php?do=export_code&id=clientsdoc:odoo_install_and_run_with_docker&codeblock=0" -o odoo.conf
$ curl -s "https://wiki.elosys.net/doku.php?do=export_code&id=clientsdoc:odoo_install_and_run_with_docker&codeblock=1" -o docker-compose.yml
$ ls
docker-compose.yml  odoo.conf
$

Lancer Odoo pour la première fois:

$ cd
$ cd service.odoo
$ docker-compose up

Cette commande prendra un peu de temps pour s'achever car les images odoo et postgresql doivent être téléchargées.

À la fin du téléchargement le terminal devrait présenter un message qui ressemble aux lignes suivantes

odoo  | 2022-10-23 14:39:50,882 1 INFO ? odoo: Odoo version 16.0-20221012 
odoo  | 2022-10-23 14:39:50,882 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf
odoo  | 2022-10-23 14:39:50,883 1 INFO ? odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/mnt/extra-addons']
odoo  | 2022-10-23 14:39:50,883 1 INFO ? odoo: database: odoo@db:default
odoo  | 2022-10-23 14:39:52,123 1 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
odoo  | 2022-10-23 14:39:53,983 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on 3d9101998095:8069

Odoo ne sera pas encore fonctionnel avant une dernière étape.

Il faudra exécuter une commande supplémentaire pour régler les autorisations d'accès sur les dossiers partagés entre le système d'exploitation hôte et le container docker de l'application Odoo.

$ cd
$ cd service.odoo
$ docker-compose run -u root --rm --no-deps --entrypoint "bash -c \"chown -R odoo: /var/lib/odoo/ && chown `id -u`:`id -g` -R /mnt/extra-addons\"" odoo
$

À partir de maintenant vous pourrez accéder à Odoo en inscrivant sur le navigateur internet l'adresse IP de la machine. http://192.168.0.45 par exemple.

Démarrer et arrêter Odoo

La commande docker-compose up lance odoo dans docker mais confisque le terminal en émettant le log de l'application.

Si on souhaite arrêter odoo nous devons soit appuyer Ctrl-C sur le même terminal où a été éxecuté docker-compose up soit nous connecter à la machine avec un autre terminal et exécuter la commande suivante:

$ cd
$ cd service.odoo
$ docker-compose down

Où déposer les modules supplémentaires

La configuration utilisée dans le fichier docker-compose.yml et odoo.conf indique que c'est dans le dossier extra-addons que les modules supplémentaires doivent être déposés.

$ cd
$ cd service.odoo
$ ls -F
data/  extra-addons/  filestore/  docker-compose.yml  odoo.conf
$ cd extra-addons
$ git clone https://github.com/odoo/monmodule.git

A chaque fois qu'un module supplémentaire est ajouté, odoo doit être redémarré. La série de commandes pour arrêter et redémarrer odoo est la suivante

$ cd
$ cd service.odoo
$ docker-compose down
...
...
$ docker-compose up -d

Ici la commande docker-compose up -d nous permet de lancer odoo sans que le terminal ne soit confisqué.

Les logs peuvent être obtenus avec la commande docker-compose logs –tail=10 -f.

$ cd
$ cd service.odoo
$ docker-compose logs --tail=10 -f

Fichiers de configurations

odoo.conf
[options]
addons_path = /mnt/extra-addons
data_dir = /var/lib/odoo
docker-compose.yml
version: "3"
services:
  odoo:
    image: odoo:16.0
    container_name: odoo
    ports:
      - 80:8069
    environment:
      DB_ENV_POSTGRES_USER: odoo
      DB_ENV_POSTGRES_PASSWORD: odoo
    links:
      - db:db
    volumes:
      - ./extra-addons:/mnt/extra-addons
      - ./odoo.conf:/etc/odoo/odoo.conf
      - ./filestore:/var/lib/odoo
    network_mode: "bridge"
  db:
    image: postgres:14.0
    container_name: odoo_db
    hostname: odoo_db
    environment:
      POSTGRES_USER: odoo
      POSTGRES_PASSWORD: odoo
      POSTGRES_DB: postgres
    volumes:
      - ./data:/var/lib/postgresql/data
    network_mode: "bridge"

Voir aussi

Références Utiles