Core image with some debug tools, Python3 runtime libs, support for atomic operations and GStreamer
10K+
The provided images are built from the below Dockerfile
1.0.0
# ubuntu 20.04 focal fossa
ARG BASE_IMAGE=ubuntu:focal-20230624
FROM ${BASE_IMAGE}
# ARG doesn't persist in subsequent images
ARG DEBIAN_FRONTEND=noninteractive
RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
# Install all apt packages that would be required by any example
RUN apt update && apt install -y gdb gdbserver python3 python3-dev libatomic1
1.1.0
# ubuntu 20.04 focal fossa
ARG BASE_IMAGE=ubuntu:focal-20230624
FROM ${BASE_IMAGE}
# ARG doesn't persist in subsequent images
ARG DEBIAN_FRONTEND=noninteractive
RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
# Install all apt packages that would be required by any example
RUN apt update && apt install -y gdb gdbserver python3 python3-dev python3-pip libatomic1 ca-certificates
# Upgrade pip for examples that install Python packages
RUN python3 -m pip install --upgrade pip
You can build them locally by running
# For Ubuntu 20.04
docker build --platform linux/arm64/v8,linux/amd64 -t docker.io/hivemindsdk/core:1.0.0-ubuntu20.04 .
# For Ubuntu 22.04
docker build --build-arg BASE_IMAGE=ubuntu:jammy-20230624 --platform linux/arm64/v8,linux/amd64 -t docker.io/hivemindsdk/core:1.0.0-ubuntu22.04 .
2.0.0
ARG BASE_IMAGE=ubuntu:jammy-20250530
FROM ${BASE_IMAGE} AS base
# ARG doesn't persist in subsequent images
ARG DEBIAN_FRONTEND=noninteractive
ARG GSTREAMER_VERSION=1.24.3
ARG BUILD_DIR=/tmp/builddir
ENV HM_GST_INSTALL_DIR=/opt/hm-gstreamer-install
RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
# Install all apt packages that would be required by our examples
RUN apt update \
&& apt install -y \
# Debugging
gdb \
gdbserver \
# For RL
python3 \
python3-dev \
python3-pip \
# For ARM
libatomic1 \
# For GStreamer
ca-certificates \
sudo \
libglib2.0-dev \
libdrm-dev \
gosu \
jq \
libunwind8 \
# Vulkan dependencies
libvulkan1 \
mesa-vulkan-drivers \
vulkan-tools \
# X11 requirements
libegl1-mesa-dev \
libx11-6 \
libxext6 \
libxtst6 \
libx11-xcb-dev \
libxkbcommon-dev \
libxrandr-dev \
libwayland-cursor0 \
libwayland-egl++0 \
libwayland-egl1-mesa \
libwayland-egl1 \
libxcb-render0 \
libv4l-0 \
libva2 \
libva-drm2 \
libx264-163 \
# Network tools
iproute2 \
tcpdump \
iputils-ping \
net-tools \
netcat \
iptables \
# Video
ffmpeg \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
# Upgrade pip for examples that install Python packages
RUN python3 -m pip install --upgrade pip
FROM base AS gst_build
WORKDIR /tmp
RUN apt update \
&& apt upgrade -y \
&& apt install -y \
build-essential \
meson \
ninja-build \
python3-setuptools \
git \
pkg-config \
bison \
flex \
&& python3 -m pip install --upgrade meson \
&& apt clean && rm -rf /var/lib/apt/lists/*
RUN git clone --depth 1 https://gitlab.freedesktop.org/gstreamer/gstreamer.git --branch $GSTREAMER_VERSION \
&& cd gstreamer \
&& meson setup $BUILD_DIR \
-Dgpl=enabled \
--pkgconfig.relocatable \
--prefix=$HM_GST_INSTALL_DIR \
&& meson compile -C $BUILD_DIR \
&& meson install -C $BUILD_DIR
FROM base AS gstinstall
COPY --from=gst_build $HM_GST_INSTALL_DIR $HM_GST_INSTALL_DIR
You can build them locally by running
# For Ubuntu 22.04
docker build --build-arg BASE_IMAGE=ubuntu:jammy-20250530 --platform linux/arm64/v8,linux/amd64 --network host -t docker.io/hivemindsdk/core:2.0.0-ubuntu22.04 .
3.0.0
ARG BASE_IMAGE=ubuntu:jammy-20250530
FROM ${BASE_IMAGE} AS base
# ARG doesn't persist in subsequent images
ARG DEBIAN_FRONTEND=noninteractive
ARG GSTREAMER_VERSION=1.24.3
ARG OPENCV_VERSION=4.5.4
ARG BUILD_DIR=/tmp/builddir
ENV HM_GST_INSTALL_DIR=/opt/hm-gstreamer-install
ENV HM_OPENCV_INSTALL_DIR=/opt/hm-opencv-install
RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
# Install all apt packages that would be required by our examples
RUN apt update \
&& apt install -y \
# Debugging
gdb \
gdbserver \
# For RL
python3 \
python3-dev \
python3-pip \
# For ARM
libatomic1 \
# For GStreamer
ca-certificates \
sudo \
libglib2.0-dev \
libdrm-dev \
gosu \
jq \
libunwind8 \
# Vulkan dependencies
libvulkan1 \
mesa-vulkan-drivers \
vulkan-tools \
# X11 requirements
libegl1-mesa-dev \
libx11-6 \
libxext6 \
libxtst6 \
libx11-xcb-dev \
libxkbcommon-dev \
libxrandr-dev \
libwayland-cursor0 \
libwayland-egl++0 \
libwayland-egl1-mesa \
libwayland-egl1 \
libxcb-render0 \
libv4l-0 \
libva2 \
libva-drm2 \
libx264-163 \
# Network tools
iproute2 \
tcpdump \
iputils-ping \
net-tools \
netcat \
iptables \
# Video
ffmpeg \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
# Upgrade pip for examples that install Python packages
RUN python3 -m pip install --upgrade pip
FROM base AS gst_build
WORKDIR /tmp
RUN apt update \
&& apt upgrade -y \
&& apt install -y \
build-essential \
meson \
ninja-build \
python3-setuptools \
git \
pkg-config \
bison \
flex \
&& python3 -m pip install --upgrade meson \
&& apt clean && rm -rf /var/lib/apt/lists/*
RUN git clone --depth 1 https://gitlab.freedesktop.org/gstreamer/gstreamer.git --branch $GSTREAMER_VERSION \
&& cd gstreamer \
&& meson setup $BUILD_DIR \
-Dgpl=enabled \
--pkgconfig.relocatable \
--prefix=$HM_GST_INSTALL_DIR \
&& meson compile -C $BUILD_DIR \
&& meson install -C $BUILD_DIR
FROM base AS final
COPY --from=gst_build $HM_GST_INSTALL_DIR $HM_GST_INSTALL_DIR
# Install only the OpenCV modules that ArUco block actually needs
RUN apt update \
&& apt install -y \
libopencv-core4.5d \
libopencv-imgproc4.5d \
libopencv-imgcodecs4.5d \
libopencv-calib3d4.5d \
libopencv-features2d4.5d \
libopencv-flann4.5d \
libopencv-contrib4.5d \
&& apt clean && rm -rf /var/lib/apt/lists/* \
&& mkdir -p $HM_OPENCV_INSTALL_DIR \
&& ln -sf /usr $HM_OPENCV_INSTALL_DIR
You can build them locally by running
# For Ubuntu 22.04
docker build --build-arg BASE_IMAGE=ubuntu:jammy-20250530 --platform linux/arm64/v8,linux/amd64 --network host -t docker.io/hivemindsdk/core:3.0.0-ubuntu22.04 .
3.1.0
ARG BASE_IMAGE=ubuntu:jammy-20250530
FROM ${BASE_IMAGE} AS base
# ARG doesn't persist in subsequent images
ARG DEBIAN_FRONTEND=noninteractive
ARG GSTREAMER_VERSION=1.19.1
ARG OPENCV_VERSION=4.5.4
ARG BUILD_DIR=/tmp/builddir
ENV HM_GST_INSTALL_DIR=/opt/hm-gstreamer-install
ENV HM_OPENCV_INSTALL_DIR=/opt/hm-opencv-install
RUN echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes \
&& apt-get update \
# Install all apt packages that would be required by our examples
&& apt-get install -y \
ca-certificates \
ffmpeg \
gdb \
gdbserver \
gosu \
iproute2 \
iptables \
iputils-ping \
jq \
libatomic1 \
libavcodec-dev \
libavfilter-dev \
libavformat-dev \
libdrm-dev \
libegl1-mesa-dev \
libfontconfig1-dev \
libglib2.0-dev \
libunwind8 \
libv4l-0 \
libva-drm2 \
libva2 \
libvulkan1 \
libwayland-cursor0 \
libwayland-egl++0 \
libwayland-egl1 \
libwayland-egl1-mesa \
libx11-6 \
libx11-dev \
libx11-xcb-dev \
libx264-163 \
libxcb-render0 \
libxext-dev \
libxext6 \
libxft-dev \
libxkbcommon-dev \
libxml2 \
libxrandr-dev \
libxrender-dev \
libxtst6 \
mesa-vulkan-drivers \
nasm \
net-tools \
netcat \
python3 \
python3-dev \
python3-pip \
sudo \
tcpdump \
vulkan-tools \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
# Upgrade pip for examples that install Python packages
&& python3 -m pip install --upgrade pip
FROM base AS gst_build
WORKDIR /tmp
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y \
bison \
build-essential \
flex \
git \
meson \
ninja-build \
pkg-config \
python3-setuptools \
&& python3 -m pip install --upgrade meson \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN GST_MAJOR_VERSION=$(echo "$GSTREAMER_VERSION" | cut -d. -f1) \
&& GST_MINOR_VERSION=$(echo "$GSTREAMER_VERSION" | cut -d. -f2) \
&& if [ "$GST_MAJOR_VERSION" -le 1 ] && [ "$GST_MINOR_VERSION" -lt 20 ]; then \
gst_repo=gst-build; \
else \
gst_repo=gstreamer; \
fi \
&& git clone --depth 1 https://gitlab.freedesktop.org/gstreamer/${gst_repo}.git --branch "$GSTREAMER_VERSION" gst
WORKDIR /tmp/gst
RUN GST_MAJOR_VERSION=$(echo "$GSTREAMER_VERSION" | cut -d. -f1) \
&& GST_MINOR_VERSION=$(echo "$GSTREAMER_VERSION" | cut -d. -f2) \
&& if [ "$GST_MAJOR_VERSION" -le 1 ] && [ "$GST_MINOR_VERSION" -lt 20 ]; then \
version_flags="-Dgst-plugins-bad:mpegtsdemux=enabled -Dlibav=enabled -Dgst-plugins-bad:openh264=enabled"; \
else \
version_flags="-Dgpl=enabled"; \
fi \
&& if [ $(uname -m) != "x86_64" ]; then \
arch_flags="-Ddevtools=disabled"; \
fi \
&& meson setup $version_flags $arch_flags --pkgconfig.relocatable --prefix="$HM_GST_INSTALL_DIR" "$BUILD_DIR"
WORKDIR /tmp/gst/subprojects/gst-plugins-bad
COPY opensource/gstreamer_support/klv_demux/gst-plugins-bad/klv_sync_support.patch klv_sync_support.patch
COPY opensource/gstreamer_support/klv_demux/gst-plugins-bad/gst-libs/gst/codecparsers/gstklvmeta.* gst-libs/gst/codecparsers/
RUN git apply klv_sync_support.patch
WORKDIR /tmp/gst/gstreamer
RUN meson compile -C "$BUILD_DIR" && meson install -C "$BUILD_DIR"
FROM base AS final
COPY --from=gst_build $HM_GST_INSTALL_DIR $HM_GST_INSTALL_DIR
# Install only the OpenCV modules that ArUco block actually needs
RUN apt-get update \
&& apt-get install -y \
libopencv-calib3d4.5d \
libopencv-contrib4.5d \
libopencv-core4.5d \
libopencv-features2d4.5d \
libopencv-flann4.5d \
libopencv-imgcodecs4.5d \
libopencv-imgproc4.5d \
&& apt-get clean && rm -rf /var/lib/apt/lists/* \
&& mkdir -p "$HM_OPENCV_INSTALL_DIR" \
&& ln -sf /usr "$HM_OPENCV_INSTALL_DIR"
You can build them locally by running
# For Ubuntu 22.04
docker build --build-arg BASE_IMAGE=ubuntu:jammy-20250530 --platform linux/arm64/v8,linux/amd64 --network host -t docker.io/hivemindsdk/core:3.1.0-ubuntu22.04 .
Content type
Image
Digest
sha256:2935cf20a…
Size
492.6 MB
Last updated
10 months ago
docker pull hivemindsdk/core:3.2.0-ubuntu22.04