diff --git a/docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/dependencies.d/prepare b/docker/tensorrt/detector/rootfs/etc/s6-overlay/s6-rc.d/trt-model-prepare/dependencies.d/prepare new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docker/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 index e3440e7ac9..790fb470f5 100755 --- a/docker/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 @@ -13,6 +13,16 @@ TRT_VER=${TRT_VER:-$(cat /etc/TENSORRT_VER)} OUTPUT_FOLDER="${MODEL_CACHE_DIR}/${TRT_VER}" YOLO_MODELS=${YOLO_MODELS:-""} +# This runs as root after prepare's sentinel-guarded sweep, so the dirs and +# engines it creates below are the runtime user's to fix up, on every exit path +function hand_off_ownership() { + if [[ "$(id -u)" -eq 0 && "${FRIGATE_RUN_AS_ROOT:-false}" != "true" ]]; then + /usr/local/bin/fix-ownership "${PUID:-1000}" "${PGID:-1000}" \ + /config/model_cache "${MODEL_CACHE_DIR}" + fi +} +trap hand_off_ownership EXIT + # Create output folder mkdir -p ${OUTPUT_FOLDER}