k1rl-quasar / Dockerfile
RealComp's picture
Upload 32 files
047d482 verified
Raw
History Blame Contribute Delete
4.1 kB
# ============================================================================
# K1RL QUASAR — HuggingFace Spaces Deployment
# Port 7860 | 12GB RAM | Production Ready
# ============================================================================
FROM python:3.10-slim
# ── Environment ──────────────────────────────────────────────────────────────
ENV PYTHONUNBUFFERED=1
ENV DEBIAN_FRONTEND=noninteractive
ENV HF_HOME=/home/user/app/.cache/huggingface
ENV TRANSFORMERS_CACHE=/home/user/app/.cache/huggingface
ENV TORCH_HOME=/home/user/app/.cache/torch
# ── System packages ──────────────────────────────────────────────────────────
RUN apt-get update && apt-get install -y \
supervisor \
redis-server \
curl \
wget \
git \
htop \
nano \
procps \
&& rm -rf /var/lib/apt/lists/*
# ── Print Redis version for debugging ────────────────────────────────────────
RUN redis-server --version
# ── Application setup ────────────────────────────────────────────────────────
WORKDIR /home/user/app
# Copy requirements first (for Docker layer caching)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy all application files
COPY . .
# ── Directory structure ───────────────────────────────────────────────────────
RUN mkdir -p /home/user/app/logs \
/home/user/app/checkpoints \
/home/user/app/data \
/home/user/app/.cache \
/home/user/app/saves \
/tmp/quasar_cache \
&& chmod 777 /home/user/app/logs \
&& chmod 777 /tmp/quasar_cache
# ── Redis configuration ───────────────────────────────────────────────────────
COPY redis_hf.conf /etc/redis/redis.conf
RUN chown root:root /etc/redis/redis.conf && chmod 644 /etc/redis/redis.conf
# ── Test Redis config before building further ─────────────────────────────────
RUN redis-server /etc/redis/redis.conf --test-config || true
# ── Supervisor configuration ──────────────────────────────────────────────────
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# ── Permissions ───────────────────────────────────────────────────────────────
RUN find /home/user/app -name "*.py" -exec chmod +x {} \; && \
chmod 755 /home/user/app
# ── Health check ──────────────────────────────────────────────────────────────
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
CMD curl -f http://localhost:7860/health || exit 1
# ── Expose HuggingFace Spaces port ───────────────────────────────────────────
EXPOSE 7860
# ── Startup ───────────────────────────────────────────────────────────────────
CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf", "-n"]