-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile.zed
More file actions
84 lines (71 loc) · 3.36 KB
/
Copy pathDockerfile.zed
File metadata and controls
84 lines (71 loc) · 3.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# ===== ZED Camera Docker Image for Isaac ROS NITROS (x86_64 / Humble) =====
FROM stereolabs/zed:5.0-devel-cuda12.8-ubuntu22.04
# Environment configuration
ENV DEBIAN_FRONTEND=noninteractive \
TZ=Etc/UTC \
LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
# Ensure LFS performs automatic smudge
GIT_LFS_SKIP_SMUDGE=0
# Use bash shell for RUN commands (to allow 'source' command)
SHELL ["/bin/bash", "-lc"]
# Install base build dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
curl gnupg2 lsb-release ca-certificates software-properties-common \
build-essential cmake ninja-build \
git git-lfs \
python3-pip \
wget \
&& rm -rf /var/lib/apt/lists/*
# Add ROS 2 repository (without legacy apt-key)
RUN install -m 0755 -d /etc/apt/keyrings && \
curl -fsSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
-o /etc/apt/keyrings/ros-archive-keyring.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/ros-archive-keyring.gpg] \
http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" \
| tee /etc/apt/sources.list.d/ros2.list > /dev/null
# Install ROS 2 Humble and development tools (colcon, vcstool, rosdep, etc.)
RUN apt-get update && apt-get install -y --no-install-recommends \
ros-humble-desktop ros-dev-tools \
ros-humble-ament-cmake-auto \
&& rm -rf /var/lib/apt/lists/*
# Setup workspace directory
ENV WS=/home/spot_ws/zed_ws
ENV ISAAC_ROS_WS=/home/spot_ws/zed_ws
RUN mkdir -p $WS/src
WORKDIR $WS
# Install additional dependencies for NVBLOX (Google Benchmark)
RUN apt-get update && apt-get install -y --no-install-recommends \
libbenchmark-dev \
&& rm -rf /var/lib/apt/lists/*
# Install gflags and glog libraries
RUN apt-get update && apt-get install -y --no-install-recommends \
libgflags-dev \
libgoogle-glog-dev \
&& rm -rf /var/lib/apt/lists/*
# Install CV-CUDA (NVCV): runtime + dev packages (provides <nvcv/Tensor.hpp>)
ARG CVCUDA_VER=v0.15.0
ARG CVCUDA_LIB_DEB=https://github.com/CVCUDA/CV-CUDA/releases/download/${CVCUDA_VER}/cvcuda-lib-0.15.0-cuda12-x86_64-linux.deb
ARG CVCUDA_DEV_DEB=https://github.com/CVCUDA/CV-CUDA/releases/download/${CVCUDA_VER}/cvcuda-dev-0.15.0-cuda12-x86_64-linux.deb
RUN set -e; \
cd /tmp && \
wget -O cvcuda-lib.deb "${CVCUDA_LIB_DEB}" && \
wget -O cvcuda-dev.deb "${CVCUDA_DEV_DEB}" && \
apt-get update && apt-get install -y ./cvcuda-lib.deb ./cvcuda-dev.deb && \
rm -rf /var/lib/apt/lists/* && \
test -f /opt/nvidia/cvcuda0/include/nvcv/Tensor.hpp
# Set CV-CUDA environment variables
ENV CVCUDA_ROOT=/opt/nvidia/cvcuda0
ENV CMAKE_PREFIX_PATH=$CVCUDA_ROOT:$CMAKE_PREFIX_PATH
ENV CPLUS_INCLUDE_PATH=$CVCUDA_ROOT/include:$CPLUS_INCLUDE_PATH
# Install VPI (Vision Programming Interface) packages
RUN set -e; \
cd /tmp && \
wget https://repo.download.nvidia.com/jetson/x86_64/focal/pool/main/libn/libnvvpi2/libnvvpi2_2.3.9_amd64.deb && \
wget https://repo.download.nvidia.com/jetson/x86_64/focal/pool/main/v/vpi2-dev/vpi2-dev_2.3.9_amd64.deb && \
wget https://repo.download.nvidia.com/jetson/x86_64/focal/pool/main/v/vpi2-samples/vpi2-samples_2.3.9_amd64.deb && \
apt-get install -y ./libnvvpi2_2.3.9_amd64.deb ./vpi2-dev_2.3.9_amd64.deb ./vpi2-samples_2.3.9_amd64.deb || \
apt-get -f install -y && \
rm -f *.deb
# Set working directory
WORKDIR $WS