version: '2' volumes: pulseaudio_unix_socket: # shared volume where pulseaudio unix socket will be stored. services: pulseaudio-server: # based on https://github.com/woahbase/alpine-pulseaudio build: ./pulseaudio-server # restart: always network_mode: host # privileged: true labels: io.balena.features.dbus: '1' io.balena.features.kernel-modules: '1' devices: - "/dev/snd:/dev/snd/" - "/dev/bus/usb:/dev/bus/usb" cap_add: - NET_ADMIN ports: - "4713:4713" volumes: - 'pulseaudio_unix_socket:/pulseaudio' # folder where pulseAudio unix socket is created. environment: - UDEV=1 - PGID=1000 - PUID=1000 - DBUS_SYSTEM_BUS_ADDRESS=unix:path=/host/run/dbus/system_bus_socket pulseaudio-client-tcp: build: ./pulseaudio-client-test network_mode: host environment: - PULSE_SERVER=tcp:localhost:4713 depends_on: - pulseaudio-server pulseaudio-client-unix: build: ./pulseaudio-client-test network_mode: host privileged: true environment: - PULSE_SERVER=unix:/pulseaudio/unix_socket depends_on: - pulseaudio-server ports: - "139:139" - "445:445" volumes: - 'pulseaudio_unix_socket:/pulseaudio' # folder where pulseAudio unix socket is stored.