Files
lmstudio-docker/Dockerfile

71 lines
2.0 KiB
Docker

ARG baseimage=debian:testing
FROM ${baseimage} AS baseimage
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV TZ="Europe/Berlin"
ARG DEBIAN_FRONTEND=noninteractive
# Build arguments
ARG ARG_UID=1000
ARG ARG_GID=1000
RUN <<eot
set -eux
apt -qy update
apt -qy install --no-install-recommends \
-o APT::Install-Recommends=false \
-o APT::Install-Suggests=false \
console-setup tzdata dbus x11-utils x11-xserver-utils dbus-x11 rocm-smi mesa-vulkan-drivers
apt -qy update
DEBIAN_FRONTEND=noninteractive apt -qy install --no-install-recommends \
-o APT::Install-Recommends=false \
-o APT::Install-Suggests=false \
libfuse2 kmod fuse libglib2.0-0 libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libgtk-3-0 libgbm1 libasound2t64 \
xserver-xorg xserver-xorg-video-amdgpu xvfb x11vnc \
libgomp1-amd64-cross libgomp1 libegl-mesa0 libegl1 pipx
mkdir -p /root/.vnc && x11vnc -storepasswd test123 /root/.vnc/passwd
pipx install uv
eot
RUN <<eot
echo 'export PATH="${PATH}:/root/.local/bin"' >>/root/.bashrc
echo 'export LLAMA_THREADS=12' >> ~/.bashrc
echo 'export DISPLAY=:99' >> ~/.bashrc
echo 'alias lms="~/.lmstudio/bin/lms"' >> ~/.bashrc
eot
#########################
FROM baseimage AS final
ADD https://lmstudio.ai/download/latest/linux/x64 /data/lms/LMStudio.AppImage
ADD ./http-server-config.json /http-server-config.json
RUN <<eot
set -eux
chmod ugo+x /data/lms/*.AppImage
/data/lms/*.AppImage --appimage-extract
rm /data/lms/*.AppImage
eot
ADD --chmod=0755 ./docker-entrypoint.sh /usr/local/bin/
ADD --chmod=0755 ./docker-healthcheck.sh /usr/local/bin/
# Setup the healthcheck
#HEALTHCHECK --interval=1m --timeout=10s --start-period=1m \
# CMD /bin/bash /usr/local/bin/docker-healthcheck.sh || exit 1
ENV DISPLAY=:99
# Not sure that this works
ENV LLAMA_THREADS=12
# Run the server
# CMD ["sh", "-c", "tail -f /dev/null"] # For development: keep container open
ENTRYPOINT ["/bin/bash", "/usr/local/bin/docker-entrypoint.sh"]