53 lines
2.2 KiB
Docker
53 lines
2.2 KiB
Docker
FROM python:3.11-slim
|
|
|
|
# ── system deps ───────────────────────────────────────────────────────────────
|
|
# libusb-1.0 + udev needed for RTL-SDR USB access
|
|
# dump1090-fa from FlightAware PPA (Debian/Ubuntu compatible)
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libpq-dev gcc python3-dev \
|
|
libusb-1.0-0 udev \
|
|
wget gnupg ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# ── rtl-sdr-blog driver (RTL-SDR Blog V4 / R828D tuner) ──────────────────────
|
|
# The standard rtl-sdr package does NOT support V4. We install the rtl-sdr-blog
|
|
# fork which adds R828D support and bias-T control.
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential cmake pkg-config \
|
|
libusb-1.0-0-dev \
|
|
git \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN git clone https://github.com/rtlsdrblog/rtl-sdr-blog.git /tmp/rtl-sdr-blog \
|
|
&& cmake -S /tmp/rtl-sdr-blog -B /tmp/rtl-sdr-blog/build \
|
|
-DINSTALL_UDEV_RULES=ON \
|
|
-DDETACH_KERNEL_DRIVER=ON \
|
|
&& cmake --build /tmp/rtl-sdr-blog/build --parallel $(nproc) \
|
|
&& cmake --install /tmp/rtl-sdr-blog/build \
|
|
&& ldconfig \
|
|
&& rm -rf /tmp/rtl-sdr-blog
|
|
|
|
# ── dump1090-fa (FlightAware fork — best SBS-1 output support) ───────────────
|
|
# Build from source: works on any Debian/Ubuntu without PPA
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libncurses-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN git clone --depth 1 https://github.com/flightaware/dump1090.git /tmp/dump1090 \
|
|
&& make -C /tmp/dump1090 -j$(nproc) \
|
|
&& cp /tmp/dump1090/dump1090 /usr/local/bin/dump1090-fa \
|
|
&& rm -rf /tmp/dump1090
|
|
|
|
# ── python app ────────────────────────────────────────────────────────────────
|
|
WORKDIR /app
|
|
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
COPY main.py .
|
|
|
|
# dump1090 JSON output dir
|
|
RUN mkdir -p /tmp/dump1090-json
|
|
|
|
CMD ["python", "-u", "main.py"]
|