From 134fd4a0ed0bf834fe0c037b7ce12592a3b3e0ae Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Wed, 1 Jul 2026 07:22:42 -0700 Subject: [PATCH] audio-bridge: switch /run/dbus + /run/user/0 from bind-mount to tmpfs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The host's /run/dbus/system_bus_socket is the standard dbus socket for systemd. Bind-mounting the container's socket onto /run/dbus overwrites the host's socket, breaking dockerd's ability to manage cgroups via systemd (manifests as 'org.freedesktop.systemd1 was not provided by any .service files' on subsequent docker run). Use tmpfs instead — ephemeral container-local sockets that don't conflict with host services. --- infra/compose.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/infra/compose.yaml b/infra/compose.yaml index 0639753..a9bb27d 100644 --- a/infra/compose.yaml +++ b/infra/compose.yaml @@ -82,6 +82,9 @@ services: # Routes audio from librespot / mopidy / phone-Bluetooth to USB DAC (Q5K) # via ALSA. Falls back to RPi 3.5mm / HDMI if no USB DAC. # PEQ is applied on the DAC side (Q5K's Qudelix app, 20 bands), not here. + # NOTE: /run/dbus + /run/user/0 use tmpfs (NOT host bind-mount) — the host's + # dbus socket is /run/dbus/system_bus_socket and bind-mounting our container's + # socket overwrites it, breaking dockerd's ability to talk to systemd. audio-bridge: build: ./audio-bridge container_name: audio-bridge @@ -90,9 +93,9 @@ services: network_mode: host devices: - /dev/snd:/dev/snd - volumes: - - /run/dbus:/run/dbus # system DBus (bluetoothd, wireplumber) - - /run/user/0:/run/user/0 # PipeWire runtime dir + tmpfs: + - /run/dbus:size=1M + - /run/user/0:size=1M cap_add: - SYS_ADMIN # bluetoothd needs CAP_SYS_ADMIN for HCI - NET_ADMIN