# Audio bridge: PipeWire + PulseAudio bridge + BlueZ # Routes audio from librespot / mopidy / phone-Bluetooth to USB DAC (Qudelix 5K) # Cross-built for linux/arm64 on x86_64 build host via buildx + qemu. FROM alpine:3.20 # PipeWire = audio router, handles ALSA sink + bluetooth A2DP sink + PA bridge. # wireplumber = PipeWire session manager (loads bluetooth modules on demand). # bluez = Bluetooth stack (needed for "bluetooth target" — phone → Pi audio). RUN apk add --no-cache \ pipewire \ pipewire-pulse \ wireplumber \ bluez \ alsa-utils \ alsa-plugins-pulse \ dbus \ tini COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh COPY pipewire-pulse.conf /etc/pipewire/pipewire-pulse.conf # D-Bus socket dir for bluetoothd / wireplumber / pipewire VOLUME ["/run/dbus", "/run/user/0"] ENTRYPOINT ["/sbin/tini", "--", "/entrypoint.sh"]