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 :
- Prérequis
- Installation de Docker
- Récupération de l’image Docker d’Odoo
- Création d’un réseau Docker
- Création d’un conteneur PostgreSQL
- Création d’un conteneur Odoo
- Accès à l’instance Odoo
- Configuration d’Odoo
- Mise à jour d’Odoo
- 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 :
- Mettez à jour l’index des paquets :
$ sudo apt-get update
- 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
- Ajoutez la clé GPG officielle de Docker :
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 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"
- Mettez à nouveau à jour l’index des paquets :
$ sudo apt-get update
- Installez la dernière version du moteur Docker et de containerd :
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- 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 surodoo
-e POSTGRES_PASSWORD=odoo
: Définit le mot de passe PostgreSQL surodoo
-e POSTGRES_DB=odoo
: Définit le nom de la base de données initiale surodoo
--network=odoo-network
: Connecte le conteneur au réseauodoo-network
--name db
: Attribue le nomdb
au conteneurpostgres: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 nomodoo
au conteneur--network=odoo-network
: Connecte le conteneur au réseauodoo-network
-e HOST=db
: Définit l’hôte PostgreSQL surdb
(le nom de notre conteneur PostgreSQL)-e USER=odoo
: Définit l’utilisateur PostgreSQL surodoo
-e PASSWORD=odoo
: Définit le mot de passe PostgreSQL surodoo
--link db:db
: Lie le conteneurdb
au conteneurodoo
avec un aliasdb
-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 :
- Créez un nouveau répertoire pour stocker vos fichiers de configuration Odoo :
$ sudo mkdir -p /opt/odoo/config
- Créez un nouveau fichier
odoo.conf
dans le répertoire/opt/odoo/config
:
$ sudo nano /opt/odoo/config/odoo.conf
- 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
- Enregistrez et fermez le fichier
odoo.conf
. - Arrêtez le conteneur Odoo existant :
$ sudo docker stop odoo
- Supprimez le conteneur Odoo existant :
$ sudo docker rm odoo
- 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 :
- Récupérez la dernière image Docker Odoo :
$ sudo docker pull odoo:latest
- Arrêtez le conteneur Odoo existant :
$ sudo docker stop odoo
- Supprimez le conteneur Odoo existant :
$ sudo docker rm odoo
- 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 :
- Installez Docker Compose si ce n’est pas déjà fait :
$ sudo apt-get install docker-compose
- Créez un nouveau répertoire pour votre projet Odoo et accédez-y :
$ mkdir odoo-projet
$ cd odoo-projet
- Créez un nouveau fichier nommé
docker-compose.yml
dans le répertoireodoo-projet
:
$ nano docker-compose.yml
- 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 Odoodepends_on
: Spécifie que le serviceweb
dépend du servicedb
ports
: Mappe le port 8069 de l’hôte au port 8069 du conteneurvolumes
: Monte le répertoire./config
de l’hôte dans le répertoire/etc/odoo
à l’intérieur du conteneurenvironment
: 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 13environment
: 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éesvolumes
: Monte un volume nomméodoo-db-data
pour persister les données PostgreSQL
- Enregistrez et fermez le fichier
docker-compose.yml
. - Créez le répertoire
config
pour stocker vos fichiers de configuration Odoo :
$ mkdir config
- Créez un nouveau fichier
odoo.conf
dans le répertoireconfig
et ajoutez vos options de configuration souhaitées (consultez la section “Configuration d’Odoo” de l’article principal pour plus de détails). - 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).
- 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 :
- Arrêtez les conteneurs existants :
$ sudo docker stop odoo db
- Supprimez les conteneurs existants :
$ sudo docker rm odoo db
- Supprimez le réseau Docker existant :
$ sudo docker network rm odoo-network
- Créez un nouveau réseau Docker :
$ sudo docker network create odoo-network
- 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
- 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.