From ad9cbb9bcaceb0859c57dd66a6f75ccb6343c120 Mon Sep 17 00:00:00 2001 From: "Josh.5" Date: Thu, 13 Jan 2022 00:12:20 +1300 Subject: [PATCH] Add ability to disable audio socket for webUI --- Dockerfile | 8 +++- overlay/etc/cont-init.d/50-configure_audio.sh | 40 ++++++++++++------- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 292a4a9..4dbcd71 100644 --- a/Dockerfile +++ b/Dockerfile @@ -363,8 +363,12 @@ ENV \ DISPLAY_VIDEO_PORT="DFP" \ DISPLAY=":55" \ NVIDIA_DRIVER_CAPABILITIES="all" \ - NVIDIA_VISIBLE_DEVICES="all" \ - MODE="primary" + NVIDIA_VISIBLE_DEVICES="all" + +# Set container configuration environment variables +ENV \ + MODE="primary" \ + ENABLE_VNC_AUDIO="true" # Be sure that the noVNC port is exposed EXPOSE 8083 diff --git a/overlay/etc/cont-init.d/50-configure_audio.sh b/overlay/etc/cont-init.d/50-configure_audio.sh index c67ae0c..9fc6679 100644 --- a/overlay/etc/cont-init.d/50-configure_audio.sh +++ b/overlay/etc/cont-init.d/50-configure_audio.sh @@ -1,20 +1,30 @@ -echo "**** Configure pulseaudio socket ****" -sed -i 's|^; default-server.*$|default-server = unix:/tmp/pulseaudio.socket|' /etc/pulse/client.conf -sed -i 's|^load-module module-native-protocol-unix.*$|load-module module-native-protocol-unix socket=/tmp/pulseaudio.socket auth-anonymous=1|' \ - /etc/pulse/default.pa -chown -R ${USER} /etc/pulse +echo "**** Configure pulseaudio ****" +if [[ "${ENABLE_VNC_AUDIO}" == "true" ]]; then + echo "Configure pulseaudio to use a socket to pipe audio to VNC" + sed -i 's|^; default-server.*$|default-server = unix:/tmp/pulseaudio.socket|' /etc/pulse/client.conf + sed -i 's|^load-module module-native-protocol-unix.*$|load-module module-native-protocol-unix socket=/tmp/pulseaudio.socket auth-anonymous=1|' \ + /etc/pulse/default.pa + chown -R ${USER} /etc/pulse + + # Credits for this audio patch: + # - https://github.com/novnc/noVNC/issues/302 + # - https://github.com/vexingcodes/dwarf-fortress-docker + # - https://github.com/calebj/noVNC + if [ -f /opt/noVNC/audio.patch ]; then + echo "Patching noVNC with audio websocket" + pushd /opt/noVNC/ &> /dev/null + patch -p1 --input=/opt/noVNC/audio.patch --batch --quiet + popd &> /dev/null + rm /opt/noVNC/audio.patch + fi + # Enable supervisord script + sed -i 's|^autostart.*=.*$|autostart=true|' /etc/supervisor/conf.d/audio.conf +else + echo "Disable pulseaudio" + # Disable supervisord script + sed -i 's|^autostart.*=.*$|autostart=false|' /etc/supervisor/conf.d/audio.conf -# Credits for this audio patch: -# - https://github.com/novnc/noVNC/issues/302 -# - https://github.com/vexingcodes/dwarf-fortress-docker -# - https://github.com/calebj/noVNC -if [ -f /opt/noVNC/audio.patch ]; then - echo "**** Patching noVNC with audio websocket ****" - pushd /opt/noVNC/ &> /dev/null - patch -p1 --input=/opt/noVNC/audio.patch --batch --quiet - popd &> /dev/null - rm /opt/noVNC/audio.patch fi echo "DONE"