FROM python:3.12-slim ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=1 \ HOME=/home/user \ PATH=/home/user/.local/bin:$PATH \ API__HOST=0.0.0.0 \ API__PORT=7860 \ STORAGE__PROVIDER=local \ STORAGE__LOCAL_ROOT=/data/storage \ MONGO__URI=mongodb://127.0.0.1:27017 \ REDIS__URL=redis://127.0.0.1:6379/0 \ CELERY__BROKER_URL=redis://127.0.0.1:6379/1 \ CELERY__RESULT_BACKEND=redis://127.0.0.1:6379/2 \ FEATURES__ENABLE_PAYMENTS=false \ FEATURES__ENABLE_MODEL_AUTO_SYNC=false \ FEATURES__ENABLE_TELEGRAM_POLLING=true RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ curl \ git \ gnupg \ libgl1 \ libglib2.0-0 \ redis-server \ supervisor \ && rm -rf /var/lib/apt/lists/* RUN curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor RUN echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" > /etc/apt/sources.list.d/mongodb-org-8.0.list RUN apt-get update && apt-get install -y --no-install-recommends \ mongodb-org-server \ && rm -rf /var/lib/apt/lists/* RUN useradd -m -u 1000 user WORKDIR /home/user/app COPY --chown=user:user backend/pyproject.toml backend/README.md /home/user/app/backend/ COPY --chown=user:user backend/app /home/user/app/backend/app COPY --chown=user:user backend/scripts /home/user/app/backend/scripts COPY --chown=user:user hf_space /home/user/app/hf_space RUN python -m pip install --upgrade pip && python -m pip install /home/user/app/backend RUN mkdir -p /data/mongo /data/redis /data/storage && chown -R user:user /data RUN chmod +x /home/user/app/hf_space/entrypoint.sh USER user WORKDIR /home/user/app/backend EXPOSE 7860 ENTRYPOINT ["bash", "/home/user/app/hf_space/entrypoint.sh"]