## ## Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. ## ## NVIDIA CORPORATION, its affiliates and licensors retain all intellectual ## property and proprietary rights in and to this material, related ## documentation and any modifications thereto. Any use, reproduction, ## disclosure or distribution of this material and related documentation ## without an express license agreement from NVIDIA CORPORATION or ## its affiliates is strictly prohibited. ## FROM nvcr.io/nvidia/pytorch:23.08-py3 AS torch_cuda_base LABEL maintainer "User Name" # Deal with getting tons of debconf messages # See: https://github.com/phusion/baseimage-docker/issues/58 RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections # add GL: RUN apt-get update && apt-get install -y --no-install-recommends \ pkg-config \ libglvnd-dev \ libgl1-mesa-dev \ libegl1-mesa-dev \ libgles2-mesa-dev && \ rm -rf /var/lib/apt/lists/* ENV NVIDIA_VISIBLE_DEVICES all ENV NVIDIA_DRIVER_CAPABILITIES graphics,utility,compute # Set timezone info RUN apt-get update && apt-get install -y \ tzdata \ software-properties-common \ && rm -rf /var/lib/apt/lists/* \ && ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime \ && echo "America/Los_Angeles" > /etc/timezone \ && dpkg-reconfigure -f noninteractive tzdata \ && add-apt-repository -y ppa:git-core/ppa \ && apt-get update && apt-get install -y \ curl \ lsb-core \ wget \ build-essential \ cmake \ git \ git-lfs \ iputils-ping \ make \ openssh-server \ openssh-client \ libeigen3-dev \ libssl-dev \ python3-pip \ python3-ipdb \ python3-tk \ python3-wstool \ sudo git bash unattended-upgrades \ apt-utils \ terminator \ glmark2 \ && rm -rf /var/lib/apt/lists/* # push defaults to bashrc: RUN apt-get update && apt-get install --reinstall -y \ libmpich-dev \ hwloc-nox libmpich12 mpich \ && rm -rf /var/lib/apt/lists/* # This is required to enable mpi lib access: ENV PATH="${PATH}:/opt/hpcx/ompi/bin" ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/hpcx/ompi/lib" ENV TORCH_CUDA_ARCH_LIST "7.0+PTX" ENV LD_LIBRARY_PATH="/usr/local/lib:${LD_LIBRARY_PATH}" # Add cache date to avoid using cached layers older than this ARG CACHE_DATE=2024-07-19 RUN pip install "robometrics[evaluator] @ git+https://github.com/fishbotics/robometrics.git" # if you want to use a different version of curobo, create folder as docker/pkgs and put your # version of curobo there. Then uncomment below line and comment the next line that clones from # github # COPY pkgs /pkgs RUN mkdir /pkgs && cd /pkgs && git clone https://github.com/NVlabs/curobo.git RUN cd /pkgs/curobo && pip3 install .[dev,usd] --no-build-isolation WORKDIR /pkgs/curobo # Optionally install nvblox: # we require this environment variable to render images in unit test curobo/tests/nvblox_test.py ENV PYOPENGL_PLATFORM=egl # add this file to enable EGL for rendering RUN echo '{"file_format_version": "1.0.0", "ICD": {"library_path": "libEGL_nvidia.so.0"}}' >> /usr/share/glvnd/egl_vendor.d/10_nvidia.json RUN apt-get update && \ apt-get install -y libgoogle-glog-dev libgtest-dev curl libsqlite3-dev libbenchmark-dev && \ cd /usr/src/googletest && cmake . && cmake --build . --target install && \ rm -rf /var/lib/apt/lists/* RUN cd /pkgs && git clone https://github.com/valtsblukis/nvblox.git && \ cd nvblox && cd nvblox && mkdir build && cd build && \ cmake .. -DPRE_CXX11_ABI_LINKABLE=ON && \ make -j32 && \ make install RUN cd /pkgs && git clone https://github.com/nvlabs/nvblox_torch.git && \ cd nvblox_torch && \ sh install.sh $(python -c 'import torch.utils; print(torch.utils.cmake_prefix_path)') && \ python3 -m pip install -e . RUN python -m pip install pyrealsense2 opencv-python transforms3d # install benchmarks: RUN python -m pip install "robometrics[evaluator] @ git+https://github.com/fishbotics/robometrics.git" # update ucx path: https://github.com/openucx/ucc/issues/476 RUN export LD_LIBRARY_PATH=/opt/hpcx/ucx/lib:$LD_LIBRARY_PATH