diff --git a/.env.example b/.env.example index 9f06f51..5edeb27 100644 --- a/.env.example +++ b/.env.example @@ -21,6 +21,9 @@ DATABASE_URL=sqlite+aiosqlite:///./data/app.db # Production: PostgreSQL (uncomment and configure) # DATABASE_URL=postgresql+asyncpg://updater:secure-password@db:5432/insight_updater +DB_NAME=insight_updater +DB_USER=updater +DB_PASSWORD=change-me-db-password # ============================================================================= # REDIS (for Socket.io pub/sub, caching, rate limiting) diff --git a/backend/Dockerfile b/backend/Dockerfile index 0b5b455..1cb7639 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-slim +FROM python:3.11-slim AS base WORKDIR /app @@ -25,8 +25,15 @@ COPY . . # Create non-root user RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app -USER appuser EXPOSE 8000 -CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"] \ No newline at end of file +# Development stage: hot reload +FROM base AS development +USER appuser +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"] + +# Production stage: no reload +FROM base AS production +USER appuser +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/docker-compose.yml b/docker-compose.yml index f2148f2..0f72f69 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,7 @@ services: build: context: ./backend dockerfile: Dockerfile + target: development container_name: insight-updater-backend environment: - APP_ENV=development