# Start with a standard, lightweight Python base image FROM python:3.10-slim # Set the working directory WORKDIR /code # Create persistent data directory and huggingface cache directory RUN mkdir -p /data/user_models_data \ && mkdir -p /data/huggingface_cache \ && chmod -R 777 /data # Set environment variables for Hugging Face cache ENV HF_HOME=/data/huggingface_cache ENV TRANSFORMERS_CACHE=/data/huggingface_cache ENV TORCH_HOME=/data/huggingface_cache # Volume to make learned data persistent VOLUME /data/user_models_data # Copy requirements and app code COPY ./requirements.txt /code/requirements.txt COPY ./user_models_data /data/user_models_data COPY ./main.py /code/main.py # Install dependencies RUN pip install --upgrade pip RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt # Pre-download the sentence-transformers model RUN python -c "from sentence_transformers import SentenceTransformer; SentenceTransformer('all-MiniLM-L6-v2')" # Expose the port used by Uvicorn EXPOSE 7860 # Start the app CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]