gr-mcp/docker/docker-compose.fm-receiver.yml
Ryan Malloy 6c642f4a7e docker: add audio passthrough for containerized FM receiver
New files for running the FM receiver in Docker with audio output:

- Dockerfile.gnuradio-audio: GNU Radio image with ALSA→PulseAudio bridge
  - libasound2-plugins for ALSA PulseAudio plugin
  - /etc/asound.conf configures ALSA to route to PulseAudio

- docker-compose.fm-receiver.yml: Full FM receiver setup
  - PulseAudio socket mount for audio
  - USB passthrough for RTL-SDR (requires privileged mode)
  - XML-RPC port 8090 exposed for tuning control
  - Environment vars: FREQ_MHZ, GAIN

- entrypoint-fm.sh: Builds and runs flowgraph at specified frequency
- run-fm-receiver.sh: Helper script with usage instructions

Usage:
  HOST_UID=$(id -u) FREQ_MHZ=107.2 docker compose -f docker/docker-compose.fm-receiver.yml up
2026-01-29 04:12:07 -07:00

33 lines
793 B
YAML

services:
fm-receiver:
build:
context: .
dockerfile: Dockerfile.gnuradio-audio
# Root required for USB device access (RTL-SDR)
user: root
privileged: true
volumes:
# PulseAudio socket for audio output (ALSA → PulseAudio bridge)
- /run/user/${HOST_UID:-1000}/pulse/native:/run/pulse/native
# Flowgraph source files
- ../examples:/flowgraphs:ro
- ../src:/src:ro
# Entrypoint script
- ./entrypoint-fm.sh:/entrypoint-fm.sh:ro
environment:
- PULSE_SERVER=unix:/run/pulse/native
- FREQ_MHZ=${FREQ_MHZ:-101.1}
- GAIN=${GAIN:-10}
# XML-RPC port for tuning control from host
ports:
- "8090:8090"
entrypoint: ["/bin/bash", "/entrypoint-fm.sh"]
stdin_open: true
tty: true