fix: resolve dynaconf settings.toml not found in non-editable installs

The root_path for dynaconf resolved to site-packages instead of the
application root when installed non-editable (Docker). This caused all
settings without env var overrides to be None, crashing on startup with
a TypeError in chunk size validation.

Fix root_path to fall back to CWD when settings.toml isn't at the
source-tree path, and refactor get_settings() to only pass values
dynaconf actually has — letting Settings dataclass defaults apply for
unconfigured keys. Mount settings.toml into all docker-compose MCP
services as a read-only volume.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Chris Coutinho
2026-04-07 14:17:34 +02:00
co-authored by Claude Opus 4.6
parent c8e4cbe825
commit b8b1616897
2 changed files with 93 additions and 53 deletions
+4
View File
@@ -86,6 +86,7 @@ services:
- 127.0.0.1:9090:9090
volumes:
- mcp-data:/app/data
- ./settings.toml:/app/settings.toml:ro
environment:
- NEXTCLOUD_HOST=http://app:80
- NEXTCLOUD_USERNAME=admin
@@ -166,6 +167,7 @@ services:
# NO admin credentials - credentials come from client Authorization header
volumes:
- multi-user-basic-data:/app/data
- ./settings.toml:/app/settings.toml:ro
profiles:
- multi-user-basic
@@ -241,6 +243,7 @@ services:
volumes:
- keycloak-tokens:/app/data
- keycloak-oauth-storage:/app/.oauth
- ./settings.toml:/app/settings.toml:ro
profiles:
- keycloak
@@ -279,6 +282,7 @@ services:
volumes:
- login-flow-data:/app/data
- login-flow-oauth-storage:/app/.oauth
- ./settings.toml:/app/settings.toml:ro
profiles:
- login-flow