{{tag>docker odoo}}
====== Installer et faire tourner Odoo avec Docker ======
Les instructions sont valables pour un système d'exploitation [[https://www.debian.org/CD/http-ftp/|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 =====
[options]
addons_path = /mnt/extra-addons
data_dir = /var/lib/odoo
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 =====
* [[development:docker_overview|Introduction à docker]]
* [[clientsdoc:odoo_docker_build|Ajouter des bibliothèques python à odoo sous docker]]
===== Références Utiles =====
* [[https://docs.docker.com/]]
* [[https://docs.docker.com/compose/]]