Vedisasi's picture
Upload folder using huggingface_hub
54c5666 verified
# ULTRATHINK - Multi-stage Dockerfile
# Supports both CPU and GPU training/inference
# ============================================
# Stage 1: Base image with dependencies
# ============================================
FROM python:3.10-slim AS base
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=1 \
DEBIAN_FRONTEND=noninteractive
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
build-essential \
ffmpeg \
libsndfile1 \
curl \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Install Python dependencies
COPY requirements.txt ./
RUN pip install --upgrade pip setuptools wheel && \
pip install -r requirements.txt
# ============================================
# Stage 2: Development image
# ============================================
FROM base AS development
# Install development tools
RUN pip install \
pytest \
pytest-cov \
black \
flake8 \
mypy \
ipython \
jupyter
COPY . .
# ============================================
# Stage 3: Production image (minimal)
# ============================================
FROM base AS production
# Copy only necessary files
COPY src/ ./src/
COPY train_ultrathink.py train_advanced.py app_gradio.py ./
COPY configs/ ./configs/
COPY scripts/ ./scripts/
# Create directories for outputs
RUN mkdir -p /app/outputs /app/checkpoints
# Expose ports
EXPOSE 7860 8000 5000
# Default command: run Gradio app
CMD ["python", "app_gradio.py"]
# ============================================
# Stage 4: Training image
# ============================================
FROM production AS training
# Copy test data and utilities
COPY tests/ ./tests/
# Default command: show help
CMD ["python", "train_ultrathink.py", "--help"]