Files
rune-docker/Dockerfile
Seth Van Niekerk 08b959d93e
All checks were successful
Build & Push Docker Image / build-and-publish (push) Successful in 11s
Cleanup & GPU Support
2026-02-05 15:54:45 -05:00

66 lines
2.4 KiB
Docker

# Create a RuneLite docker image with Selkies support.
FROM ghcr.io/linuxserver/baseimage-selkies:ubuntunoble
# Environment variables for Selkies
ENV \
CUSTOM_HTTPS_PORT="8181" \
TITLE="RuneLite" \
SELKIES_MANUAL_WIDTH="1366" \
SELKIES_MANUAL_HEIGHT="768" \
SELKIES_FRAMERATE="30" \
SELKIES_SCALING_DPI="96" \
SELKIES_GAMEPAD_ENABLED="false" \
SELKIES_UI_SIDEBAR_SHOW_GAMEPADS="false"
# Install Java, tools, and GPU libraries for RuneLite GPU plugin support
RUN apt-get update && apt-get install -y --no-install-recommends \
default-jre \
wget \
libnotify-bin \
notification-daemon \
# GPU/OpenGL libraries for RuneLite GPU plugin
mesa-utils \
libgl1-mesa-dri \
libglx-mesa0 \
&& rm -rf /var/lib/apt/lists/*
# Add RuneLite icons and metadata for Selkies interface
COPY icons/ /usr/share/selkies/www/
# Inject iOS webapp meta tags using prepared file (cleaner than multiple sed commands)
RUN if [ -f /usr/share/selkies/www/index.html ]; then \
sed -i '/<\/head>/r /usr/share/selkies/www/webapp-meta.html' /usr/share/selkies/www/index.html ; \
fi
ENV RUNELITE_URL="https://github.com/runelite/launcher/releases/latest/download/RuneLite.jar"
ADD runelite /usr/local/bin
RUN wget $RUNELITE_URL -P /usr/local/bin \
&& chmod +x /usr/local/bin/RuneLite.jar \
&& chmod +x /usr/local/bin/runelite
# Configure window manager to hide title bars and maximize windows
RUN mkdir -p /etc/xdg/openbox
COPY openbox-rc.xml /etc/xdg/openbox/rc.xml
# Note: PulseAudio configuration handled by Selkies base image
# Use LinuxServer.io's autostart mechanism instead of custom cont-init.d
RUN mkdir -p /defaults && \
echo '/usr/local/bin/runelite' > /defaults/autostart
# Also create desktop autostart as backup
RUN mkdir -p /config/.config/autostart && \
echo '[Desktop Entry]' > /config/.config/autostart/runelite.desktop && \
echo 'Type=Application' >> /config/.config/autostart/runelite.desktop && \
echo 'Exec=/usr/local/bin/runelite' >> /config/.config/autostart/runelite.desktop && \
echo 'Hidden=false' >> /config/.config/autostart/runelite.desktop && \
echo 'NoDisplay=false' >> /config/.config/autostart/runelite.desktop && \
echo 'X-GNOME-Autostart-enabled=true' >> /config/.config/autostart/runelite.desktop && \
echo 'Name=RuneLite' >> /config/.config/autostart/runelite.desktop && \
chown -R abc:abc /config/.config
# Expose Selkies web interface port
EXPOSE 8181