{{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/]]