FROM python:3.12-slim ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ APP_PORT=7860 \ DATA_DIR=/data \ LOG_LEVEL=INFO \ LOG_FORMAT=json WORKDIR /app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY server.py ./ COPY app ./app COPY knowledge ./knowledge RUN mkdir -p /data/logs /data/backups && \ useradd --create-home --uid 1000 appuser && \ chown -R appuser:appuser /app /data USER appuser EXPOSE 7860 HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:7860/health/ready', timeout=3).read()" || exit 1 CMD ["python", "server.py"]