diff --git a/Dockerfile b/Dockerfile index 0a5564e..3998952 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1 +FROM lscr.io/linuxserver/xvfb:arch AS xvfb FROM ghcr.io/linuxserver/baseimage-alpine:3.21 AS frontend RUN \ @@ -249,6 +250,7 @@ RUN \ # add local files COPY /root / COPY --from=frontend /buildout /usr/share/selkies/www +COPY --from=xvfb / / # ports and volumes EXPOSE 3000 3001 diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index a23888d..599b2e6 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1 +FROM lscr.io/linuxserver/xvfb:arm64v8-arch AS xvfb FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.21 AS frontend RUN \ @@ -243,8 +244,10 @@ RUN \ /var/lib/pacman/sync/* # add local files +FROM lscr.io/linuxserver/xvfb:alpine322 AS xvfb COPY /root / COPY --from=frontend /buildout /usr/share/selkies/www +COPY --from=xvfb / / # ports and volumes EXPOSE 3000 3001 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-xorg/run b/root/etc/s6-overlay/s6-rc.d/svc-xorg/run index a0cbb27..02603aa 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-xorg/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-xorg/run @@ -1,10 +1,19 @@ #!/usr/bin/with-contenv bash +# Enable DRI3 support if detected +VFBCOMMAND="" +if ! which nvidia-smi && [ -e "/dev/dri/renderD128" ]; then + VFBCOMMAND="-vfbdevice /dev/dri/renderD128" +fi +if [ ! -z ${DRINODE+x} ]; then + VFBCOMMAND="-vfbdevice ${DRINODE}" +fi + # Run Xvfb server with required extensions exec s6-setuidgid abc \ /usr/bin/Xvfb \ "${DISPLAY}" \ - -screen 0 "3840x2160x${DISPLAY_CDEPTH}" \ + -screen 0 "7680x4320x${DISPLAY_CDEPTH}" \ -dpi "${DISPLAY_DPI}" \ +extension "COMPOSITE" \ +extension "DAMAGE" \ @@ -19,4 +28,5 @@ exec s6-setuidgid abc \ -nolisten "tcp" \ -ac \ -noreset \ - -shmem + -shmem \ + ${VFBCOMMAND}