thera-guide-ai / Dockerfile
Said Lfagrouche
Fix model artifacts copying in Dockerfile and add fallback functionality for missing models
c13c6ef
FROM python:3.9
WORKDIR /app
# Install git, git-lfs, and build dependencies for native extensions
RUN apt-get update && \
apt-get install -y git git-lfs build-essential cmake pkg-config libpq-dev gcc g++ && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Copy requirements file
COPY requirements.txt .
# Install dependencies with pip upgrade
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir --upgrade -r requirements.txt
# Pre-download NLTK data during build time
RUN python -c "import nltk; nltk.download('punkt'); nltk.download('wordnet'); nltk.download('stopwords')" && \
mkdir -p /app/nltk_data && \
cp -r /root/nltk_data/* /app/nltk_data/ && \
chmod -R 755 /app/nltk_data
# Create necessary directories
RUN mkdir -p data/users data/sessions data/conversations data/feedback && \
mkdir -p mental_health_model_artifacts/chroma_db
# Copy application files
COPY app.py .
COPY .env.example .env
COPY api_mental_health.py .
COPY run_api.sh .
# Copy model artifacts directory
COPY mental_health_model_artifacts/ mental_health_model_artifacts/
# Make the script executable
RUN chmod +x run_api.sh
# Expose the port Hugging Face Spaces expects
EXPOSE 7860
# Command to run the application
CMD ["./run_api.sh"]