Dockerfile.base 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. ARG ARCH=amd64
  2. ARG WHEELS_VERSION
  3. ARG FFMPEG_VERSION
  4. ARG NGINX_VERSION
  5. FROM blakeblackshear/frigate-wheels:${WHEELS_VERSION}-${ARCH} as wheels
  6. FROM blakeblackshear/frigate-ffmpeg:${FFMPEG_VERSION}-${ARCH} as ffmpeg
  7. FROM blakeblackshear/frigate-nginx:${NGINX_VERSION} as nginx
  8. FROM frigate-web as web
  9. FROM frigate-jsmpeg as jsmpeg
  10. FROM ubuntu:20.04
  11. LABEL maintainer "blakeb@blakeshome.com"
  12. # s6-overlay
  13. ADD https://github.com/just-containers/s6-overlay/releases/download/v2.2.0.1/s6-overlay-amd64-installer /tmp/
  14. RUN chmod +x /tmp/s6-overlay-amd64-installer && /tmp/s6-overlay-amd64-installer /
  15. COPY --from=ffmpeg /usr/local /usr/local/
  16. COPY --from=wheels /wheels/. /wheels/
  17. ENV FLASK_ENV=development
  18. # ENV FONTCONFIG_PATH=/etc/fonts
  19. ENV DEBIAN_FRONTEND=noninteractive
  20. # Install packages for apt repo
  21. RUN apt-get -qq update \
  22. && apt-get upgrade -y \
  23. && apt-get -qq install --no-install-recommends -y gnupg wget unzip tzdata libxml2 \
  24. && apt-get -qq install --no-install-recommends -y python3-pip \
  25. && pip3 install -U /wheels/*.whl \
  26. && APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn apt-key adv --fetch-keys https://packages.cloud.google.com/apt/doc/apt-key.gpg \
  27. && echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" > /etc/apt/sources.list.d/coral-edgetpu.list \
  28. && echo "libedgetpu1-max libedgetpu/accepted-eula select true" | debconf-set-selections \
  29. && apt-get -qq update && apt-get -qq install --no-install-recommends -y libedgetpu1-max=15.0 \
  30. && rm -rf /var/lib/apt/lists/* /wheels \
  31. && (apt-get autoremove -y; apt-get autoclean -y)
  32. RUN pip3 install \
  33. peewee_migrate \
  34. zeroconf \
  35. voluptuous\
  36. Flask-Sockets \
  37. gevent \
  38. gevent-websocket
  39. COPY --from=nginx /usr/local/nginx/ /usr/local/nginx/
  40. # get model and labels
  41. COPY labelmap.txt /labelmap.txt
  42. RUN wget -q https://github.com/google-coral/test_data/raw/master/ssdlite_mobiledet_coco_qat_postprocess_edgetpu.tflite -O /edgetpu_model.tflite
  43. RUN wget -q https://github.com/google-coral/test_data/raw/master/ssdlite_mobiledet_coco_qat_postprocess.tflite -O /cpu_model.tflite
  44. WORKDIR /opt/frigate/
  45. ADD frigate frigate/
  46. ADD migrations migrations/
  47. COPY --from=web /opt/frigate/build web/
  48. COPY --from=jsmpeg /opt/build jsmpeg/
  49. COPY --from=jsmpeg /usr/local/bin/node /usr/local/bin/node
  50. COPY docker/rootfs/ /
  51. EXPOSE 5000
  52. EXPOSE 1935
  53. ENTRYPOINT ["/init"]
  54. CMD ["python3", "-u", "-m", "frigate"]