diff --git a/lmstudio/dockerfile b/lmstudio/dockerfile index a0ad78d..2883a67 100644 --- a/lmstudio/dockerfile +++ b/lmstudio/dockerfile @@ -8,7 +8,11 @@ RUN apt-get update && apt-get install -y \ wget \ x11vnc \ xvfb \ - && rm -rf /var/lib/apt/lists/* + net-tools \ + git \ + python3 \ + python3-numpy \ + novnc # Create the /app directory to hold the application WORKDIR /app @@ -22,38 +26,48 @@ RUN wget -O lmstudio.AppImage "https://releases.lmstudio.ai/linux/0.2.18/beta/LM mv squashfs-root lmstudio # or adddependencies on another layer -RUN apt-get update && apt-get install -y \ - dbus pciutils \ +RUN apt-get update && apt-get install -y \ + dbus pciutils \ libglib2.0-0 \ libnss3 \ libgbm1 \ libxshmfence1 \ libgl1-mesa-glx \ libegl1-mesa \ - libatk1.0-0 \ - libatk-bridge2.0-0 \ - libgtk-3-0 \ - libasound2 + libatk1.0-0 \ + libatk-bridge2.0-0 \ + libgtk-3-0 \ + libasound2 \ + && rm -rf /var/lib/apt/lists/* # Setup a virtual display environment with XVFB RUN Xvfb :99 -screen 0 1024x768x16 & ENV DISPLAY=:99 EXPOSE 8080 +# Expose port 5980 for noVNC +EXPOSE 5980 RUN ln -s /app/lmstudio/lm-studio /lm-studio #? RUN chmod +x /app/lmstudio/AppRun # Create a startup script to run Xvfb and your application +# Create a startup script RUN echo '#!/bin/bash\n\ Xvfb :99 -screen 0 1024x768x16 &\n\ export DISPLAY=:99\n\ -# Your application start command goes here\n\ +# Start X11VNC\n\ +x11vnc -display :99 -nopw -listen localhost -xkb -forever &\n\ +# Start noVNC\n\ +/opt/noVNC/utils/launch.sh --vnc localhost:5900 --listen 5980\n\ +# Start the application\n\ exec /app/lmstudio/AppRun --no-sandbox\n\ ' > /start-app.sh && chmod +x /start-app.sh + CMD ["/start-app.sh"] #> apt-get update && apt-get install -y git x11vnc #> git clone https://github.com/novnc/noVNC.git /opt/noVNC +#? x11vnc -display :99 -nopw -listen localhost -xkb -forever & @@ -67,6 +81,7 @@ CMD ["/start-app.sh"] # run: docker run (-dit) -p 8980:8080 llmstudio # docker build -t llmstudio . && docker run -it -p 8980:8080 llmstudio +# cd /mnt/storage/DEV/workspace/repos/git.d-popov.com/ai-kevin/lmstudio/ # docker run --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all -it llmstudio # docker build -t llmstudio . && docker run -dit -p 8980:8080 --volume /var/run/dbus:/var/run/dbus llmstudio # docker build -t llmstudio . && docker run -it -p 8980:8080 --volume /var/run/dbus:/var/run/dbus --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all --security-opt apparmor=unconfined llmstudio