From e2080d51df50f004103483e8067b3b295031b331 Mon Sep 17 00:00:00 2001 From: lpierson Date: Thu, 28 May 2026 13:48:08 +0000 Subject: [PATCH] Actualiser 5.install_modules_OCA.sh --- 5.install_modules_OCA.sh | 57 +++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/5.install_modules_OCA.sh b/5.install_modules_OCA.sh index 4772cf2..2b53197 100755 --- a/5.install_modules_OCA.sh +++ b/5.install_modules_OCA.sh @@ -2,41 +2,47 @@ set -euo pipefail ######################## ### -### installation de modules OCA +### Installation de modules OCA +### +### Logique : on corrige le filestore tant que le conteneur vit, on ARRETE le +### serveur Odoo (sinon son ir_cron entre en concurrence et provoque un +### SerializationFailure sur ir_module_module), puis on installe dans des +### conteneurs JETABLES issus du service compose (docker compose run --rm). +### On relance le serveur a la fin. ### ######################## source ./0.variables.env +ODOO_SERVICE=odoo-service +# Variables attendues dans 0.variables.env : +# ODOO_SERVICE : nom du service compose (cf. docker compose config --services) +# ODOO_CONTAINER : nom du conteneur en cours (container_name) +# POSTGRES_DB : nom de la base -# Résolution du container_name depuis docker-compose.yml -# ODOO_CONTAINER=$(docker compose ps --format '{{.Name}}' | grep -v postgres | head -1) +: "${ODOO_SERVICE:?ODOO_SERVICE KO - verifie ton docker-compose.yml }" +: "${ODOO_CONTAINER:?ODOO_CONTAINER absent de 0.variables.env}" +: "${POSTGRES_DB:?POSTGRES_DB absent de 0.variables.env}" -if [[ -z "${ODOO_CONTAINER}" ]]; then - echo "ERREUR : impossible de résoudre container_name pour le service '${ODOO_SERVICE}'" - exit 1 -fi +echo "=== Service compose : ${ODOO_SERVICE} / conteneur : ${ODOO_CONTAINER} ===" -echo "=== Container cible : ${ODOO_CONTAINER} ===" - -echo "=== Vérification que le container tourne ===" +echo "=== Verification que le conteneur tourne ===" if ! docker inspect -f '{{.State.Running}}' "${ODOO_CONTAINER}" 2>/dev/null | grep -q true; then - echo "ERREUR : container ${ODOO_CONTAINER} non démarré ou inexistant" + echo "ERREUR : conteneur ${ODOO_CONTAINER} non demarre ou inexistant" exit 1 fi - -echo "=== Vérification que le container tourne ===" -if ! docker inspect -f '{{.State.Running}}' "${ODOO_CONTAINER}" 2>/dev/null | grep -q true; then - echo "ERREUR : container ${ODOO_CONTAINER} non démarré ou inexistant" - exit 1 -fi -echo "=== Mise à jour de la liste des addons ===" +echo "=== Correction des droits du filestore (conteneur encore vivant) ===" docker exec "${ODOO_CONTAINER}" \ - chown -R odoo:odoo /var/lib/odoo/filestore + chown -R odoo:odoo /var/lib/odoo/filestore +echo "=== Arret du serveur Odoo (liberation de ir_cron) ===" +docker stop "${ODOO_CONTAINER}" + +echo "=== Construction de la liste OCA ===" OCA_MODULES="$(./build_oca_modules.sh ./modules.d)" +echo "${OCA_MODULES}" -echo "=== Mise a jour de base ===" -docker exec -u odoo "${ODOO_CONTAINER}" \ +echo "=== Mise a jour de base (conteneur jetable) ===" +docker compose run --rm -u odoo "${ODOO_SERVICE}" \ odoo \ -c /etc/odoo/odoo.conf \ -d "${POSTGRES_DB}" \ @@ -46,8 +52,8 @@ docker exec -u odoo "${ODOO_CONTAINER}" \ --logfile "" \ --log-level info -echo "=== Installation des modules OCA ===" -docker exec -u odoo "${ODOO_CONTAINER}" \ +echo "=== Installation des modules OCA (conteneur jetable) ===" +docker compose run --rm -u odoo "${ODOO_SERVICE}" \ odoo \ -c /etc/odoo/odoo.conf \ -d "${POSTGRES_DB}" \ @@ -57,4 +63,7 @@ docker exec -u odoo "${ODOO_CONTAINER}" \ --logfile "" \ --log-level info -echo "=== Installation terminée ===" +echo "=== Redemarrage du serveur Odoo ===" +docker compose up -d "${ODOO_SERVICE}" + +echo "=== Installation terminee ===" \ No newline at end of file