Installer Odoo à l’aide de Docker sur Linux

Installer Odoo avec Docker Compose Linux ubuntu debian centos rRHEL

Odoo est une puissante suite open-source d’applications métier qui couvre un large éventail de fonctionnalités, notamment la Gestion de la Relation Client (GRC), le Créateur de Site Web, le e-commerce, la Gestion de Projet, la Comptabilité, et bien plus encore. Bien que vous puissiez installer Odoo directement sur votre système Linux, l’utilisation de Docker pour installer Odoo offre plusieurs avantages, comme un déploiement plus simple, une meilleure isolation des ressources et des environnements cohérents entre différents systèmes.

Dans cet article, nous vous guiderons à travers le processus étape par étape pour installer Odoo à l’aide de Docker sur un système Linux. Nous aborderons les sujets suivants :

  1. Prérequis
  2. Installation de Docker
  3. Récupération de l’image Docker d’Odoo
  4. Création d’un réseau Docker
  5. Création d’un conteneur PostgreSQL
  6. Création d’un conteneur Odoo
  7. Accès à l’instance Odoo
  8. Configuration d’Odoo
  9. Mise à jour d’Odoo
  10. Dépannage

1. Prérequis

Avant de commencer, assurez-vous d’avoir les prérequis suivants en place :

  • Un système Linux (ce guide utilisera Ubuntu 20.04 LTS comme exemple, mais les étapes devraient être similaires pour d’autres distributions Linux)
  • Un utilisateur non root avec les privilèges sudo
  • Une compréhension de base de Docker et de la ligne de commande Linux

2. Installation de Docker

Docker est une plateforme de conteneurisation populaire qui vous permet d’empaqueter des applications et leurs dépendances dans des conteneurs isolés. Si vous n’avez pas encore installé Docker sur votre système Linux, suivez ces étapes :

  1. Mettez à jour l’index des paquets :
$ sudo apt-get update
  1. Installez les paquets requis pour permettre à apt d’utiliser un dépôt via HTTPS :
$ sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
  1. Ajoutez la clé GPG officielle de Docker :
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. Ajoutez le dépôt Docker à la liste des sources de votre système :
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
  1. Mettez à nouveau à jour l’index des paquets :
$ sudo apt-get update
  1. Installez la dernière version du moteur Docker et de containerd :
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  1. Vérifiez que Docker est correctement installé en exécutant la commande suivante :
$ sudo docker run hello-world

Si tout est configuré correctement, vous devriez voir un message indiquant que l’installation de Docker a réussi.

3. Récupération de l’image Docker d’Odoo

Odoo fournit des images Docker officielles que vous pouvez utiliser pour exécuter Odoo dans un environnement conteneurisé. Pour récupérer la dernière image Odoo, exécutez la commande suivante :

$ sudo docker pull odoo:latest

Cette commande téléchargera la dernière version de l’image Docker Odoo depuis le dépôt officiel Docker Hub. Si vous préférez utiliser une version spécifique d’Odoo, vous pouvez remplacer latest par le tag de version souhaité (par exemple, odoo:14.0).

4. Création d’un réseau Docker

Les réseaux Docker permettent aux conteneurs de communiquer entre eux. Nous allons créer un nouveau réseau pour nos conteneurs Odoo et PostgreSQL :

$ sudo docker network create odoo-network

Cette commande crée un nouveau réseau Docker nommé odoo-network.

5. Création d’un conteneur PostgreSQL

Odoo nécessite une base de données PostgreSQL pour stocker ses données. Nous allons créer un conteneur PostgreSQL et le connecter au réseau odoo-network que nous venons de créer :

$ sudo docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=odoo --network=odoo-network --name db postgres:13

Décortiquons cette commande :

  • docker run : Exécute un nouveau conteneur à partir d’une image
  • -d : Exécute le conteneur en mode détaché (en arrière-plan)
  • -e POSTGRES_USER=odoo : Définit l’utilisateur PostgreSQL sur odoo
  • -e POSTGRES_PASSWORD=odoo : Définit le mot de passe PostgreSQL sur odoo
  • -e POSTGRES_DB=odoo : Définit le nom de la base de données initiale sur odoo
  • --network=odoo-network : Connecte le conteneur au réseau odoo-network
  • --name db : Attribue le nom db au conteneur
  • postgres:13 : Utilise l’image Docker officielle PostgreSQL 13

Cette commande crée un nouveau conteneur PostgreSQL nommé db connecté au réseau odoo-network avec une base de données nommée odoo et les identifiants odoo/odoo.

6. Création d’un conteneur Odoo

Maintenant que nous avons un conteneur PostgreSQL en cours d’exécution, nous pouvons créer un conteneur Odoo et le lier au conteneur PostgreSQL :

$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -t odoo

Décortiquons cette commande :

  • docker run : Exécute un nouveau conteneur à partir d’une image
  • -p 8069:8069 : Mappe le port 8069 de l’hôte au port 8069 du conteneur (port par défaut d’Odoo)
  • --name odoo : Attribue le nom odoo au conteneur
  • --network=odoo-network : Connecte le conteneur au réseau odoo-network
  • -e HOST=db : Définit l’hôte PostgreSQL sur db (le nom de notre conteneur PostgreSQL)
  • -e USER=odoo : Définit l’utilisateur PostgreSQL sur odoo
  • -e PASSWORD=odoo : Définit le mot de passe PostgreSQL sur odoo
  • --link db:db : Lie le conteneur db au conteneur odoo avec un alias db
  • -t odoo : Spécifie l’image Docker Odoo à utiliser

Cette commande crée un nouveau conteneur Odoo nommé odoo connecté au réseau odoo-network et lié au conteneur PostgreSQL db. Elle mappe également le port 8069 de l’hôte au port 8069 du conteneur, vous permettant d’accéder à l’instance Odoo depuis votre navigateur web.

7. Accès à l’instance Odoo

Une fois que le conteneur Odoo est en cours d’exécution, vous pouvez accéder à l’instance Odoo en ouvrant un navigateur web et en vous rendant sur http://votre_ip_serveur:8069. Remplacez votre_ip_serveur par l’adresse IP de votre serveur Linux.

Si tout est configuré correctement, vous devriez voir l’écran d’accueil d’Odoo. À partir de là, vous pouvez créer une nouvelle base de données ou utiliser la base de données odoo que nous avons créée précédemment.

8. Configuration d’Odoo

Bien que la configuration par défaut convienne à la plupart des cas d’utilisation, vous voudrez peut-être personnaliser certains aspects de votre installation Odoo. Odoo fournit un fichier de configuration appelé odoo.conf qui vous permet de modifier différents paramètres.

Pour accéder au fichier odoo.conf, vous devrez créer un nouveau volume et le monter sur le conteneur Odoo. Voici comment procéder :

  1. Créez un nouveau répertoire pour stocker vos fichiers de configuration Odoo :
$ sudo mkdir -p /opt/odoo/config
  1. Créez un nouveau fichier odoo.conf dans le répertoire /opt/odoo/config :
$ sudo nano /opt/odoo/config/odoo.conf
  1. Ajoutez vos options de configuration souhaitées dans le fichier odoo.conf. Par exemple, pour changer la langue et le fuseau horaire par défaut :
[options]
; Ceci est le mot de passe qui autorise les opérations sur la base de données :
admin_passwd = mon_mdp_admin  
db_host = db
db_port = 5432  
db_user = odoo
db_password = odoo
addons_path = /mnt/extra-addons
; Langue
default_lang = fr_FR
; Fuseau horaire  
timezone = Europe/Paris
  1. Enregistrez et fermez le fichier odoo.conf.
  2. Arrêtez le conteneur Odoo existant :
$ sudo docker stop odoo  
  1. Supprimez le conteneur Odoo existant :
$ sudo docker rm odoo
  1. Exécutez un nouveau conteneur Odoo avec le volume de configuration monté :
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -v /opt/odoo/config:/etc/odoo -t odoo

Dans cette commande, nous avons ajouté l’option -v /opt/odoo/config:/etc/odoo pour monter le répertoire /opt/odoo/config de l’hôte dans le répertoire /etc/odoo à l’intérieur du conteneur. Cela permettra à Odoo de lire le fichier odoo.conf à partir du volume monté.

Après avoir exécuté cette commande, votre instance Odoo devrait maintenant être configurée avec les paramètres spécifiés dans le fichier odoo.conf.

9. Mise à jour d’Odoo

Lorsqu’une nouvelle version d’Odoo est publiée, vous devrez mettre à jour votre image Docker et vos conteneurs pour profiter des dernières fonctionnalités et mises à jour de sécurité. Voici comment mettre à jour votre installation Odoo :

  1. Récupérez la dernière image Docker Odoo :
$ sudo docker pull odoo:latest
  1. Arrêtez le conteneur Odoo existant :
$ sudo docker stop odoo
  1. Supprimez le conteneur Odoo existant :
$ sudo docker rm odoo
  1. Exécutez un nouveau conteneur Odoo avec l’image mise à jour :
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -v /opt/odoo/config:/etc/odoo -t odoo:latest

Cette commande est similaire à celle que nous avons utilisée pour créer le conteneur Odoo initial, mais avec le tag latest à la fin pour spécifier que nous voulons utiliser la dernière version de l’image Docker Odoo.

Après avoir exécuté cette commande, votre instance Odoo devrait être mise à jour avec la dernière version.

10. Utilisation de Docker Compose pour l’installation d’Odoo

Bien que vous puissiez exécuter manuellement les commandes Docker pour installer Odoo et ses dépendances, l’utilisation de Docker Compose peut simplifier le processus en définissant et en gérant les applications Docker multi-conteneurs. Docker Compose vous permet de spécifier la configuration pour tous les conteneurs requis dans un seul fichier YAML, ce qui facilite le déploiement et la gestion de votre configuration Odoo.

Voici comment utiliser Docker Compose pour installer Odoo :

  1. Installez Docker Compose si ce n’est pas déjà fait :
$ sudo apt-get install docker-compose
  1. Créez un nouveau répertoire pour votre projet Odoo et accédez-y :
$ mkdir odoo-projet
$ cd odoo-projet
  1. Créez un nouveau fichier nommé docker-compose.yml dans le répertoire odoo-projet :
$ nano docker-compose.yml
  1. Ajoutez le contenu suivant au fichier docker-compose.yml :
version: '3'
services:
  web:
    image: odoo:latest
    depends_on:
      - db
    ports:
      - "8069:8069"
    volumes:
      - ./config:/etc/odoo
    environment:
      - HOST=db
      - USER=odoo
      - PASSWORD=odoo
  db:
    image: postgres:13
    environment:
      - POSTGRES_USER=odoo
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_DB=odoo
    volumes:
      - odoo-db-data:/var/lib/postgresql/data
volumes:
  odoo-db-data:

Ce fichier docker-compose.yml définit deux services : web et db. Le service web est l’application Odoo, et le service db est la base de données PostgreSQL.

Le service web spécifie ce qui suit :

  • image : Utilise la dernière image Docker Odoo
  • depends_on : Spécifie que le service web dépend du service db
  • ports : Mappe le port 8069 de l’hôte au port 8069 du conteneur
  • volumes : Monte le répertoire ./config de l’hôte dans le répertoire /etc/odoo à l’intérieur du conteneur
  • environment : Définit les variables d’environnement pour le conteneur Odoo, y compris l’hôte, l’utilisateur et le mot de passe de la base de données

Le service db spécifie ce qui suit :

  • image : Utilise l’image Docker PostgreSQL 13
  • environment : Définit les variables d’environnement pour le conteneur PostgreSQL, y compris l’utilisateur, le mot de passe et le nom de la base de données
  • volumes : Monte un volume nommé odoo-db-data pour persister les données PostgreSQL
  1. Enregistrez et fermez le fichier docker-compose.yml.
  2. Créez le répertoire config pour stocker vos fichiers de configuration Odoo :
$ mkdir config
  1. Créez un nouveau fichier odoo.conf dans le répertoire config et ajoutez vos options de configuration souhaitées (consultez la section “Configuration d’Odoo” de l’article principal pour plus de détails).
  2. Démarrez les conteneurs Odoo et PostgreSQL à l’aide de Docker Compose :
$ docker-compose up -d

Cette commande créera et démarrera les conteneurs définis dans le fichier docker-compose.yml. Le drapeau -d exécute les conteneurs en mode détaché (en arrière-plan).

  1. Accédez à l’instance Odoo en ouvrant un navigateur web et en vous rendant sur http://votre_ip_serveur:8069.

L’utilisation de Docker Compose simplifie le processus d’installation et de gestion de plusieurs conteneurs pour votre installation Odoo. Le fichier docker-compose.yml sert de source unique de vérité pour la configuration de votre application, facilitant ainsi la maintenance et le déploiement de votre configuration Odoo dans différents environnements.

Si vous avez besoin d’arrêter ou de supprimer les conteneurs, vous pouvez utiliser les commandes Docker Compose suivantes :

# Arrêter les conteneurs
$ docker-compose stop
# Supprimer les conteneurs
$ docker-compose down

Docker Compose offre une approche plus structurée et évolutive pour déployer et gérer Odoo et ses dépendances à l’aide de conteneurs Docker.

Dépannage

Si vous rencontrez des problèmes lors du processus d’installation ou de configuration, voici quelques conseils de dépannage courants :

Vérification des journaux de conteneur

Si votre instance Odoo ne fonctionne pas comme prévu, vous pouvez vérifier les journaux du conteneur pour obtenir plus d’informations. Pour afficher les journaux du conteneur Odoo, exécutez :

$ sudo docker logs odoo

Cette commande affichera les journaux du conteneur odoo, ce qui peut vous aider à identifier et à diagnostiquer les problèmes.

Vérification de l’état du conteneur

Vous pouvez vérifier l’état de vos conteneurs Docker en exécutant :

$ sudo docker ps -a

Cette commande répertorie tous les conteneurs de votre système, ainsi que leur état (en cours d’exécution, arrêté, etc.). Si un conteneur n’est pas en cours d’exécution, vous pouvez essayer de le démarrer avec la commande suivante :

$ sudo docker start nom_conteneur

Remplacez nom_conteneur par le nom du conteneur que vous souhaitez démarrer (par exemple, odoo ou db).

Reconstruction des conteneurs

Si vous avez apporté des modifications à votre configuration Odoo ou rencontré des problèmes avec vos conteneurs existants, vous devrez peut-être les reconstruire. Suivez ces étapes pour reconstruire vos conteneurs Odoo et PostgreSQL :

  1. Arrêtez les conteneurs existants :
$ sudo docker stop odoo db
  1. Supprimez les conteneurs existants :
$ sudo docker rm odoo db
  1. Supprimez le réseau Docker existant :
$ sudo docker network rm odoo-network
  1. Créez un nouveau réseau Docker :
$ sudo docker network create odoo-network
  1. Créez un nouveau conteneur PostgreSQL :
$ sudo docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=odoo --network=odoo-network --name db postgres:13
  1. Créez un nouveau conteneur Odoo :
$ sudo docker run -p 8069:8069 --name odoo --network=odoo-network -e HOST=db -e USER=odoo -e PASSWORD=odoo --link db:db -v /opt/odoo/config:/etc/odoo -t odoo:latest

Ce processus créera de nouveaux conteneurs avec la dernière configuration et les modifications que vous avez apportées.

Conclusion

En suivant ce guide détaillé, vous devriez maintenant être en mesure d’installer et de configurer avec succès Odoo à l’aide de Docker sur votre système Linux. Docker offre un moyen pratique de gérer et de déployer Odoo, garantissant des environnements cohérents sur différents systèmes et simplifiant le processus d’installation.

N’oubliez pas de consulter la documentation officielle d’Odoo et les forums communautaires si vous rencontrez des problèmes ou avez des questions spécifiques sur la configuration ou la personnalisation de votre installation Odoo.

Laisser un commentaire