Hello everyone,
I’m currently working on a custom Docker container with Tappas installed. I managed to create one, but apparently it’s installing all Tappas Hailo operators except for hailonet. Do you know what could be the issue here?
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
# Install python 3.8
RUN apt-get update && \
apt-get install -y software-properties-common && \
add-apt-repository ppa:deadsnakes/ppa && \
apt-get update && \
apt-get install -y python3.8 python3.8-venv python3.8-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
COPY ./setup /tmp/setup
# Install Tappas
RUN apt-get update && apt-get install -y unzip && \
unzip /tmp/setup/tappas_3.31.0_linux_installer.zip && \
apt-get update && \
apt-get install -y rsync ffmpeg x11-utils python3-dev python3-pip python3-setuptools python3-virtualenv python-gi-dev libgirepository1.0-dev gcc-12 g++-12 cmake git libzmq3-dev && \
apt-get install -y libopencv-dev python3-opencv && \
apt-get install -y libcairo2-dev libgirepository1.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio gcc-12 g++-12 python-gi-dev && \
apt update && apt install -y python3-gi python3-gi-cairo gir1.2-gtk-3.0
RUN find /tappas_v3.31.0 -type f -name "*.sh" -exec sed -i -e 's/| sudo /| /g' -e 's/\bsudo //g' {} +
# Update the package list and install prerequisites
RUN apt-get update && apt-get install -y \
curl \
wget \
build-essential \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
libffi-dev \
liblzma-dev \
libncurses5-dev \
libgdbm-dev \
tk-dev \
uuid-dev \
libnss3-dev \
vim
# Install the pre-built HailoRT deb package (runtime only)
# Note dkpg will not work here, because the post-install scripts inside the .deb cannot run during Docker build.
# We are putting it here in a non-standard location
RUN mkdir -p /opt/hailo && dpkg-deb -x /tmp/setup/hailort_4.20.0_amd64.deb /opt/hailo
# Create symlinks for hailortcli and the library
RUN ln -s /opt/hailo/usr/bin/hailortcli /usr/bin/hailortcli && \
ln -s /opt/hailo/usr/lib/libhailort.so.4.20.0 /usr/lib/libhailort.so
# Set environment variables so the Hailo SDK can find its shared libraries and binaries
ENV LD_LIBRARY_PATH=/opt/hailo/usr/lib
ENV PATH=$PATH:/opt/hailo/usr/bin
ENV CPLUS_INCLUDE_PATH=/opt/hailo/usr/include:/opt/hailo/usr/include/gstreamer-1.0/gst/hailo
RUN cd /tappas_v3.31.0 && chmod +x install.sh && \
/bin/bash ./install.sh --skip-hailort
# Install pylon 7.5
RUN apt-get install -y libgl1-mesa-dri libgl1-mesa-glx libxcb-xinerama0 libxcb-xinput0 && \
apt-get install -y /tmp/setup/pylon_install/pylon_*.deb /tmp/setup/pylon_install/codemeter*.deb
ENV PYLON_ROOT=/opt/pylon
# Install gst-pylon-plugin
RUN apt remove meson ninja-build && pip install meson ninja --upgrade && \
apt install -y gstreamer1.0-python3-plugin-loader && \
cd /tmp && git clone https://github.com/basler/gst-plugin-pylon.git && cd gst-plugin-pylon && \
meson setup builddir --prefix /usr/ && ninja -C builddir && ninja -C builddir test && ninja -C builddir install && \
gst-inspect-1.0 pylonsrc
RUN mv /tappas_v3.31.0/scripts/bash_completion.d/_python-argcomplete /tappas_v3.31.0/scripts/bash_completion.d/python-argcomplete
# Create workdir directoru
RUN mkdir /workspace
WORKDIR /workspace
Files I’m using in my setup:
hailort_4.20.0_amd64.deb (source: hailo.ai developer zone)
gst-plugin-pylon (source: GitHub - basler/gst-plugin-pylon: The official GStreamer plug-in for Basler cameras)
tappas_3.31.0_linux_installer (source: hailo.ai developer zone)
Pylon 7.5 install files (required for gst-plugin-pylon)
Is there something I’m missing in my setup? On my host machine I have installed HailoRT 4.20, HailoRT-PCIE-driver (4.20) and PyHailoRT