From 0e434e7cb5077991e4953e5c877cb1e953d92587 Mon Sep 17 00:00:00 2001 From: Nick Mowen Date: Fri, 14 Jul 2023 14:54:56 -0600 Subject: [PATCH] Cleanup docker build file system --- .github/workflows/ci.yml | 7 +- Makefile | 19 ++--- docker/build/rpi/Dockerfile | 14 ---- docker/{build => }/main/Dockerfile | 80 ++----------------- docker/{ => main}/build_nginx.sh | 0 docker/{ => main}/fake_frigate_run | 0 docker/{build => }/main/install_deps.sh | 0 docker/{ => main}/install_s6_overlay.sh | 0 .../s6-rc.d/frigate-log/consumer-for | 0 .../frigate-log/dependencies.d/log-prepare | 0 .../s6-rc.d/frigate-log/pipeline-name | 0 .../etc/s6-overlay/s6-rc.d/frigate-log/run | 0 .../etc/s6-overlay/s6-rc.d/frigate-log/type | 0 .../s6-rc.d/frigate/dependencies.d/go2rtc | 0 .../etc/s6-overlay/s6-rc.d/frigate/finish | 0 .../s6-overlay/s6-rc.d/frigate/producer-for | 0 .../rootfs/etc/s6-overlay/s6-rc.d/frigate/run | 0 .../s6-overlay/s6-rc.d/frigate/timeout-kill | 0 .../etc/s6-overlay/s6-rc.d/frigate/type | 0 .../go2rtc-healthcheck/dependencies.d/go2rtc | 0 .../s6-rc.d/go2rtc-healthcheck/finish | 0 .../s6-rc.d/go2rtc-healthcheck/producer-for | 0 .../s6-overlay/s6-rc.d/go2rtc-healthcheck/run | 0 .../s6-rc.d/go2rtc-healthcheck/timeout-kill | 0 .../s6-rc.d/go2rtc-healthcheck/type | 0 .../s6-rc.d/go2rtc-log/consumer-for | 0 .../go2rtc-log/dependencies.d/log-prepare | 0 .../s6-rc.d/go2rtc-log/pipeline-name | 0 .../etc/s6-overlay/s6-rc.d/go2rtc-log/run | 0 .../etc/s6-overlay/s6-rc.d/go2rtc-log/type | 0 .../s6-rc.d/go2rtc/dependencies.d/base | 0 .../etc/s6-overlay/s6-rc.d/go2rtc/finish | 0 .../s6-overlay/s6-rc.d/go2rtc/producer-for | 0 .../rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run | 0 .../s6-overlay/s6-rc.d/go2rtc/timeout-kill | 0 .../rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type | 0 .../s6-rc.d/log-prepare/dependencies.d/base | 0 .../etc/s6-overlay/s6-rc.d/log-prepare/run | 0 .../etc/s6-overlay/s6-rc.d/log-prepare/type | 0 .../etc/s6-overlay/s6-rc.d/log-prepare/up | 0 .../s6-overlay/s6-rc.d/nginx-log/consumer-for | 0 .../nginx-log/dependencies.d/log-prepare | 0 .../s6-rc.d/nginx-log/pipeline-name | 0 .../etc/s6-overlay/s6-rc.d/nginx-log/run | 0 .../etc/s6-overlay/s6-rc.d/nginx-log/type | 0 .../s6-rc.d/nginx/dependencies.d/frigate | 0 .../etc/s6-overlay/s6-rc.d/nginx/finish | 0 .../etc/s6-overlay/s6-rc.d/nginx/producer-for | 0 .../rootfs/etc/s6-overlay/s6-rc.d/nginx/run | 0 .../etc/s6-overlay/s6-rc.d/nginx/timeout-kill | 0 .../rootfs/etc/s6-overlay/s6-rc.d/nginx/type | 0 .../s6-rc.d/user/contents.d/frigate-pipeline | 0 .../s6-rc.d/user/contents.d/go2rtc-pipeline | 0 .../s6-rc.d/user/contents.d/nginx-pipeline | 0 .../rootfs/usr/local/go2rtc/create_config.py | 0 .../rootfs/usr/local/nginx/conf/nginx.conf | 0 docker/rpi/Dockerfile | 17 ++++ docker/{build => }/rpi/install_deps.sh | 13 --- docker/rpi/rpi.mk | 10 +++ docker/tensorrt/Dockerfile | 47 +++++++++++ .../etc/ld.so.conf.d/cuda_tensorrt.conf | 0 .../frigate/dependencies.d/trt-model-prepare | 0 .../trt-model-prepare/dependencies.d/base | 0 .../s6-overlay/s6-rc.d/trt-model-prepare/run | 0 .../s6-overlay/s6-rc.d/trt-model-prepare/type | 0 .../s6-overlay/s6-rc.d/trt-model-prepare/up | 0 .../detector}/tensorrt_libyolo.sh | 0 docker/tensorrt/trt.mk | 10 +++ 68 files changed, 99 insertions(+), 118 deletions(-) delete mode 100644 docker/build/rpi/Dockerfile rename docker/{build => }/main/Dockerfile (71%) rename docker/{ => main}/build_nginx.sh (100%) rename docker/{ => main}/fake_frigate_run (100%) rename docker/{build => }/main/install_deps.sh (100%) rename docker/{ => main}/install_s6_overlay.sh (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/consumer-for (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/dependencies.d/log-prepare (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/pipeline-name (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/run (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/type (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/go2rtc (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate/finish (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate/producer-for (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate/run (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate/timeout-kill (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/frigate/type (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/dependencies.d/go2rtc (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/finish (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/producer-for (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/run (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/timeout-kill (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/type (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/consumer-for (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/dependencies.d/log-prepare (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/pipeline-name (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/run (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/type (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/dependencies.d/base (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/finish (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/producer-for (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/timeout-kill (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/dependencies.d/base (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/run (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/type (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/up (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/consumer-for (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/dependencies.d/log-prepare (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/pipeline-name (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/run (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/type (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/frigate (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx/producer-for (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx/run (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx/timeout-kill (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/nginx/type (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/frigate-pipeline (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/go2rtc-pipeline (100%) rename docker/{ => main}/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx-pipeline (100%) rename docker/{ => main}/rootfs/usr/local/go2rtc/create_config.py (100%) rename docker/{ => main}/rootfs/usr/local/nginx/conf/nginx.conf (100%) create mode 100644 docker/rpi/Dockerfile rename docker/{build => }/rpi/install_deps.sh (73%) create mode 100644 docker/rpi/rpi.mk create mode 100644 docker/tensorrt/Dockerfile rename docker/{support/tensorrt_detector => tensorrt/detector}/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf (100%) rename docker/{support/tensorrt_detector => tensorrt/detector}/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/trt-model-prepare (100%) rename docker/{support/tensorrt_detector => tensorrt/detector}/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/dependencies.d/base (100%) rename docker/{support/tensorrt_detector => tensorrt/detector}/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/run (100%) rename docker/{support/tensorrt_detector => tensorrt/detector}/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/type (100%) rename docker/{support/tensorrt_detector => tensorrt/detector}/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/up (100%) rename docker/{support/tensorrt_detector => tensorrt/detector}/tensorrt_libyolo.sh (100%) create mode 100644 docker/tensorrt/trt.mk diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 279752851..70db83265 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,7 @@ on: branches: - dev - master + - community-boards # only run the latest commit to avoid cache overwrites concurrency: @@ -44,8 +45,6 @@ jobs: run: make version - name: Create short sha run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV - - name: Create base image path - run: echo "BASE_IMAGE=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}" >> $GITHUB_ENV - name: Build and push main build uses: docker/build-push-action@v4 with: @@ -65,8 +64,6 @@ jobs: file: docker/build/rpi/Dockerfile push: true platforms: linux/arm64 - build-args: | - BASE_IMAGE=${{ env.BASE_IMAGE }} tags: | ${{ env.BASE_IMAGE }}-rpi cache-from: type=gha @@ -74,7 +71,7 @@ jobs: uses: docker/build-push-action@v4 with: context: . - file: docker/build/main/Dockerfile + file: docker/build/trt/Dockerfile push: true platforms: linux/amd64 target: frigate-tensorrt diff --git a/Makefile b/Makefile index ae3f357d0..85d4bb961 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,13 @@ IMAGE_REPO ?= ghcr.io/blakeblackshear/frigate GITHUB_REF_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) CURRENT_UID := $(shell id -u) CURRENT_GID := $(shell id -g) +BOARDS= #Initialized empty + +include docker/*/*.mk + +build-boards: $(BOARDS:%=build-%) + +push-boards: $(BOARDS:%=push-%) version: echo 'VERSION = "$(VERSION)-$(COMMIT_HASH)"' > frigate/version.py @@ -13,27 +20,17 @@ version: local: version docker buildx build --target=frigate --tag frigate:latest --load --file docker/build/main/Dockerfile . -local-rpi: version local - docker buildx build --tag frigate:latest-rpi --build-arg BASE_IMAGE=frigate:latest --load --file docker/build/rpi/Dockerfile . - -local-trt: version - docker buildx build --target=frigate-tensorrt --tag frigate:latest-tensorrt --load --file docker/build/main/Dockerfile . - amd64: docker buildx build --platform linux/amd64 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) --file docker/build/main/Dockerfile . - docker buildx build --platform linux/amd64 --target=frigate-tensorrt --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH)-tensorrt --file docker/build/main/Dockerfile . arm64: docker buildx build --platform linux/arm64 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) --file docker/build/main/Dockerfile . - docker buildx build --platform linux/arm64 --build-arg BASE_IMAGE=$(IMAGE_REPO):${VERSION}-$(COMMIT_HASH) --tag $(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-rpi --file docker/build/rpi/Dockerfile . build: version amd64 arm64 docker buildx build --platform linux/arm64/v8,linux/amd64 --target=frigate --tag $(IMAGE_REPO):$(VERSION)-$(COMMIT_HASH) --file docker/build/main/Dockerfile . -push: build +push: push-boards docker buildx build --push --platform linux/arm64/v8,linux/amd64 --target=frigate --tag $(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH) --file docker/build/main/Dockerfile . - docker buildx build --push --platform linux/amd64 --target=frigate-tensorrt --tag $(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-tensorrt --file docker/build/main/Dockerfile . - docker buildx build --push --platform linux/arm64 --build-arg BASE_IMAGE=$(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH) --tag $(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-rpi --file docker/build/rpi/Dockerfile . run: local docker run --rm --publish=5000:5000 --volume=${PWD}/config:/config frigate:latest diff --git a/docker/build/rpi/Dockerfile b/docker/build/rpi/Dockerfile deleted file mode 100644 index a3bae5e39..000000000 --- a/docker/build/rpi/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -# syntax=docker/dockerfile:1.2 - -# https://askubuntu.com/questions/972516/debian-frontend-environment-variable -ARG DEBIAN_FRONTEND=noninteractive -ARG BASE_IMAGE - -FROM ${BASE_IMAGE} as base -ARG TARGETARCH - -RUN rm -rf /usr/lib/btbn-ffmpeg/ - -# Install dependencies -RUN --mount=type=bind,source=docker/build/rpi/install_deps.sh,target=/deps/install_deps.sh \ - /deps/install_deps.sh diff --git a/docker/build/main/Dockerfile b/docker/main/Dockerfile similarity index 71% rename from docker/build/main/Dockerfile rename to docker/main/Dockerfile index f5ed32139..07278cd1f 100644 --- a/docker/build/main/Dockerfile +++ b/docker/main/Dockerfile @@ -1,5 +1,3 @@ -# syntax=docker/dockerfile:1.2 - # https://askubuntu.com/questions/972516/debian-frontend-environment-variable ARG DEBIAN_FRONTEND=noninteractive @@ -23,7 +21,7 @@ ENV CCACHE_MAXSIZE 2G # bind /var/cache/apt to tmpfs to speed up nginx build RUN --mount=type=tmpfs,target=/tmp --mount=type=tmpfs,target=/var/cache/apt \ - --mount=type=bind,source=docker/build_nginx.sh,target=/deps/build_nginx.sh \ + --mount=type=bind,source=docker/main/build_nginx.sh,target=/deps/build_nginx.sh \ --mount=type=cache,target=/root/.ccache \ /deps/build_nginx.sh @@ -34,32 +32,6 @@ RUN wget -qO go2rtc "https://github.com/AlexxIT/go2rtc/releases/download/v1.6.0/ && chmod +x go2rtc -#### -# -# OpenVino Support -# -# 1. Download and convert a model from Intel's Public Open Model Zoo -# 2. Build libUSB without udev to handle NCS2 enumeration -# -#### -# Download and Convert OpenVino model -FROM base_amd64 AS ov-converter -ARG DEBIAN_FRONTEND - -# Install OpenVino Runtime and Dev library -COPY requirements-ov.txt /requirements-ov.txt -RUN apt-get -qq update \ - && apt-get -qq install -y wget python3 python3-distutils \ - && wget -q https://bootstrap.pypa.io/get-pip.py -O get-pip.py \ - && python3 get-pip.py "pip" \ - && pip install -r /requirements-ov.txt - -# Get OpenVino Model -RUN mkdir /models \ - && cd /models && omz_downloader --name ssdlite_mobilenet_v2 \ - && cd /models && omz_converter --name ssdlite_mobilenet_v2 --precision FP16 - - # libUSB - No Udev FROM wget as libusb-build ARG TARGETARCH @@ -101,7 +73,7 @@ COPY audio-labelmap.txt . FROM wget AS s6-overlay ARG TARGETARCH -RUN --mount=type=bind,source=docker/install_s6_overlay.sh,target=/deps/install_s6_overlay.sh \ +RUN --mount=type=bind,source=docker/main/install_s6_overlay.sh,target=/deps/install_s6_overlay.sh \ /deps/install_s6_overlay.sh @@ -142,15 +114,6 @@ RUN pip3 install -r requirements.txt COPY requirements-wheels.txt /requirements-wheels.txt RUN pip3 wheel --wheel-dir=/wheels -r requirements-wheels.txt -# Make this a separate target so it can be built/cached optionally -FROM wheels as trt-wheels -ARG DEBIAN_FRONTEND -ARG TARGETARCH - -# Add TensorRT wheels to another folder -COPY requirements-tensorrt.txt /requirements-tensorrt.txt -RUN mkdir -p /trt-wheels && pip3 wheel --wheel-dir=/trt-wheels -r requirements-tensorrt.txt - # Collect deps in a single layer FROM scratch AS deps-rootfs @@ -159,7 +122,7 @@ COPY --from=go2rtc /rootfs/ / COPY --from=libusb-build /usr/local/lib /usr/local/lib COPY --from=s6-overlay /rootfs/ / COPY --from=models /rootfs/ / -COPY docker/rootfs/ / +COPY docker/main/rootfs/ / # Frigate deps (ffmpeg, python, nginx, go2rtc, s6-overlay, etc) @@ -177,7 +140,7 @@ ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" ENV PATH="/usr/lib/btbn-ffmpeg/bin:/usr/local/go2rtc/bin:/usr/local/nginx/sbin:${PATH}" # Install dependencies -RUN --mount=type=bind,source=docker/build/main/install_deps.sh,target=/deps/install_deps.sh \ +RUN --mount=type=bind,source=docker/main/install_deps.sh,target=/deps/install_deps.sh \ /deps/install_deps.sh RUN --mount=type=bind,from=wheels,source=/wheels,target=/deps/wheels \ @@ -203,7 +166,7 @@ FROM deps AS devcontainer # Do not start the actual Frigate service on devcontainer as it will be started by VSCode # But start a fake service for simulating the logs -COPY docker/fake_frigate_run /etc/s6-overlay/s6-rc.d/frigate/run +COPY docker/main/fake_frigate_run /etc/s6-overlay/s6-rc.d/frigate/run # Create symbolic link to the frigate source code, as go2rtc's create_config.sh uses it RUN mkdir -p /opt/frigate \ @@ -255,36 +218,3 @@ FROM deps AS frigate WORKDIR /opt/frigate/ COPY --from=rootfs / / - -# Build TensorRT-specific library -FROM nvcr.io/nvidia/tensorrt:23.03-py3 AS trt-deps - -RUN --mount=type=bind,source=docker/support/tensorrt_detector/tensorrt_libyolo.sh,target=/tensorrt_libyolo.sh \ - /tensorrt_libyolo.sh - -# Frigate w/ TensorRT Support as separate image -FROM frigate AS frigate-tensorrt - -#Disable S6 Global timeout -ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 - -ENV TRT_VER=8.5.3 -ENV YOLO_MODELS="yolov7-tiny-416" - -COPY --from=trt-deps /usr/local/lib/libyolo_layer.so /usr/local/lib/libyolo_layer.so -COPY --from=trt-deps /usr/local/src/tensorrt_demos /usr/local/src/tensorrt_demos -COPY docker/support/tensorrt_detector/rootfs/ / - -RUN --mount=type=bind,from=trt-wheels,source=/trt-wheels,target=/deps/trt-wheels \ - pip3 install -U /deps/trt-wheels/*.whl && \ - ldconfig - -# Dev Container w/ TRT -FROM devcontainer AS devcontainer-trt - -COPY --from=trt-deps /usr/local/lib/libyolo_layer.so /usr/local/lib/libyolo_layer.so -COPY --from=trt-deps /usr/local/src/tensorrt_demos /usr/local/src/tensorrt_demos -COPY docker/support/tensorrt_detector/rootfs/ / -COPY --from=trt-deps /usr/local/lib/libyolo_layer.so /usr/local/lib/libyolo_layer.so -RUN --mount=type=bind,from=trt-wheels,source=/trt-wheels,target=/deps/trt-wheels \ - pip3 install -U /deps/trt-wheels/*.whl diff --git a/docker/build_nginx.sh b/docker/main/build_nginx.sh similarity index 100% rename from docker/build_nginx.sh rename to docker/main/build_nginx.sh diff --git a/docker/fake_frigate_run b/docker/main/fake_frigate_run similarity index 100% rename from docker/fake_frigate_run rename to docker/main/fake_frigate_run diff --git a/docker/build/main/install_deps.sh b/docker/main/install_deps.sh similarity index 100% rename from docker/build/main/install_deps.sh rename to docker/main/install_deps.sh diff --git a/docker/install_s6_overlay.sh b/docker/main/install_s6_overlay.sh similarity index 100% rename from docker/install_s6_overlay.sh rename to docker/main/install_s6_overlay.sh diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/consumer-for b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/consumer-for similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/consumer-for rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/consumer-for diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/dependencies.d/log-prepare b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/dependencies.d/log-prepare similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/dependencies.d/log-prepare rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/dependencies.d/log-prepare diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/pipeline-name b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/pipeline-name similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/pipeline-name rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/pipeline-name diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/run b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/run similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/run rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/type b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/type similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/type rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate-log/type diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/go2rtc b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/go2rtc similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/go2rtc rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/go2rtc diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/finish b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/finish similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/finish rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/finish diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/producer-for b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/producer-for similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/producer-for rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/producer-for diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/run b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/run rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/timeout-kill b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/timeout-kill similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/timeout-kill rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/timeout-kill diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/type b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/type similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/type rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/frigate/type diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/dependencies.d/go2rtc b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/dependencies.d/go2rtc similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/dependencies.d/go2rtc rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/dependencies.d/go2rtc diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/finish b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/finish similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/finish rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/finish diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/producer-for b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/producer-for similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/producer-for rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/producer-for diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/run b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/run similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/run rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/timeout-kill b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/timeout-kill similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/timeout-kill rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/timeout-kill diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/type b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/type similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/type rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-healthcheck/type diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/consumer-for b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/consumer-for similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/consumer-for rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/consumer-for diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/dependencies.d/log-prepare b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/dependencies.d/log-prepare similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/dependencies.d/log-prepare rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/dependencies.d/log-prepare diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/pipeline-name b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/pipeline-name similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/pipeline-name rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/pipeline-name diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/run b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/run similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/run rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/type b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/type similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/type rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc-log/type diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/dependencies.d/base b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/dependencies.d/base similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/dependencies.d/base rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/dependencies.d/base diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/finish b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/finish similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/finish rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/finish diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/producer-for b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/producer-for similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/producer-for rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/producer-for diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/timeout-kill b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/timeout-kill similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/timeout-kill rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/timeout-kill diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/dependencies.d/base b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/dependencies.d/base similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/dependencies.d/base rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/dependencies.d/base diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/run b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/run similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/run rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/type b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/type similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/type rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/type diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/up b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/up similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/up rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/log-prepare/up diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/consumer-for b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/consumer-for similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/consumer-for rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/consumer-for diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/dependencies.d/log-prepare b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/dependencies.d/log-prepare similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/dependencies.d/log-prepare rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/dependencies.d/log-prepare diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/pipeline-name b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/pipeline-name similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/pipeline-name rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/pipeline-name diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/run b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/run similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/run rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/type b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/type similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/type rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx-log/type diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/frigate b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/frigate similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/frigate rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/frigate diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/producer-for b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/producer-for similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/producer-for rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/producer-for diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/run b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/run rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/timeout-kill b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/timeout-kill similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/timeout-kill rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/timeout-kill diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/type b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/type similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/type rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/nginx/type diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/frigate-pipeline b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/frigate-pipeline similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/frigate-pipeline rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/frigate-pipeline diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/go2rtc-pipeline b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/go2rtc-pipeline similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/go2rtc-pipeline rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/go2rtc-pipeline diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx-pipeline b/docker/main/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx-pipeline similarity index 100% rename from docker/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx-pipeline rename to docker/main/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx-pipeline diff --git a/docker/rootfs/usr/local/go2rtc/create_config.py b/docker/main/rootfs/usr/local/go2rtc/create_config.py similarity index 100% rename from docker/rootfs/usr/local/go2rtc/create_config.py rename to docker/main/rootfs/usr/local/go2rtc/create_config.py diff --git a/docker/rootfs/usr/local/nginx/conf/nginx.conf b/docker/main/rootfs/usr/local/nginx/conf/nginx.conf similarity index 100% rename from docker/rootfs/usr/local/nginx/conf/nginx.conf rename to docker/main/rootfs/usr/local/nginx/conf/nginx.conf diff --git a/docker/rpi/Dockerfile b/docker/rpi/Dockerfile new file mode 100644 index 000000000..df8e29b8c --- /dev/null +++ b/docker/rpi/Dockerfile @@ -0,0 +1,17 @@ +# syntax = edrevo/dockerfile-plus +INCLUDE+ docker/main/Dockerfile + +# https://askubuntu.com/questions/972516/debian-frontend-environment-variable +ARG DEBIAN_FRONTEND=noninteractive + +FROM deps AS rpi-deps +ARG TARGETARCH + +RUN rm -rf /usr/lib/btbn-ffmpeg/ + +# Install dependencies +RUN --mount=type=bind,source=docker/rpi/install_deps.sh,target=/deps/install_deps.sh \ + /deps/install_deps.sh + +WORKDIR /opt/frigate/ +COPY --from=rootfs / / diff --git a/docker/build/rpi/install_deps.sh b/docker/rpi/install_deps.sh similarity index 73% rename from docker/build/rpi/install_deps.sh rename to docker/rpi/install_deps.sh index 9716623ca..e04864e82 100755 --- a/docker/build/rpi/install_deps.sh +++ b/docker/rpi/install_deps.sh @@ -2,19 +2,6 @@ set -euxo pipefail -apt-get -qq update - -apt-get -qq install --no-install-recommends -y \ - apt-transport-https \ - gnupg \ - wget \ - procps vainfo \ - unzip locales tzdata libxml2 xz-utils \ - python3-pip \ - curl \ - jq \ - nethogs - mkdir -p -m 600 /root/.gnupg # enable non-free repo diff --git a/docker/rpi/rpi.mk b/docker/rpi/rpi.mk new file mode 100644 index 000000000..c137411d3 --- /dev/null +++ b/docker/rpi/rpi.mk @@ -0,0 +1,10 @@ +BOARDS += rpi + +local-rpi: version + docker buildx build --tag frigate:latest-rpi --load --file docker/build/rpi/Dockerfile . + +build-rpi: + docker buildx build --platform linux/arm64 --tag $(IMAGE_REPO):${VERSION}-$(COMMIT_HASH)-rpi --file docker/build/rpi/Dockerfile . + +push-rpi: build-rpi + docker buildx build --push --platform linux/arm64 --tag $(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-rpi --file docker/build/rpi/Dockerfile . \ No newline at end of file diff --git a/docker/tensorrt/Dockerfile b/docker/tensorrt/Dockerfile new file mode 100644 index 000000000..2f35977e1 --- /dev/null +++ b/docker/tensorrt/Dockerfile @@ -0,0 +1,47 @@ +# syntax = edrevo/dockerfile-plus +INCLUDE+ docker/main/Dockerfile + +# https://askubuntu.com/questions/972516/debian-frontend-environment-variable +ARG DEBIAN_FRONTEND=noninteractive + +# Make this a separate target so it can be built/cached optionally +FROM wheels as trt-wheels +ARG DEBIAN_FRONTEND +ARG TARGETARCH + +# Add TensorRT wheels to another folder +COPY requirements-tensorrt.txt /requirements-tensorrt.txt +RUN mkdir -p /trt-wheels && pip3 wheel --wheel-dir=/trt-wheels -r requirements-tensorrt.txt + +# Build TensorRT-specific library +FROM nvcr.io/nvidia/tensorrt:23.03-py3 AS trt-deps + +RUN --mount=type=bind,source=docker/tensorrt/detector/tensorrt_libyolo.sh,target=/tensorrt_libyolo.sh \ + /tensorrt_libyolo.sh + +# Frigate w/ TensorRT Support as separate image +FROM frigate AS frigate-tensorrt + +#Disable S6 Global timeout +ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 + +ENV TRT_VER=8.5.3 +ENV YOLO_MODELS="yolov7-tiny-416" + +COPY --from=trt-deps /usr/local/lib/libyolo_layer.so /usr/local/lib/libyolo_layer.so +COPY --from=trt-deps /usr/local/src/tensorrt_demos /usr/local/src/tensorrt_demos +COPY docker/tensorrt/detector/rootfs/ / + +RUN --mount=type=bind,from=trt-wheels,source=/trt-wheels,target=/deps/trt-wheels \ + pip3 install -U /deps/trt-wheels/*.whl && \ + ldconfig + +# Dev Container w/ TRT +FROM devcontainer AS devcontainer-trt + +COPY --from=trt-deps /usr/local/lib/libyolo_layer.so /usr/local/lib/libyolo_layer.so +COPY --from=trt-deps /usr/local/src/tensorrt_demos /usr/local/src/tensorrt_demos +COPY docker/tensorrt/detector/rootfs/ / +COPY --from=trt-deps /usr/local/lib/libyolo_layer.so /usr/local/lib/libyolo_layer.so +RUN --mount=type=bind,from=trt-wheels,source=/trt-wheels,target=/deps/trt-wheels \ + pip3 install -U /deps/trt-wheels/*.whl diff --git a/docker/support/tensorrt_detector/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf b/docker/tensorrt/detector/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf similarity index 100% rename from docker/support/tensorrt_detector/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf rename to docker/tensorrt/detector/rootfs/etc/ld.so.conf.d/cuda_tensorrt.conf diff --git a/docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/trt-model-prepare b/docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/trt-model-prepare similarity index 100% rename from docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/trt-model-prepare rename to docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/trt-model-prepare diff --git a/docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/dependencies.d/base b/docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/dependencies.d/base similarity index 100% rename from docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/dependencies.d/base rename to docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/dependencies.d/base diff --git a/docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/run b/docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/run similarity index 100% rename from docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/run rename to docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/run diff --git a/docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/type b/docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/type similarity index 100% rename from docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/type rename to docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/type diff --git a/docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/up b/docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/up similarity index 100% rename from docker/support/tensorrt_detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/up rename to docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/up diff --git a/docker/support/tensorrt_detector/tensorrt_libyolo.sh b/docker/tensorrt/detector/tensorrt_libyolo.sh similarity index 100% rename from docker/support/tensorrt_detector/tensorrt_libyolo.sh rename to docker/tensorrt/detector/tensorrt_libyolo.sh diff --git a/docker/tensorrt/trt.mk b/docker/tensorrt/trt.mk new file mode 100644 index 000000000..b57df8095 --- /dev/null +++ b/docker/tensorrt/trt.mk @@ -0,0 +1,10 @@ +BOARDS += trt + +local-trt: version + docker buildx build --tag frigate:latest-tensorrt --load --file docker/build/tensorrt/Dockerfile . + +build-trt: + docker buildx build --platform linux/amd64 --tag $(IMAGE_REPO):${VERSION}-$(COMMIT_HASH)-tensorrt --file docker/build/trt/Dockerfile . + +push-trt: build-trt + docker buildx build --push --platform linux/arm64 --tag $(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-tensorrt --file docker/build/rpi/Dockerfile . \ No newline at end of file