| 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 \ |
| |
| 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 \ |
| |
| 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 |
|
|