dora-zed publishes camera data only. The two engines under src/engines/, the objects output, the ZED_ENGINE/ZED_DETECTION_*/ZED_ONNX_* variables and the ZED_PC_MODE=ROI crop are gone, along with the standalone engine test and the model export script. This drops the unconditional ONNX Runtime requirement from CMakeLists, the Dockerfile and the install scripts, so the node now configures on a machine with no ONNX Runtime — which is what blocked the Jetson build, since there is no official ARM64 GPU binary. zed_native is dropped rather than kept: it is bound to the live camera handle and cannot run in a node that receives images over a dataflow. The removed code remains reachable at tag v0.1.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y7g2cBJ5e3r15ZbJ9WZn8c
57 lines
2.3 KiB
Docker
57 lines
2.3 KiB
Docker
# Reproducible build environment for dora-zed.
|
|
#
|
|
# Compiles only — no camera is needed. Requires an NVIDIA driver and the NVIDIA
|
|
# Container Toolkit on the host, as the ZED SDK does anyway.
|
|
#
|
|
# NVIDIA_DRIVER_CAPABILITIES below includes `video` because libsl_zed.so links
|
|
# against NVDEC (libnvcuvid) and NVENC (libnvidia-encode); the container runtime
|
|
# mounts those from the host only when `video` is in the list.
|
|
#
|
|
# Ubuntu 24.04 is the newest release Stereolabs ships a ZED SDK for.
|
|
#
|
|
# docker build -t dora-zed-build .
|
|
# docker run --rm --gpus all --user "$(id -u):$(id -g)" \
|
|
# -v "$PWD:/src" -v dora-zed-cargo:/usr/local/cargo/registry dora-zed-build
|
|
#
|
|
# --user keeps build/ and bin/ owned by you instead of root.
|
|
#
|
|
# The first run clones dora-rs and compiles it with Cargo, which takes a while;
|
|
# the named volume keeps the registry cache across runs.
|
|
|
|
FROM nvidia/cuda:12.8.1-devel-ubuntu24.04
|
|
|
|
ARG ZED_VERSION=5.2
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential cmake git curl ca-certificates pkg-config \
|
|
libopencv-dev zstd udev sudo \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# The toolchain lives outside /root so the container can run as the invoking
|
|
# user (--user) and still write the cargo caches. registry/ is created here so
|
|
# that a named volume mounted over it inherits these permissions rather than
|
|
# being created root-owned.
|
|
ENV RUSTUP_HOME=/usr/local/rustup \
|
|
CARGO_HOME=/usr/local/cargo \
|
|
PATH=/usr/local/cargo/bin:${PATH}
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
|
|
| sh -s -- -y --profile minimal --default-toolchain stable \
|
|
&& mkdir -p ${CARGO_HOME}/registry \
|
|
&& chmod -R a+w ${RUSTUP_HOME} ${CARGO_HOME}
|
|
|
|
# The installer leaves /usr/local/zed as drwxrwx--- root:zed, which an arbitrary
|
|
# --user uid cannot read, so relax it to make find_package(zed) work for one.
|
|
RUN curl -fSL -o /tmp/ZED_SDK.run \
|
|
"https://download.stereolabs.com/zedsdk/${ZED_VERSION}/cu12/ubuntu24" \
|
|
&& chmod +x /tmp/ZED_SDK.run \
|
|
&& /tmp/ZED_SDK.run -- silent skip_python skip_tools skip_drivers skip_cuda \
|
|
&& chmod -R a+rX /usr/local/zed \
|
|
&& rm -f /tmp/ZED_SDK.run
|
|
|
|
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility,video
|
|
|
|
WORKDIR /src
|
|
CMD ["scripts/build.sh"]
|