kinyarwanda-engine / Dockerfile
black44's picture
Update Dockerfile
cc0ca05 verified
raw
history blame
1.92 kB
# Use Python 3.10 slim image
FROM python:3.10-slim
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
HF_HOME=/app/.cache \
TRANSFORMERS_VERBOSITY=error
# Set working directory and create necessary folders
WORKDIR /app
RUN mkdir -p /app/.cache /app/models/suno-bark /app/models/sentiment && \
chmod -R 777 /app/.cache /app/models
# Install OS dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
libsndfile1 ffmpeg ca-certificates && \
rm -rf /var/lib/apt/lists/*
# Copy requirements and install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir --root-user-action=ignore -r requirements.txt
# Download Bark TTS model
RUN python3 - <<EOF
try:
from transformers import AutoTokenizer, AutoProcessor, BarkModel
model_name = "suno/bark-small"
print(f"Downloading {model_name}...")
AutoTokenizer.from_pretrained(model_name).save_pretrained("/app/models/suno-bark")
AutoProcessor.from_pretrained(model_name).save_pretrained("/app/models/suno-bark")
BarkModel.from_pretrained(model_name).save_pretrained("/app/models/suno-bark")
except Exception as e:
print("ERROR:", e)
exit(1)
EOF
# Download sentiment analysis model
RUN python3 - <<EOF
try:
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model_name = "cardiffnlp/twitter-xlm-roberta-base-sentiment"
print(f"Downloading {model_name}...")
AutoTokenizer.from_pretrained(model_name).save_pretrained("/app/models/sentiment")
AutoModelForSequenceClassification.from_pretrained(model_name).save_pretrained("/app/models/sentiment")
except Exception as e:
print("ERROR:", e)
exit(1)
EOF
# Copy application source code
COPY app .
# Expose port for Hugging Face Space
EXPOSE 7860
# Launch app using Uvicorn
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]