feat: implement OmegaConf-based configuration management with uv
Configuration changes: - Replace pydantic-settings with OmegaConf for flexible config management - Support YAML config files via CONFIG_FILE environment variable - Support environment variables with STEWARD__SECTION__KEY format - Add config_schema.yaml as default configuration schema - Create pydantic models for each configuration section for type safety - Maintain backward compatibility via properties on Settings class - Add CONFIGURATION.md with comprehensive setup and usage guide - Update pyproject.toml to include config_schema.yaml in package data Build/deployment changes: - Replace pip with uv in Dockerfile for faster dependency installation - Create docker-compose.dev.yml for local development (build .) - Keep docker-compose.yml for production (uses ghcr.io/djw4/steward:latest) - Update .env.example with new STEWARD__* variable format This setup is designed for Kubernetes deployment: - Non-sensitive config goes in ConfigMap (config.yaml) - Secrets go in Secret resources (environment variables) - Single unified configuration system for all environments
This commit is contained in:
+4
-1
@@ -2,10 +2,13 @@ FROM python:3.12-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Install uv
|
||||
RUN pip install --no-cache-dir uv
|
||||
|
||||
# Install dependencies (separate layer for cache efficiency)
|
||||
COPY pyproject.toml README.md ./
|
||||
COPY steward/ steward/
|
||||
RUN pip install --no-cache-dir .
|
||||
RUN uv pip install --system --no-cache-dir .
|
||||
|
||||
# Create a non-root user (UID/GID 1000) and persistent data directory
|
||||
RUN addgroup --gid 1000 steward \
|
||||
|
||||
Reference in New Issue
Block a user