Cleanup & GPU Support
All checks were successful
Build & Push Docker Image / build-and-publish (push) Successful in 11s

This commit is contained in:
2026-02-05 15:53:02 -05:00
parent 0e583a14c3
commit 08b959d93e
6 changed files with 82 additions and 32 deletions

19
.dockerignore Normal file
View File

@@ -0,0 +1,19 @@
# Version control
.git
.gitea
.github
.gitignore
# Documentation
README.md
*.md
# IDE
.vscode
.idea
*.swp
*.swo
# OS files
.DS_Store
Thumbs.db

View File

@@ -4,39 +4,33 @@ FROM ghcr.io/linuxserver/baseimage-selkies:ubuntunoble
# Environment variables for Selkies # Environment variables for Selkies
ENV \ ENV \
# CUSTOM_PORT="8080" \
CUSTOM_HTTPS_PORT="8181" \ CUSTOM_HTTPS_PORT="8181" \
TITLE="RuneLite" \ TITLE="RuneLite" \
SELKIES_MANUAL_WIDTH="1366" \ SELKIES_MANUAL_WIDTH="1366" \
SELKIES_MANUAL_HEIGHT="768" \ SELKIES_MANUAL_HEIGHT="768" \
SELKIES_FRAMERATE="30" \ SELKIES_FRAMERATE="30" \
SELKIES_SCALING_DPI="96" \ SELKIES_SCALING_DPI="96" \
# SELKIES_AUDIO_ENABLED="false" \
SELKIES_GAMEPAD_ENABLED="false" \ SELKIES_GAMEPAD_ENABLED="false" \
SELKIES_UI_SIDEBAR_SHOW_GAMEPADS="false" SELKIES_UI_SIDEBAR_SHOW_GAMEPADS="false"
# SELKIES_UI_SIDEBAR_SHOW_AUDIO_SETTINGS="false"
# Install Java, tools, and GPU libraries for RuneLite GPU plugin support
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
default-jre \ default-jre \
wget \ wget \
libnotify-bin \ libnotify-bin \
notification-daemon \ notification-daemon \
# GPU/OpenGL libraries for RuneLite GPU plugin
mesa-utils \
libgl1-mesa-dri \
libglx-mesa0 \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Add RuneLite icon for Selkies interface and favicon # Add RuneLite icons and metadata for Selkies interface
COPY icons/ /usr/share/selkies/www/ COPY icons/ /usr/share/selkies/www/
# Inject iOS webapp meta tags and auth fix into Selkies HTML (if index.html exists) # Inject iOS webapp meta tags using prepared file (cleaner than multiple sed commands)
RUN if [ -f /usr/share/selkies/www/index.html ]; then \ RUN if [ -f /usr/share/selkies/www/index.html ]; then \
sed -i '/<\/head>/i\<!-- RuneLite iOS WebApp Support -->' /usr/share/selkies/www/index.html && \ sed -i '/<\/head>/r /usr/share/selkies/www/webapp-meta.html' /usr/share/selkies/www/index.html ; \
sed -i '/<\/head>/i\<meta name="apple-mobile-web-app-capable" content="yes">' /usr/share/selkies/www/index.html && \
sed -i '/<\/head>/i\<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">' /usr/share/selkies/www/index.html && \
sed -i '/<\/head>/i\<meta name="apple-mobile-web-app-title" content="RuneLite">' /usr/share/selkies/www/index.html && \
sed -i '/<\/head>/i\<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">' /usr/share/selkies/www/index.html && \
sed -i '/<\/head>/i\<link rel="apple-touch-icon" sizes="152x152" href="apple-touch-icon-152x152.png">' /usr/share/selkies/www/index.html && \
sed -i '/<\/head>/i\<link rel="manifest" href="manifest.json">' /usr/share/selkies/www/index.html && \
sed -i '/<\/head>/i\<meta name="theme-color" content="#ff6600">' /usr/share/selkies/www/index.html && \
echo "<!-- Auth fix temporarily disabled -->" ; \
fi fi
@@ -48,19 +42,8 @@ RUN wget $RUNELITE_URL -P /usr/local/bin \
&& chmod +x /usr/local/bin/runelite && chmod +x /usr/local/bin/runelite
# Configure window manager to hide title bars and maximize windows # Configure window manager to hide title bars and maximize windows
RUN mkdir -p /etc/xdg/openbox && \ RUN mkdir -p /etc/xdg/openbox
echo '<?xml version="1.0" encoding="UTF-8"?>' > /etc/xdg/openbox/rc.xml && \ COPY openbox-rc.xml /etc/xdg/openbox/rc.xml
echo '<openbox_config xmlns="http://openbox.org/3.4/rc">' >> /etc/xdg/openbox/rc.xml && \
echo ' <theme>' >> /etc/xdg/openbox/rc.xml && \
echo ' <name>Clearlooks</name>' >> /etc/xdg/openbox/rc.xml && \
echo ' </theme>' >> /etc/xdg/openbox/rc.xml && \
echo ' <applications>' >> /etc/xdg/openbox/rc.xml && \
echo ' <application class="*">' >> /etc/xdg/openbox/rc.xml && \
echo ' <maximized>true</maximized>' >> /etc/xdg/openbox/rc.xml && \
echo ' <decor>no</decor>' >> /etc/xdg/openbox/rc.xml && \
echo ' </application>' >> /etc/xdg/openbox/rc.xml && \
echo ' </applications>' >> /etc/xdg/openbox/rc.xml && \
echo '</openbox_config>' >> /etc/xdg/openbox/rc.xml
# Note: PulseAudio configuration handled by Selkies base image # Note: PulseAudio configuration handled by Selkies base image
@@ -79,6 +62,5 @@ RUN mkdir -p /config/.config/autostart && \
echo 'Name=RuneLite' >> /config/.config/autostart/runelite.desktop && \ echo 'Name=RuneLite' >> /config/.config/autostart/runelite.desktop && \
chown -R abc:abc /config/.config chown -R abc:abc /config/.config
# Expose Selkies web interface ports # Expose Selkies web interface port
EXPOSE 8181 EXPOSE 8181
# EXPOSE 8080 8181

View File

@@ -13,6 +13,32 @@ docker run -d \
ghcr.io/sethwv/rune-docker:latest ghcr.io/sethwv/rune-docker:latest
``` ```
### GPU Acceleration (Recommended for Better Performance)
RuneLite supports GPU rendering via OpenGL, which is enabled by default in this container. For optimal performance with hardware acceleration:
**NVIDIA GPUs:**
```bash
docker run -d \
--name runelite \
--gpus all \
-p 8181:8181 \
-v /path/to/appdata/.runelite:/config/.runelite:rw \
ghcr.io/sethwv/rune-docker:latest
```
**AMD/Intel GPUs:**
```bash
docker run -d \
--name runelite \
--device /dev/dri:/dev/dri \
-p 8181:8181 \
-v /path/to/appdata/.runelite:/config/.runelite:rw \
ghcr.io/sethwv/rune-docker:latest
```
**Note:** GPU mode provides significantly better FPS and reduced CPU usage. Software rendering (Mesa) is used as fallback if GPU is unavailable.
## Access ## Access
Once the container is running, access RuneLite through your web browser: Once the container is running, access RuneLite through your web browser:

View File

@@ -1,3 +1,5 @@
<!-- RuneLite iOS WebApp Support -->
<!-- iOS Web App Meta Tags --> <!-- iOS Web App Meta Tags -->
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

12
openbox-rc.xml Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<openbox_config xmlns="http://openbox.org/3.4/rc">
<theme>
<name>Clearlooks</name>
</theme>
<applications>
<application class="*">
<maximized>true</maximized>
<decor>no</decor>
</application>
</applications>
</openbox_config>

View File

@@ -3,5 +3,14 @@
# Ensure we're using the correct home directory # Ensure we're using the correct home directory
export HOME=/config export HOME=/config
# Run RuneLite with proper Java options for containerized environment # Set optimal Java options for RuneLite
exec java -jar /usr/local/bin/RuneLite.jar # -Xmx: Maximum heap size (adjust based on container memory)
# -Xms: Initial heap size (match Xmx for consistent performance)
# -Dsun.java2d.opengl: Enable OpenGL acceleration for Java2D
# --mode=AUTO: RuneLite will auto-select GPU mode if available
exec java \
-Xmx1024m \
-Xms1024m \
-Dsun.java2d.opengl=true \
-jar /usr/local/bin/RuneLite.jar \
--mode=AUTO