ishingiro / Dockerfile
IZERE HIRWA Roger
l
e3d301c
FROM python:3.11-slim
WORKDIR /app
# Install system build dependencies required to build some wheels (pycld3, llama-cpp-python, etc.)
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential \
cmake \
protobuf-compiler \
libprotobuf-dev \
gcc \
g++ \
python3-dev \
libffi-dev \
libssl-dev \
pkg-config \
libgomp1 \
git \
&& rm -rf /var/lib/apt/lists/*
# Ensure modern pip/setuptools/wheel before installing heavy requirements
RUN python -m pip install --upgrade pip setuptools wheel
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
# Create writable directories
RUN mkdir -p /app/instance && chmod -R 777 /app/instance
ENV HF_HOME=/app/transformers_cache
RUN mkdir -p /app/transformers_cache && chmod -R 777 /app/transformers_cache
# Create ../data directory for vector store
RUN mkdir -p /app/data && chmod -R 777 /app/data
RUN mkdir -p /data && chmod -R 777 /data
# Create uploads directory
RUN mkdir -p /app/uploads && chmod -R 777 /app/uploads
# Create logs directory
RUN mkdir -p /app/logs && chmod -R 777 /app/logs
RUN mkdir -p /storage && chmod -R 777 /storage # Ensure /storage exists before changing permissions
# Pre-download sentence-transformers model
RUN python -c "from sentence_transformers import SentenceTransformer; SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')"
EXPOSE 7860
CMD ["python", "app.py"]