odoo-bin représente ci-dessous la commande de lancement validée avec votre environnement. Elle peut commencer par un chemin, par Python ou par l'outil de votre conteneur. ma_base_exercice et custom_addons représentent votre base et votre dossier d'addons réels.
Créer le squelette d'un module
Choisissez une seule option. Sur un hôte installé depuis les sources, une commande abrégée comme odoo-bin peut fonctionner parce que le fichier et son environnement Python sont accessibles sur l'hôte. Avec Docker, l'exécutable odoo et l'environnement Python se trouvent dans le conteneur.
Installation depuis les sources
Depuis la racine du workspace :
.venv/bin/python src/odoo/odoo-bin scaffold training_hello custom_addons
.\.venv\Scripts\python.exe .\src\odoo\odoo-bin scaffold training_hello .\custom_addons
À observer : Odoo crée custom_addons/training_hello/ dans le workspace.
macOS + Docker Desktop : vérifier l'environnement
Cette séquence concerne uniquement macOS avec Docker Desktop. Elle ne remplace pas une installation Odoo depuis les sources et ne suppose pas que Docker soit le choix de chaque participant.
command -v docker
À observer : la commande affiche un chemin vers docker. Si elle n'affiche rien, le CLI n'est pas accessible depuis ce terminal ; passez à l'étape suivante.
grep -qxF 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"' ~/.zshrc || echo 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"' >> ~/.zshrc
À observer : la ligne est ajoutée à ~/.zshrc seulement si elle n'y figure pas déjà. Elle rend le CLI et son helper visibles dans les prochains terminaux.
source ~/.zshrc
docker --version
À observer : le prompt revient après source, puis docker --version affiche une version. Si docker reste introuvable, arrêtez-vous et vérifiez le chemin de Docker Desktop avant de poursuivre.
Docker n'est pas démarré
docker info
À observer : si vous voyez les informations du serveur, Docker Desktop fonctionne. Si vous voyez Cannot connect to the Docker daemon, le CLI est présent mais le service n'est pas démarré.
Ouvrez Docker Desktop normalement depuis Finder ou Launchpad. Comme équivalent facultatif dans le terminal, utilisez open -a Docker. Attendez que Docker Desktop indique qu'il est prêt, puis relancez docker info. Si la commande échoue encore, arrêtez-vous et demandez un diagnostic de Docker Desktop.
docker compose up -d
À observer : Compose affiche les services démarrés sans erreur. Utilisez cette commande depuis le dossier qui contient votre fichier Compose ; ne lancez pas un autre projet Docker par approximation.
Docker Compose
Depuis le dossier qui contient le fichier Compose :
docker compose exec odoo odoo scaffold training_hello /mnt/custom_addons
Le premier odoo est le nom courant du service Compose ; remplacez-le uniquement si votre service porte un autre nom. Le second est l'exécutable de l'image officielle. /mnt/custom_addons est le chemin interne du conteneur qui correspond au dossier local custom_addons/.
docker compose exec odoo ls -ld /mnt/custom_addons/training_hello
À observer : le module apparaît dans votre dossier local custom_addons/training_hello/. Le chemin /mnt/custom_addons n'est qu'un repère interne au conteneur.
Suivre les logs pendant une mise à niveau
Depuis le même dossier Compose, gardez le journal du service Odoo ouvert lorsque vous installez ou mettez à niveau un module :
docker compose logs --tail=200 -f odoo
À observer : les 200 dernières lignes s'affichent, puis les nouvelles lignes restent visibles. Cherchez la première ligne qui mentionne votre module, votre fichier XML ou l'erreur qui suit. Arrêtez l'affichage avec Ctrl/Cmd + C. Remplacez odoo uniquement si votre fichier Compose donne un autre nom au service.
Le scaffold ne contacte pas la base et n'installe pas le module. Si training_hello/ existe déjà, ne relancez pas la commande. Avec Docker, une erreur de permission signale un bind mount non inscriptible : corrigez l'environnement sans appliquer de sudo ou de chmod à l'aveugle.
Le nom technique reste en minuscules, sans espace ni accent.
Installer un module par la CLI
odoo-bin -d ma_base_exercice -i training_hello --stop-after-init
-d choisit la base, -i installe le module et --stop-after-init arrête le processus lorsque l'opération est terminée. Relancez ensuite Odoo avec la procédure de votre environnement.
Mettre un module à niveau par la CLI
odoo-bin -d ma_base_exercice -u training_hello --stop-after-init
-u recharge le module déjà installé. Utilisez cette opération après une modification du manifeste, de données XML ou CSV, des vues, des droits d'accès ou des modèles.
Les étapes indiquent quand utiliser Apps pour installer ou mettre à niveau le module. Les commandes ci-dessus servent de référence lorsque votre environnement ou votre diagnostic exige la CLI.