127 lines
3.9 KiB
Docker
127 lines
3.9 KiB
Docker
##
|
|
## 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-02-20
|
|
|
|
|
|
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" |