# # # Read the doc: https://huggingface.co/docs/hub/spaces-sdks-docker # # FROM python:3.9 # # # Install Node.js, Chromium, FFmpeg, and dependencies # # RUN apt-get update && apt-get install -y \ # # curl \ # # chromium \ # # chromium-driver \ # # ffmpeg \ # # fonts-noto-color-emoji \ # # && curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \ # # && apt-get install -y nodejs \ # # && rm -rf /var/lib/apt/lists/* # # # Create non-root user # # RUN useradd -m -u 1000 user # # USER user # # ENV PATH="/home/user/.local/bin:$PATH" # # WORKDIR /app # # # Install Python dependencies # # COPY --chown=user ./requirements.txt requirements.txt # # RUN pip install --no-cache-dir --upgrade -r requirements.txt # # # Copy and install Node dependencies # # COPY --chown=user ./remotion/package*.json ./remotion/ # # RUN cd remotion && npm install # # # Copy all files # # COPY --chown=user . /app # # # Set environment variables for Remotion # # ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium # # ENV PUPPETEER_SKIP_DOWNLOAD=true # # # Expose port 7860 (HF Spaces standard) # # EXPOSE 7860 # # # Run FastAPI app # # CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] # # # Base image with Node + Python # # FROM node:22-bookworm-slim # # # Install Chrome dependencies + ffmpeg + fonts # # RUN apt-get update && apt-get install -y \ # # libnss3 libdbus-1-3 libatk1.0-0 libgbm-dev libasound2 \ # # libxrandr2 libxkbcommon-dev libxfixes3 libxcomposite1 libxdamage1 \ # # libatk-bridge2.0-0 libcups2 libpango-1.0-0 libcairo2 \ # # fonts-noto-color-emoji fonts-noto-cjk ffmpeg curl python3 python3-pip \ # # && rm -rf /var/lib/apt/lists/* # # # Set working directory # # WORKDIR /app # # # Copy Python dependencies first # # COPY requirements.txt . # # RUN pip install --no-cache-dir --break-system-packages -r requirements.txt # # # Copy Remotion project # # COPY remotion/package*.json remotion/ # # ENV PUPPETEER_SKIP_DOWNLOAD=true # # ENV REMOTION_BROWSER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-gpu --single-process --disable-background-timer-throttling" # # RUN cd remotion && npm install # # # Copy everything else # # COPY . . # # # Install Chromium for Remotion # # RUN cd remotion && npx remotion browser ensure # # # Expose FastAPI port # # EXPOSE 7860 # # # Run FastAPI # # CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] # # Use Node 22 slim as base # FROM node:22-bookworm-slim # # Install Chrome dependencies + ffmpeg + fonts # RUN apt-get update && apt-get install -y \ # libnss3 libdbus-1-3 libatk1.0-0 libgbm-dev libasound2 \ # libxrandr2 libxkbcommon-dev libxfixes3 libxcomposite1 libxdamage1 \ # libatk-bridge2.0-0 libcups2 libpango-1.0-0 libcairo2 \ # fonts-noto-color-emoji fonts-noto-cjk ffmpeg curl \ # && rm -rf /var/lib/apt/lists/* # # Set working directory # WORKDIR /app # # Copy Remotion project # COPY remotion ./remotion # # Install Node dependencies # RUN cd remotion && npm install # # Set Puppeteer / Remotion browser env # ENV PUPPETEER_SKIP_DOWNLOAD=true # ENV REMOTION_BROWSER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-gpu --single-process --disable-background-timer-throttling" # # Ensure Chrome Headless Shell is installed # RUN cd remotion && npx remotion browser ensure # # Expose port if using express # EXPOSE 3000 # # Default command (you can point this to a Node API entry) # CMD ["node", "remotion/render.mjs"] FROM python:3.12-slim RUN apt-get update && apt-get install -y git ffmpeg \ && rm -rf /var/lib/apt/lists/* WORKDIR /app RUN git clone https://github.com/travisvn/chatterbox-tts-api . RUN pip install --upgrade pip setuptools wheel CMD ["python", "-m", "chatterbox_tts_api"]