mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-07 03:35:26 +03:00
rewrite dockerfile
This commit is contained in:
parent
d8aaf070a2
commit
551bf4ba59
@ -3,60 +3,17 @@
|
|||||||
# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
|
# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
ARG SLIM_BASE=debian:11-slim
|
FROM wheels as rk-wheels
|
||||||
FROM ${SLIM_BASE} AS slim-base
|
COPY docker/main/requirements-wheels.txt /requirements-wheels.txt
|
||||||
|
|
||||||
# Add wheels for RKNN-Toolkit-Lite2
|
|
||||||
FROM wheels AS wheels-rk
|
|
||||||
COPY docker/rockchip/requirements-wheels-rk.txt /requirements-wheels-rk.txt
|
COPY docker/rockchip/requirements-wheels-rk.txt /requirements-wheels-rk.txt
|
||||||
RUN pip3 wheel --wheel-dir=/wheels -r /requirements-wheels-rk.txt
|
RUN sed -i "/https/d" /requirements-wheels.txt
|
||||||
|
RUN pip3 wheel --wheel-dir=/rk-wheels -c /requirements-wheels.txt -r /requirements-wheels-rk.txt
|
||||||
|
|
||||||
FROM wget as rk-libs
|
FROM wget as rk-deps
|
||||||
RUN wget -qO librknnrt.so https://github.com/MarcA711/rknpu2/raw/master/runtime/RK3588/Linux/librknn_api/aarch64/librknnrt.so
|
RUN wget -qO librknnrt.so https://github.com/MarcA711/rknpu2/raw/master/runtime/RK3588/Linux/librknn_api/aarch64/librknnrt.so
|
||||||
|
|
||||||
# Collect deps in a single layer
|
FROM frigate as frigate-rk
|
||||||
FROM deps-rootfs AS deps-rootfs-rk
|
RUN --mount=type=bind,from=rk-wheels,source=/rk-wheels,target=/deps/rk-wheels \
|
||||||
COPY docker/rockchip/yolov8n-320x320.rknn /models/
|
pip3 install -U /deps/rk-wheels/*.whl
|
||||||
# ToDo: Download librknnrt.so using wget; depends on RKNN-Toolkit-Lite2 wheel
|
COPY --from=rk-deps /rootfs/librknnrt.so /usr/lib/
|
||||||
COPY --from=rk-libs /rootfs/librknnrt.so /usr/lib/
|
COPY docker/rockchip/yolov8n-320x320.rknn /models/
|
||||||
|
|
||||||
# Frigate deps (ffmpeg, python, nginx, go2rtc, s6-overlay, etc)
|
|
||||||
FROM slim-base AS deps
|
|
||||||
ARG TARGETARCH
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND
|
|
||||||
|
|
||||||
ENV PATH="/usr/lib/btbn-ffmpeg/bin:/usr/local/go2rtc/bin:/usr/local/nginx/sbin:${PATH}"
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
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-rk,source=/wheels,target=/deps/wheels \
|
|
||||||
python3 -m pip install --upgrade pip && \
|
|
||||||
pip3 install -U /deps/wheels/*.whl
|
|
||||||
|
|
||||||
COPY --from=deps-rootfs-rk / /
|
|
||||||
|
|
||||||
RUN ldconfig
|
|
||||||
|
|
||||||
EXPOSE 5000
|
|
||||||
EXPOSE 1935
|
|
||||||
EXPOSE 8554
|
|
||||||
EXPOSE 8555/tcp 8555/udp
|
|
||||||
|
|
||||||
# Configure logging to prepend timestamps, log to stdout, keep 0 archives and rotate on 10MB
|
|
||||||
ENV S6_LOGGING_SCRIPT="T 1 n0 s10000000 T"
|
|
||||||
|
|
||||||
ENTRYPOINT ["/init"]
|
|
||||||
CMD []
|
|
||||||
|
|
||||||
HEALTHCHECK --start-period=120s --start-interval=5s --interval=15s --timeout=5s --retries=3 \
|
|
||||||
CMD curl --fail --silent --show-error http://127.0.0.1:5000/api/version || exit 1
|
|
||||||
|
|
||||||
# Frigate final container
|
|
||||||
FROM deps AS frigate
|
|
||||||
|
|
||||||
WORKDIR /opt/frigate/
|
|
||||||
COPY --from=rootfs / /
|
|
||||||
COPY docker/rockchip/rknn.py /opt/frigate/frigate/detectors/plugins/
|
|
||||||
@ -1,4 +1,2 @@
|
|||||||
hide-warnings == 0.17
|
hide-warnings == 0.17
|
||||||
numpy == 1.23.*
|
|
||||||
ruamel.yaml == 0.17.*
|
|
||||||
rknn-toolkit-lite2 @ https://github.com/MarcA711/rknn-toolkit2/raw/master/rknn_toolkit_lite2/packages/rknn_toolkit_lite2-1.5.2-cp39-cp39-linux_aarch64.whl
|
rknn-toolkit-lite2 @ https://github.com/MarcA711/rknn-toolkit2/raw/master/rknn_toolkit_lite2/packages/rknn_toolkit_lite2-1.5.2-cp39-cp39-linux_aarch64.whl
|
||||||
@ -10,16 +10,10 @@ target wheels {
|
|||||||
target = "wheels"
|
target = "wheels"
|
||||||
}
|
}
|
||||||
|
|
||||||
target deps-rootfs {
|
target frigate {
|
||||||
dockerfile = "docker/main/Dockerfile"
|
dockerfile = "docker/main/Dockerfile"
|
||||||
platforms = ["linux/arm64"]
|
platforms = ["linux/arm64"]
|
||||||
target = "deps-rootfs"
|
target = "frigate"
|
||||||
}
|
|
||||||
|
|
||||||
target rootfs {
|
|
||||||
dockerfile = "docker/main/Dockerfile"
|
|
||||||
platforms = ["linux/arm64"]
|
|
||||||
target = "rootfs"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
target rk {
|
target rk {
|
||||||
@ -27,8 +21,7 @@ target rk {
|
|||||||
contexts = {
|
contexts = {
|
||||||
wget = "target:wget",
|
wget = "target:wget",
|
||||||
wheels = "target:wheels",
|
wheels = "target:wheels",
|
||||||
deps-rootfs = "target:deps-rootfs",
|
frigate = "target:frigate"
|
||||||
rootfs = "target:rootfs"
|
|
||||||
}
|
}
|
||||||
platforms = ["linux/arm64"]
|
platforms = ["linux/arm64"]
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user