# istrain airband — rtl_airband v5.2.0 (pinned = the VM's proven version) on the rtl-sdr-blog # librtlsdr fork (required: dongle 1002 is an RTL-SDR Blog V4 — stock librtlsdr can't tune it). # DETACH_KERNEL_DRIVER=ON so the library kicks dvb_usb_rtl28xxu off the dongle itself — second # line of defense behind the host-side module blacklist (the "Allocating zero-copy" hang class). FROM debian:bookworm-slim AS build RUN apt-get update && apt-get install -y --no-install-recommends \ git ca-certificates build-essential cmake pkg-config \ libusb-1.0-0-dev libconfig++-dev libmp3lame-dev libshout3-dev zlib1g-dev libfftw3-dev \ && rm -rf /var/lib/apt/lists/* RUN git clone --depth 1 https://github.com/rtlsdrblog/rtl-sdr-blog /src/rtl-sdr-blog \ && cmake -S /src/rtl-sdr-blog -B /src/rtl-sdr-blog/build \ -DDETACH_KERNEL_DRIVER=ON -DINSTALL_UDEV_RULES=OFF \ && make -C /src/rtl-sdr-blog/build -j"$(nproc)" install && ldconfig RUN git clone --depth 1 --branch v5.2.0 https://github.com/rtl-airband/RTLSDR-Airband /src/airband \ && cd /src/airband \ && cmake -B build -DNFM=TRUE -DRTLSDR=TRUE \ && make -C build -j"$(nproc)" && make -C build install FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends \ libusb-1.0-0 libconfig++9v5 libmp3lame0 libshout3 libfftw3-single3 tini \ && rm -rf /var/lib/apt/lists/* COPY --from=build /usr/local /usr/local RUN ldconfig # -F foreground (systemd/docker style), -e errors to stderr; conf bind-mounted by compose. ENTRYPOINT ["tini", "--", "rtl_airband", "-F", "-e", "-c", "/etc/rtl_airband/istrain.conf"]