Add wheels target

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

View File

@ -5,7 +5,6 @@ on:
branches: branches:
- dev - dev
- master - master
- community-boards
# only run the latest commit to avoid cache overwrites # only run the latest commit to avoid cache overwrites
concurrency: concurrency:
@ -65,7 +64,7 @@ jobs:
files: docker/rpi/rpi.hcl files: docker/rpi/rpi.hcl
set: | set: |
rpi.tags=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}-rpi 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 - name: Build and push TensorRT
uses: docker/bake-action@v3 uses: docker/bake-action@v3
with: with:
@ -74,4 +73,4 @@ jobs:
files: docker/tensorrt/trt.hcl files: docker/tensorrt/trt.hcl
set: | set: |
tensorrt.tags=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}-tensorrt 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"] 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 # Frigate web build
# This should be architecture agnostic, so speed up the build on multiarch by not using QEMU. # 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 # Add TensorRT wheels to another folder
COPY requirements-tensorrt.txt /requirements-tensorrt.txt 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 # Build TensorRT-specific library
FROM nvcr.io/nvidia/tensorrt:23.03-py3 AS trt-deps 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 /tensorrt_libyolo.sh
# Frigate w/ TensorRT Support as separate image # Frigate w/ TensorRT Support as separate image
FROM frigate AS frigate-tensorrt FROM deps AS frigate-tensorrt
#Disable S6 Global timeout #Disable S6 Global timeout
ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 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 && \ pip3 install -U /deps/trt-wheels/*.whl && \
ldconfig ldconfig
# Dev Container w/ TRT WORKDIR /opt/frigate/
FROM devcontainer AS devcontainer-trt COPY --from=rootfs / /
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

View File

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

View File

@ -1,10 +1,10 @@
BOARDS += trt BOARDS += trt
local-trt: version 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: 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 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