|
|
|
|
|
FROM python:3.12-slim |
|
|
|
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive |
|
|
ENV PYTHONUNBUFFERED=1 |
|
|
|
|
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
|
git \ |
|
|
curl \ |
|
|
build-essential \ |
|
|
cmake \ |
|
|
wget \ |
|
|
libgomp1 \ |
|
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
|
|
|
ENV HOME=/app |
|
|
ENV STREAMLIT_SERVER_FILE_WATCHER_TYPE=none |
|
|
ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false |
|
|
ENV HF_HOME=/app/.cache/huggingface |
|
|
ENV HF_HUB_CACHE=/app/.cache/huggingface/hub |
|
|
ENV HUGGINGFACE_HUB_CACHE=/app/.cache/huggingface/hub |
|
|
ENV OMP_NUM_THREADS=1 |
|
|
ENV MKL_NUM_THREADS=1 |
|
|
ENV NUMEXPR_NUM_THREADS=1 |
|
|
ENV CHROMA_DB_PATH=/app/.cache/chroma_db |
|
|
|
|
|
|
|
|
RUN mkdir -p /app/.cache/huggingface /app/.streamlit && \ |
|
|
chmod -R 777 /app/.cache /app/.streamlit |
|
|
|
|
|
|
|
|
COPY requirements.txt . |
|
|
|
|
|
|
|
|
RUN pip install --no-cache-dir --upgrade pip setuptools wheel |
|
|
|
|
|
|
|
|
RUN pip install --no-cache-dir \ |
|
|
torch==2.3.0 \ |
|
|
torchvision==0.18.0 \ |
|
|
torchaudio==2.3.0 \ |
|
|
--index-url https://download.pytorch.org/whl/cu121 |
|
|
|
|
|
|
|
|
RUN pip install --no-cache-dir \ |
|
|
llama-cpp-python==0.2.90 \ |
|
|
--extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu121 |
|
|
|
|
|
|
|
|
RUN pip install --no-cache-dir -r requirements.txt |
|
|
|
|
|
|
|
|
COPY . . |
|
|
|
|
|
|
|
|
RUN chmod +x /app/start.sh || echo "start.sh not found, will create" |
|
|
|
|
|
|
|
|
RUN if [ ! -f /app/start.sh ]; then \ |
|
|
echo '#!/bin/bash' > /app/start.sh && \ |
|
|
echo 'streamlit run chatbot_app.py --server.port=7860 --server.address=0.0.0.0 --server.headless=true' >> /app/start.sh && \ |
|
|
chmod +x /app/start.sh; \ |
|
|
fi |
|
|
|
|
|
|
|
|
RUN ls -la /app/start.sh |
|
|
|
|
|
|
|
|
EXPOSE 7860 |
|
|
|
|
|
|
|
|
CMD ["/bin/bash", "/app/start.sh"] |
|
|
|