Files
wiki/tasks/flightradar24/ingest/capture/Dockerfile
2026-04-19 15:30:01 +03:00

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"]