FROM python:3.12-slim ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 WORKDIR /app COPY backend/requirements.lock ./ RUN pip install --no-cache-dir -r requirements.lock COPY backend/pyproject.toml ./ COPY backend/app ./app COPY backend/alembic ./alembic COPY backend/alembic.ini ./ COPY backend/tests ./tests COPY seed ./seed COPY knowledge ./knowledge COPY backend/entrypoint.sh ./entrypoint.sh RUN pip install --no-cache-dir --no-deps -e . && chmod +x ./entrypoint.sh \ && addgroup --system app && adduser --system --ingroup app --home /app app \ && chown -R app:app /app # Run migrations and the API as an unprivileged user; nothing here needs root. USER app EXPOSE 8000 CMD ["./entrypoint.sh"]