# ------------------- # The build container # ------------------- FROM debian:buster-slim AS build # Update system packages and install build dependencies. RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y \ build-essential \ python3 \ python3-crcmod \ python3-dateutil \ python3-flask \ python3-numpy \ python3-pip \ python3-requests && \ rm -rf /var/lib/apt/lists/* # Copy in radiosonde_auto_rx COPY . /root/radiosonde_auto_rx # Install additional Python packages that aren't available through apt-get. RUN /usr/bin/pip3 --no-cache-dir install -r /root/radiosonde_auto_rx/auto_rx/requirements.txt # Build the binaries. RUN cd /root/radiosonde_auto_rx/auto_rx && \ /bin/sh build.sh # ------------------------- # The application container # ------------------------- FROM debian:buster-slim EXPOSE 5000/tcp # Update system packages and install application dependencies. RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y \ python3 \ python3-crcmod \ python3-dateutil \ python3-flask \ python3-numpy \ python3-requests \ rng-tools \ rtl-sdr \ sox \ tini \ usbutils && \ rm -rf /var/lib/apt/lists/* # Copy any additional Python packages from the build container. COPY --from=build /usr/local/lib/python3.7/dist-packages /usr/local/lib/python3.7/dist-packages # Copy auto_rx from the build container to /opt. COPY --from=build /root/radiosonde_auto_rx/auto_rx /opt/auto_rx # Set the working directory. WORKDIR /opt/auto_rx # Use tini as init. ENTRYPOINT ["/usr/bin/tini", "--"] # Run auto_rx.py. CMD ["/usr/bin/python3", "/opt/auto_rx/auto_rx.py"]