| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | FROM ubuntu:18.04ARG DEVICE# Install packages for apt repoRUN apt-get -qq update && apt-get -qq install --no-install-recommends -y \    apt-transport-https \    ca-certificates \    curl \    wget \    gnupg-agent \    dirmngr \    software-properties-common \    && rm -rf /var/lib/apt/lists/*COPY scripts/install_odroid_repo.sh .RUN if [ "$DEVICE" = "odroid" ]; then \      sh /install_odroid_repo.sh; \    fiRUN apt-get -qq update && apt-get -qq install --no-install-recommends -y \ python3 \  # OpenCV dependencies ffmpeg \ build-essential \ cmake \ unzip \ pkg-config \ libjpeg-dev \ libpng-dev \ libtiff-dev \ libavcodec-dev \ libavformat-dev \ libswscale-dev \ libv4l-dev \ libxvidcore-dev \ libx264-dev \ libgtk-3-dev \ libatlas-base-dev \ gfortran \ python3-dev \ # Coral USB Python API Dependencies libusb-1.0-0 \ python3-pip \ python3-pil \ python3-numpy \ libc++1 \ libc++abi1 \ libunwind8 \ libgcc1 \ && rm -rf /var/lib/apt/lists/* # Install core packages RUN wget -q -O /tmp/get-pip.py --no-check-certificate https://bootstrap.pypa.io/get-pip.py && python3 /tmp/get-pip.pyRUN  pip install -U pip \ numpy \ Flask \ paho-mqtt \ PyYAML# Download & build OpenCV# TODO: use multistage build to reduce image size: #   https://medium.com/@denismakogon/pain-and-gain-running-opencv-application-with-golang-and-docker-on-alpine-3-7-435aa11c7aec#   https://www.merixstudio.com/blog/docker-multi-stage-builds-python-development/RUN wget -q -P /usr/local/src/ --no-check-certificate https://github.com/opencv/opencv/archive/4.0.1.zipRUN cd /usr/local/src/ \ && unzip 4.0.1.zip \ && rm 4.0.1.zip \ && cd /usr/local/src/opencv-4.0.1/ \ && mkdir build \ && cd /usr/local/src/opencv-4.0.1/build \  && cmake -D CMAKE_INSTALL_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/ .. \ && make -j4 \ && make install \ && ldconfig \ && rm -rf /usr/local/src/opencv-4.0.1# Download and install EdgeTPU libraries for CoralRUN wget https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz -O edgetpu_api.tar.gz --trust-server-names \  && tar xzf edgetpu_api.tar.gzCOPY scripts/install_edgetpu_api.sh edgetpu_api/install.shRUN cd edgetpu_api \  && /bin/bash install.sh# Copy a python 3.6 versionRUN cd /usr/local/lib/python3.6/dist-packages/edgetpu/swig/ \  && ln -s _edgetpu_cpp_wrapper.cpython-35m-arm-linux-gnueabihf.so _edgetpu_cpp_wrapper.cpython-36m-arm-linux-gnueabihf.so# symlink the model and labelsRUN wget https://dl.google.com/coral/canned_models/mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite -O mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite --trust-server-namesRUN wget https://dl.google.com/coral/canned_models/coco_labels.txt -O coco_labels.txt --trust-server-namesRUN ln -s mobilenet_ssd_v2_coco_quant_postprocess_edgetpu.tflite /frozen_inference_graph.pbRUN ln -s /coco_labels.txt /label_map.pbtext# Minimize image size RUN (apt-get autoremove -y; \     apt-get autoclean -y)WORKDIR /opt/frigate/ADD frigate frigate/COPY detect_objects.py .COPY benchmark.py .CMD ["python3", "-u", "detect_objects.py"]
 |