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
33 lines
793 B
YAML
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
|