diff --git a/Dockerfile b/Dockerfile index 00e18d3..c633127 100644 --- a/Dockerfile +++ b/Dockerfile @@ -525,6 +525,9 @@ VOLUME /var/lib/docker # Configure default user and set env ENV \ + PUID=99 \ + PGID=100 \ + UMASK=000 \ USER="default" \ USER_PASSWORD="password" \ USER_HOME="/home/default" \ @@ -555,8 +558,14 @@ ENV \ DISPLAY=":55" \ NVIDIA_DRIVER_CAPABILITIES="all" \ NVIDIA_VISIBLE_DEVICES="all" \ + XORG_SOCKET_DIR="/tmp/.X11-unix" \ XDG_RUNTIME_DIR="/tmp/.X11-unix/run" +# Set pulseaudio environment variables +ENV \ + PULSE_SOCKET_DIR="/tmp/pulse" \ + PULSE_SERVER="unix:/tmp/pulse/pulse-socket" + # Set container configuration environment variables ENV \ MODE="primary" \ diff --git a/overlay/etc/cont-init.d/50-configure_pulseaudio.sh b/overlay/etc/cont-init.d/50-configure_pulseaudio.sh index 769d113..c95bfef 100644 --- a/overlay/etc/cont-init.d/50-configure_pulseaudio.sh +++ b/overlay/etc/cont-init.d/50-configure_pulseaudio.sh @@ -9,13 +9,12 @@ if [ "${MODE}" == "s" ] | [ "${MODE}" == "secondary" ]; then sed -i 's|^; flat-volumes.*$|flat-volumes = yes|' /etc/pulse/daemon.conf else echo "Configure pulseaudio to pipe audio to a socket" - mkdir -p /tmp/pulse - chmod -R a+rw /tmp/pulse + mkdir -p ${PULSE_SOCKET_DIR} + chmod -R a+rw ${PULSE_SOCKET_DIR} # Configure the palse audio socket - export PULSE_SERVER=${PULSE_SERVER:-unix:/tmp/pulse/pulse-socket} sed -i "s|^; default-server.*$|default-server = ${PULSE_SERVER}|" /etc/pulse/client.conf - sed -i 's|^load-module module-native-protocol-unix.*$|load-module module-native-protocol-unix socket=/tmp/pulse/pulse-socket auth-anonymous=1|' \ + sed -i 's|^load-module module-native-protocol-unix.*$|load-module module-native-protocol-unix socket=${PULSE_SOCKET_DIR}/pulse-socket auth-anonymous=1|' \ /etc/pulse/default.pa # Disable pulseaudio from respawning (https://unix.stackexchange.com/questions/204522/how-does-pulseaudio-start) diff --git a/overlay/etc/cont-init.d/70-configure_xorg.sh b/overlay/etc/cont-init.d/70-configure_xorg.sh index 769e5cb..d9efe8b 100644 --- a/overlay/etc/cont-init.d/70-configure_xorg.sh +++ b/overlay/etc/cont-init.d/70-configure_xorg.sh @@ -50,10 +50,10 @@ function configure_x_server { rm -f /etc/X11/xorg.conf # Ensure the X socket path exists - mkdir -p /tmp/.X11-unix + mkdir -p ${XORG_SOCKET_DIR} # Clear out old lock files - display_file=/tmp/.X11-unix/X${DISPLAY#:} + display_file=${XORG_SOCKET_DIR}/X${DISPLAY#:} if [ -S ${display_file} ]; then echo "Removing ${display_file} before starting" rm -f /tmp/.X${DISPLAY#:}-lock diff --git a/overlay/etc/supervisor.d/vnc-audio.ini b/overlay/etc/supervisor.d/vnc-audio.ini index 00bb720..0ef1d42 100644 --- a/overlay/etc/supervisor.d/vnc-audio.ini +++ b/overlay/etc/supervisor.d/vnc-audio.ini @@ -4,7 +4,7 @@ priority=30 autostart=false autorestart=true user=%(ENV_USER)s -command=tcpserver 127.0.0.1 %(ENV_PORT_AUDIO_STREAM)s gst-launch-1.0 -q pulsesrc server=/tmp/pulse/pulse-socket ! audio/x-raw, channels=2, rate=24000 ! cutter ! opusenc ! webmmux ! fdsink fd=1 +command=tcpserver 127.0.0.1 %(ENV_PORT_AUDIO_STREAM)s gst-launch-1.0 -q pulsesrc server=%(ENV_PULSE_SOCKET_DIR)s/pulse-socket ! audio/x-raw, channels=2, rate=24000 ! cutter ! opusenc ! webmmux ! fdsink fd=1 stopsignal=INT stdout_logfile=/home/%(ENV_USER)s/.cache/log/audiostream.log stdout_logfile_maxbytes=10MB