FetchMerck_AI / Dockerfile
jeremygracey-ai's picture
Initial upload of Dockerfile
9f10167 verified
FROM python:3.12-slim
# Install system dependencies for building llama-cpp-python
RUN apt-get update && apt-get install -y \
build-essential \
python3-dev \
cmake \
&& rm -rf /var/lib/apt/lists/*
# Set working directory
WORKDIR /app
# Install required Python libraries
RUN pip install --no-cache-dir \
fastapi \
uvicorn \
pydantic \
huggingface_hub==0.35.3 \
pandas==2.2.2 \
tiktoken==0.12.0 \
pymupdf==1.26.5 \
langchain==0.3.27 \
langchain-community==0.3.31 \
chromadb==1.1.1 \
sentence-transformers==5.1.1 \
llama-cpp-python==0.2.28 \
'numpy<2.1.0'
# Copy the application logic and FastAPI server
COPY app_logic.py main.py ./
# Copy the persistent vector database directory
COPY chroma_db/ ./chroma_db/
# Create the directory structure for the model to match main.py's MODEL_PATH
RUN mkdir -p /root/.cache/huggingface/hub/models--TheBloke--Mistral-7B-Instruct-v0.1-GGUF/snapshots/731a9fc8f06f5f5e2db8a0cf9d256197eb6e05d1/
# Copy the quantized model file to the snapshot directory
COPY mistral-7b-instruct-v0.1.Q4_K_M.gguf /root/.cache/huggingface/hub/models--TheBloke--Mistral-7B-Instruct-v0.1-GGUF/snapshots/731a9fc8f06f5f5e2db8a0cf9d256197eb6e05d1/
# Expose port 8000 for FastAPI
EXPOSE 8000
# Command to start the FastAPI application
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]