diff --git a/install/docker/docker-compose.yml b/install/docker/docker-compose.yml index 3fec965b3..4692c8c91 100644 --- a/install/docker/docker-compose.yml +++ b/install/docker/docker-compose.yml @@ -37,6 +37,11 @@ services: # Uncomment next 3 lines for Nvidia GPU support. # - NVIDIA_VISIBLE_DEVICES=all # - NVIDIA_DRIVER_CAPABILITIES=all + + # Uncomment next line to run avahi-daemon inside the container + # Don't use if dbus and avahi run on the host and are bind-mounted + # (see below under "volumes") + # - SCRYPTED_DOCKER_AVAHI=true # runtime: nvidia volumes: @@ -56,6 +61,7 @@ services: # uncomment the following lines to expose Avahi, an mDNS advertiser. # make sure Avahi is running on the host machine, otherwise this will not work. + # not compatible with Avahi enabled via SCRYPTED_DOCKER_AVAHI=true # - /var/run/dbus:/var/run/dbus # - /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket diff --git a/install/docker/fs/etc/s6-overlay/s6-rc.d/avahi/run b/install/docker/fs/etc/s6-overlay/s6-rc.d/avahi/run index d1f9b74ad..8387d0e4a 100755 --- a/install/docker/fs/etc/s6-overlay/s6-rc.d/avahi/run +++ b/install/docker/fs/etc/s6-overlay/s6-rc.d/avahi/run @@ -1,7 +1,7 @@ #!/bin/bash -if [ -z "$SCRYPTED_DOCKER_AVAHI" ] -then +if [[ "${SCRYPTED_DOCKER_AVAHI}" != "true" ]]; then + echo "SCRYPTED_DOCKER_AVAHI != true, not starting avahi-daemon" >/dev/stderr while true do sleep 1000 @@ -13,4 +13,4 @@ until [ -e /var/run/dbus/system_bus_socket ]; do sleep 1s done echo "Starting Avahi daemon..." -exec avahi-daemon --no-chroot -f /etc/avahi/avahi-daemon.conf \ No newline at end of file +exec avahi-daemon --no-chroot -f /etc/avahi/avahi-daemon.conf diff --git a/install/docker/fs/etc/s6-overlay/s6-rc.d/dbus/run b/install/docker/fs/etc/s6-overlay/s6-rc.d/dbus/run index e7b8c06d4..5788ae19d 100755 --- a/install/docker/fs/etc/s6-overlay/s6-rc.d/dbus/run +++ b/install/docker/fs/etc/s6-overlay/s6-rc.d/dbus/run @@ -1,4 +1,12 @@ #!/bin/bash +if [[ "${SCRYPTED_DOCKER_AVAHI}" != "true" ]]; then + echo "SCRYPTED_DOCKER_AVAHI != true, not starting dbus-daemon" >/dev/stderr + while true + do + sleep 1000 + done +fi + echo "Starting dbus..." -exec dbus-daemon --system --nofork \ No newline at end of file +exec dbus-daemon --system --nofork diff --git a/install/docker/fs/etc/s6-overlay/scripts/setup.sh b/install/docker/fs/etc/s6-overlay/scripts/setup.sh index c59db14a7..e3e28f1ac 100755 --- a/install/docker/fs/etc/s6-overlay/scripts/setup.sh +++ b/install/docker/fs/etc/s6-overlay/scripts/setup.sh @@ -1,5 +1,15 @@ #!/bin/bash +if [[ "${SCRYPTED_DOCKER_AVAHI}" != "true" ]]; then + echo "SCRYPTED_DOCKER_AVAHI != true, won't manage dbus nor avahi-daemon" >/dev/stderr + exit 0 +fi + +if grep -qE " ((/var)?/run/dbus|(/var)?/run/avahi-daemon(/socket)?) " /proc/mounts; then + echo "dbus and/or avahi-daemon volumes are bind mounted, won't touch them" >/dev/stderr + exit 0 +fi + # make run folders mkdir -p /var/run/dbus mkdir -p /var/run/avahi-daemon @@ -22,4 +32,4 @@ if [ ! -z "$DSM_HOSTNAME" ]; then sed -i "s/.*host-name.*/host-name=${DSM_HOSTNAME}/" /etc/avahi/avahi-daemon.conf else sed -i "s/.*host-name.*/#host-name=/" /etc/avahi/avahi-daemon.conf -fi \ No newline at end of file +fi