# 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"]
