mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
simplify hailort (#14734)
This commit is contained in:
parent
d7935abc14
commit
27ef661fec
@ -2,9 +2,6 @@
|
|||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
# NOTE: also update user_installation.sh
|
|
||||||
ARG HAILO_VERSION=4.19.0
|
|
||||||
|
|
||||||
# Build Python wheels
|
# Build Python wheels
|
||||||
FROM wheels AS h8l-wheels
|
FROM wheels AS h8l-wheels
|
||||||
|
|
||||||
@ -19,63 +16,18 @@ RUN mkdir /h8l-wheels
|
|||||||
# Build the wheels
|
# Build the wheels
|
||||||
RUN pip3 wheel --wheel-dir=/h8l-wheels -c /requirements-wheels.txt -r /requirements-wheels-h8l.txt
|
RUN pip3 wheel --wheel-dir=/h8l-wheels -c /requirements-wheels.txt -r /requirements-wheels-h8l.txt
|
||||||
|
|
||||||
# Build HailoRT and create wheel
|
FROM wget AS hailort
|
||||||
FROM wheels AS build-hailort
|
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
ARG HAILO_VERSION
|
RUN --mount=type=bind,source=docker/hailo8l/install_hailort.sh,target=/deps/install_hailort.sh \
|
||||||
|
/deps/install_hailort.sh
|
||||||
SHELL ["/bin/bash", "-c"]
|
|
||||||
|
|
||||||
# Install necessary APT packages
|
|
||||||
RUN apt-get -qq update \
|
|
||||||
&& apt-get -qq install -y \
|
|
||||||
apt-transport-https \
|
|
||||||
gnupg \
|
|
||||||
wget \
|
|
||||||
# the key fingerprint can be obtained from https://ftp-master.debian.org/keys.html
|
|
||||||
&& wget -qO- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xA4285295FC7B1A81600062A9605C66F00D6C9793" | \
|
|
||||||
gpg --dearmor > /usr/share/keyrings/debian-archive-bullseye-stable.gpg \
|
|
||||||
&& echo "deb [signed-by=/usr/share/keyrings/debian-archive-bullseye-stable.gpg] http://deb.debian.org/debian bullseye main contrib non-free" | \
|
|
||||||
tee /etc/apt/sources.list.d/debian-bullseye-nonfree.list \
|
|
||||||
&& apt-get -qq update \
|
|
||||||
&& apt-get -qq install -y \
|
|
||||||
python3.9 \
|
|
||||||
python3.9-dev \
|
|
||||||
build-essential cmake git \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Extract Python version and set environment variables
|
|
||||||
RUN PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}' | cut -d. -f1,2) && \
|
|
||||||
PYTHON_VERSION_NO_DOT=$(echo $PYTHON_VERSION | sed 's/\.//') && \
|
|
||||||
echo "PYTHON_VERSION=$PYTHON_VERSION" > /etc/environment && \
|
|
||||||
echo "PYTHON_VERSION_NO_DOT=$PYTHON_VERSION_NO_DOT" >> /etc/environment
|
|
||||||
|
|
||||||
# Clone and build HailoRT
|
|
||||||
RUN . /etc/environment && \
|
|
||||||
git clone https://github.com/hailo-ai/hailort.git /opt/hailort && \
|
|
||||||
cd /opt/hailort && \
|
|
||||||
git checkout v${HAILO_VERSION} && \
|
|
||||||
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release && \
|
|
||||||
cmake --build build --config release --target libhailort && \
|
|
||||||
cmake --build build --config release --target hailortcli && \
|
|
||||||
cmake --build build --config release --target install
|
|
||||||
|
|
||||||
# Create a wheel file using pip3 wheel
|
|
||||||
RUN cd /opt/hailort/hailort/libhailort/bindings/python/platform && \
|
|
||||||
python3 setup.py bdist_wheel --dist-dir /hailo-wheels
|
|
||||||
|
|
||||||
RUN mkdir -p /rootfs/usr/local/lib /rootfs/usr/local/bin && \
|
|
||||||
cp /usr/local/lib/libhailort.so* /rootfs/usr/local/lib && \
|
|
||||||
cp /usr/local/bin/hailortcli /rootfs/usr/local/bin
|
|
||||||
|
|
||||||
# Use deps as the base image
|
# Use deps as the base image
|
||||||
FROM deps AS h8l-frigate
|
FROM deps AS h8l-frigate
|
||||||
ARG HAILO_VERSION
|
|
||||||
|
|
||||||
# Copy the wheels from the wheels stage
|
# Copy the wheels from the wheels stage
|
||||||
COPY --from=h8l-wheels /h8l-wheels /deps/h8l-wheels
|
COPY --from=h8l-wheels /h8l-wheels /deps/h8l-wheels
|
||||||
COPY --from=build-hailort /hailo-wheels /deps/hailo-wheels
|
COPY --from=hailort /hailo-wheels /deps/hailo-wheels
|
||||||
COPY --from=build-hailort /rootfs/ /
|
COPY --from=hailort /rootfs/ /
|
||||||
|
|
||||||
# Install the wheels
|
# Install the wheels
|
||||||
RUN pip3 install -U /deps/h8l-wheels/*.whl
|
RUN pip3 install -U /deps/h8l-wheels/*.whl
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
target wget {
|
||||||
|
dockerfile = "docker/main/Dockerfile"
|
||||||
|
platforms = ["linux/arm64","linux/amd64"]
|
||||||
|
target = "wget"
|
||||||
|
}
|
||||||
|
|
||||||
target wheels {
|
target wheels {
|
||||||
dockerfile = "docker/main/Dockerfile"
|
dockerfile = "docker/main/Dockerfile"
|
||||||
platforms = ["linux/arm64","linux/amd64"]
|
platforms = ["linux/arm64","linux/amd64"]
|
||||||
@ -19,6 +25,7 @@ target rootfs {
|
|||||||
target h8l {
|
target h8l {
|
||||||
dockerfile = "docker/hailo8l/Dockerfile"
|
dockerfile = "docker/hailo8l/Dockerfile"
|
||||||
contexts = {
|
contexts = {
|
||||||
|
wget = "target:wget"
|
||||||
wheels = "target:wheels"
|
wheels = "target:wheels"
|
||||||
deps = "target:deps"
|
deps = "target:deps"
|
||||||
rootfs = "target:rootfs"
|
rootfs = "target:rootfs"
|
||||||
|
21
docker/hailo8l/install_hailort.sh
Executable file
21
docker/hailo8l/install_hailort.sh
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
hailo_version="4.19.0"
|
||||||
|
|
||||||
|
if [[ "${TARGETARCH}" == "amd64" ]]; then
|
||||||
|
arch="x86_64"
|
||||||
|
elif [[ "${TARGETARCH}" == "arm64" ]]; then
|
||||||
|
arch="aarch64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p /rootfs
|
||||||
|
|
||||||
|
wget -qO- "https://github.com/frigate-nvr/hailort/releases/download/v${hailo_version}/hailort-${TARGETARCH}.tar.gz" |
|
||||||
|
tar -C /rootfs/ -xzf -
|
||||||
|
|
||||||
|
mkdir -p /hailo-wheels
|
||||||
|
|
||||||
|
wget -P /hailo-wheels/ "https://github.com/frigate-nvr/hailort/releases/download/v${hailo_version}/hailort-${hailo_version}-cp39-cp39-linux_${arch}.whl"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user