audio-bridge: switch /run/dbus + /run/user/0 from bind-mount to tmpfs

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.
This commit is contained in:
2026-07-01 07:22:42 -07:00
parent 3e730942ba
commit 134fd4a0ed
+6 -3
View File
@@ -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