FROM nvidia/cuda:11.7.1-cudnn8-devel-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends \ git \ git-lfs \ wget \ curl \ # python build dependencies \ build-essential \ libssl-dev \ zlib1g-dev \ libbz2-dev \ libreadline-dev \ libsqlite3-dev \ libncursesw5-dev \ xz-utils \ tk-dev \ libxml2-dev \ libxmlsec1-dev \ libffi-dev \ liblzma-dev \ # gradio dependencies \ ffmpeg \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN curl -fsSL https://ollama.com/install.sh | sh ARG OLLAMA_MODEL RUN useradd -m -u 1000 user USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:${PATH} WORKDIR ${HOME}/app RUN curl https://pyenv.run | bash ENV PATH=${HOME}/.pyenv/shims:${HOME}/.pyenv/bin:${PATH} ARG PYTHON_VERSION=3.10.12 RUN pyenv install ${PYTHON_VERSION} && \ pyenv global ${PYTHON_VERSION} && \ pyenv rehash && \ pip install --no-cache-dir -U pip setuptools wheel && \ pip install packaging ninja COPY --chown=1000 ./requirements.txt /tmp/requirements.txt RUN pip install --no-cache-dir --upgrade -r /tmp/requirements.txt && \ pip install flash-attn --no-build-isolation COPY ollama_init.sh . RUN sh ./ollama_init.sh ${OLLAMA_MODEL} COPY --chown=1000 src ${HOME}/app EXPOSE 8501 CMD ollama serve & \ streamlit run app.py \ --server.headless true \ --server.enableCORS false \ --server.enableXsrfProtection false \ --server.fileWatcherType none \ --server.address 0.0.0.0 \ --logger.level debug