Rhinox13/chatapi
0
1FROM python:3.12-slim2 3WORKDIR /app4 5# Install system dependencies6RUN apt-get update && apt-get install -y --no-install-recommends \7 gcc \8 && rm -rf /var/lib/apt/lists/*9 10# Copy backend code11COPY backend/ ./backend/12 13# Copy built frontend14COPY frontend/dist/ ./frontend/dist/15 16# Install Python dependencies17RUN pip install --no-cache-dir \18 flask>=3.1.0 \19 flask-cors>=6.0.2 \20 flask-sock>=0.7.0 \21 python-dotenv>=1.2.2 \22 qrcode>=7.4 \23 pillow>=10.0 \24 resend>=2.0.0 \25 sib-api-v3-sdk>=7.6.0 \26 tencentcloud-sdk-python>=3.0.0 \27 gunicorn>=26.0.0 \28 regex>=2024.11.629 30# Hugging Face Spaces environment settings31ENV CHATAPI_HOST=0.0.0.032ENV CHATAPI_PORT=786033ENV CHATAPI_WEB_DIST_DIR=/app/frontend/dist34ENV CHATAPI_DATA_DIR=/app/data35ENV CHATAPI_DB_PATH=/app/data/chatapi.sqlite336ENV CHATAPI_CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:517337ENV PYTHONPATH=/app38ENV PYTHONUNBUFFERED=139 40# Expose the port Hugging Face expects41EXPOSE 786042 43# Preload app before forking to avoid SQLite lock conflicts44# Single worker is sufficient for low-traffic free Spaces45CMD ["gunicorn", "--preload", "-w", "1", "-b", "0.0.0.0:7860", "--timeout", "120", "--worker-tmp-dir", "/dev/shm", "backend.app:create_app()"]46 