Add wheels target

This commit is contained in:
Nick Mowen 2023-07-17 15:19:13 -06:00
parent f146c91c9f
commit b3ce493a16
5 changed files with 27 additions and 18 deletions

View File

@ -5,7 +5,6 @@ on:
branches:
- dev
- master
- community-boards
# only run the latest commit to avoid cache overwrites
concurrency:
@ -65,7 +64,7 @@ jobs:
files: docker/rpi/rpi.hcl
set: |
rpi.tags=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}-rpi
rpi.cache-from=type=gha
*.cache-from=type=gha
- name: Build and push TensorRT
uses: docker/bake-action@v3
with:
@ -74,4 +73,4 @@ jobs:
files: docker/tensorrt/trt.hcl
set: |
tensorrt.tags=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}-tensorrt
tensorrt.cache-from=type=gha
*.cache-from=type=gha

View File

@ -223,6 +223,16 @@ RUN --mount=type=bind,source=./requirements-dev.txt,target=/workspace/frigate/re
CMD ["sleep", "infinity"]
# 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
# Frigate web build
# This should be architecture agnostic, so speed up the build on multiarch by not using QEMU.

View File

@ -10,7 +10,7 @@ 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
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
@ -19,7 +19,7 @@ RUN --mount=type=bind,source=docker/tensorrt/detector/tensorrt_libyolo.sh,target
/tensorrt_libyolo.sh
# Frigate w/ TensorRT Support as separate image
FROM frigate AS frigate-tensorrt
FROM deps AS frigate-tensorrt
#Disable S6 Global timeout
ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
@ -35,12 +35,5 @@ 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
WORKDIR /opt/frigate/
COPY --from=rootfs / /

View File

@ -1,4 +1,4 @@
target "deps" {
target deps {
dockerfile = "docker/main/Dockerfile"
platforms = ["linux/amd64"]
}
@ -8,11 +8,18 @@ target rootfs {
platforms = ["linux/amd64"]
}
target wheels {
dockerfile = "docker/main/Dockerfile"
platforms = ["linux/amd64"]
}
target "tensorrt" {
dockerfile = "docker/tensorrt/Dockerfile"
context = "."
contexts = {
deps = "target:deps",
rootfs = "target:rootfs"
wheels = "target:wheels"
}
platforms = ["linux/amd64"]
}

View File

@ -1,10 +1,10 @@
BOARDS += trt
local-trt: version
docker buildx bake --file=docker/rpi/bake.hcl --set rpi.tagsfrigate:latest-tensorrt tensorrt
docker buildx bake --file=docker/tensorrt/trt.hcl --set tensorrt.tags=frigate:latest-tensorrt tensorrt
build-trt:
docker buildx bake --file=docker/rpi/bake.hcl --set rpi.tags=$(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-tensorrt tensorrt
docker buildx bake --file=docker/tensorrt/trt.hcl --set tensorrt.tags=$(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-tensorrt tensorrt
push-trt: build-trt
docker buildx bake --push --file=docker/rpi/bake.hcl --set rpi.tags=$(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-tensorrt tensorrt
docker buildx bake --push --file=docker/tensorrt/trt.hcl --set tensorrt.tags=$(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-tensorrt tensorrt