From 08cce1b884ebba73effedea439758d7fc44af25a Mon Sep 17 00:00:00 2001 From: AIIrondev Date: Wed, 20 May 2026 21:39:56 +0200 Subject: [PATCH] feat: enhance configuration path resolution for Docker deployments --- Web/modules/database/settings.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/Web/modules/database/settings.py b/Web/modules/database/settings.py index 03f0d87..d413a10 100644 --- a/Web/modules/database/settings.py +++ b/Web/modules/database/settings.py @@ -100,9 +100,29 @@ DEFAULTS = { } # Load configuration file -CONFIG_PATH = os.path.join(BASE_DIR, '..', 'config.json') +def _resolve_config_path(): + """Resolve runtime config path with robust fallbacks for Docker deployments.""" + env_path = os.getenv('INVENTAR_CONFIG_PATH', '').strip() + if env_path: + return env_path + + candidates = [ + os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(BASE_DIR))), 'config.json'), + os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'config.json'), + os.path.join(os.path.dirname(BASE_DIR), 'config.json'), + os.path.join(BASE_DIR, '..', 'config.json'), + ] + + for candidate in candidates: + if os.path.isfile(candidate): + return os.path.abspath(candidate) + + return os.path.abspath(candidates[0]) + + +CONFIG_PATH = _resolve_config_path() try: - with open(CONFIG_PATH, 'r') as f: + with open(CONFIG_PATH, 'r', encoding='utf-8') as f: _conf = json.load(f) except Exception: _conf = {}