cs-ai-sakura-dev / Dockerfile.runpod
lifedebugger's picture
Deploy files from GitHub repository
7ae0310
# Dockerfile untuk RunPod Deployment
FROM python:3.13-slim
# Set labels untuk RunPod
LABEL maintainer="abdan.hafidz@gmail.com"
LABEL version="1.0"
LABEL description="A.I Sakura Backend"
# Install system dependencies
RUN apt-get update && \
apt-get install -y \
ffmpeg \
curl \
wget \
git \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Create app user
RUN useradd -m -u 1001 appuser
# Set working directory
WORKDIR /rag_be
# Environment variables untuk caching
ENV HF_HOME=/src/.cache/huggingface
ENV TRANSFORMERS_CACHE=/src/.cache/transformers
ENV TORCH_HOME=/src/.cache/torch
ENV XDG_CACHE_HOME=/src/.cache
ENV TMPDIR=/tmp
ENV WHISPER_CACHE_DIR=/src/.cache/whisper
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
# Copy requirements dan install dependencies
COPY requirements.txt ./
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir --upgrade -r requirements.txt && \
pip uninstall torch torchvision torchaudio -y && \
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
# Copy application code
COPY --chown=appuser:appuser . /rag_be
# Create necessary directories dengan permissions yang tepat
RUN mkdir -p \
/src/.cache/whisper \
/src/.cache/huggingface \
/src/.cache/transformers \
/src/.cache/torch \
/rag_be/data/vectorstore \
/rag_be/data/documents \
/rag_be/logs && \
chown -R appuser:appuser /src /rag_be && \
chmod -R 755 /src /rag_be
# Health check untuk RunPod
HEALTHCHECK --interval=30s --timeout=30s --start-period=60s --retries=3 \
CMD curl -f http://localhost:7860/health || exit 1
# Switch to non-root user
USER appuser
# Expose ports
EXPOSE 7860
# Default command - dapat di-override oleh RunPod
CMD ["python", "main.py", "--mode", "rtc-cs-ui", "--port", "7860"]