# Grab a fresh copy of the Python image | |
FROM python:3.11-slim | |
# Install build and runtime dependencies | |
RUN apt-get update && \ | |
apt-get install -y \ | |
libopenblas-dev \ | |
ninja-build \ | |
build-essential \ | |
pkg-config \ | |
curl | |
RUN pip install -U pip setuptools wheel && \ | |
CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" FORCE_CMAKE=1 pip install --verbose llama-cpp-python[server] | |
# Download model | |
RUN mkdir model && \ | |
curl -L https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF/resolve/main/mistral-7b-instruct-v0.1.Q4_K_M.gguf -o model/gguf-model.bin | |
COPY ./start_server.sh ./ | |
COPY ./main.py ./ | |
COPY ./index.html ./ | |
# Make the server start script executable | |
RUN chmod +x ./start_server.sh | |
# Set environment variable for the host | |
ENV HOST=0.0.0.0 | |
ENV PORT=7860 | |
# Expose a port for the server | |
EXPOSE ${PORT} | |
# Run the server start script | |
CMD ["/bin/sh", "./start_server.sh"] |