This repository has been archived on 2024-10-27. You can view files and clone it, but cannot push or open issues or pull requests.
local-llm-server/other/vllm/Docker/Dockerfile

86 lines
2.5 KiB
Docker
Raw Normal View History

2023-09-26 14:48:34 -06:00
FROM nvidia/cuda:11.8.0-devel-ubuntu22.04 as build
2023-09-27 14:36:49 -06:00
RUN apt-get update && \
apt-get install -y git python3-pip python3-venv wget unzip && \
rm -rf /var/lib/apt/lists/*
2023-09-26 21:45:13 -06:00
RUN pip3 install --upgrade pip setuptools wheel
2023-09-26 14:48:34 -06:00
RUN git clone https://git.evulid.cc/cyberes/local-llm-server.git /local-llm-server
2023-09-26 21:45:13 -06:00
RUN python3 -m venv /jupyterlab
RUN /jupyterlab/bin/pip install jupyterlab
RUN /jupyterlab/bin/jupyter labextension disable "@jupyterlab/apputils-extension:announcements"
2023-09-26 14:48:34 -06:00
RUN mkdir -p /app
RUN wget https://github.com/rapiz1/rathole/releases/download/v0.4.8/rathole-x86_64-unknown-linux-gnu.zip -O /tmp/rathole.zip
RUN unzip -j /tmp/rathole.zip -d /tmp
RUN rm /tmp/rathole.zip
RUN cp /tmp/rathole /app
2023-10-01 02:09:37 -06:00
RUN python3 -m venv /venv
2023-10-14 20:41:40 -06:00
RUN /venv/bin/pip install torch --index-url https://download.pytorch.org/whl/cu118
2023-10-01 02:09:37 -06:00
WORKDIR /local-llm-server
2023-10-15 12:12:01 -06:00
# We don't need to rebuild VLLM every time we build the container. But if we need
# to, uncomment the following line.
2023-10-15 10:43:35 -06:00
# ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache
2023-10-01 02:08:16 -06:00
RUN /venv/bin/pip install git+https://github.com/vllm-project/vllm
2023-09-26 21:45:13 -06:00
2023-09-26 14:48:34 -06:00
FROM nvidia/cuda:11.8.0-base-ubuntu22.04 as runtime
RUN apt-get update && apt-get install -y supervisor && rm -rf /var/lib/apt/lists/*
2023-09-26 21:45:13 -06:00
RUN useradd -ms /bin/bash apiserver
RUN usermod -s /bin/bash root
2023-09-27 14:36:49 -06:00
RUN apt-get update && \
2023-09-27 17:50:55 -06:00
apt-get install -y python3 python3-pip wget aria2 git-lfs git openssh-server openssh-client nano tmux file && \
2023-09-27 14:36:49 -06:00
rm -rf /var/lib/apt/lists/*
2023-09-26 21:45:13 -06:00
RUN pip3 install --upgrade pip setuptools wheel
RUN pip3 install glances
# Enable root SSH login
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# Disable password SSH login
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# Create the necessary directory for SSH
RUN mkdir /var/run/sshd
ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache
2023-09-26 14:48:34 -06:00
COPY --from=build /local-llm-server /local-llm-server
COPY --from=build /venv /venv
COPY --from=build /app /app
2023-09-26 21:45:13 -06:00
COPY --from=build /jupyterlab /jupyterlab
2023-09-27 17:50:55 -06:00
2023-10-15 12:12:01 -06:00
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY start-vllm.sh /app/start-vllm.sh
COPY start-container.sh /app/start.sh
2023-09-26 14:48:34 -06:00
2023-09-27 14:59:33 -06:00
RUN mkdir -p /var/log/app/
2023-09-26 14:48:34 -06:00
2023-09-26 21:45:13 -06:00
RUN chown -R apiserver:apiserver /local-llm-server && \
2023-09-27 14:59:33 -06:00
chown -R apiserver:apiserver /app && \
chown -R apiserver:apiserver /var/log/app/
2023-09-29 22:28:38 -06:00
RUN git config --global --add safe.directory /local-llm-server
2023-09-26 14:48:34 -06:00
2023-09-27 16:12:36 -06:00
RUN chmod +x /app/start.sh
2023-09-26 21:45:13 -06:00
ENV SHELL="/bin/bash"
# SSH
EXPOSE 22
# VLLM
2023-09-26 14:48:34 -06:00
EXPOSE 7000
2023-09-26 21:45:13 -06:00
# Jupyter
EXPOSE 8888
2023-09-27 16:12:36 -06:00
CMD /app/start.sh