-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile
77 lines (65 loc) · 2.36 KB
/
Dockerfile
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
FROM osrf/ros:noetic-desktop-full
LABEL maintainer="Lan Wu <[email protected]>"
# Just in case we need it
ENV DEBIAN_FRONTEND noninteractive
# install zsh
RUN apt update && apt install -y wget git zsh tmux vim g++
RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.1.2/zsh-in-docker.sh)" -- \
-t robbyrussell \
-p git \
-p ssh-agent \
-p https://github.com/agkozak/zsh-z \
-p https://github.com/zsh-users/zsh-autosuggestions \
-p https://github.com/zsh-users/zsh-completions \
-p https://github.com/zsh-users/zsh-syntax-highlighting
# Install utilities
RUN apt-get update && apt-get install --no-install-recommends -y \
git \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
# Install Python3 utils
RUN python3 -m pip install --no-cache catkin-tools
# Install extra ROS dependencies
RUN apt-get update && apt-get install --no-install-recommends -y \
ros-${ROS_DISTRO}-tf2-sensor-msgs \
&& rm -rf /var/lib/apt/lists/*
# Install OpenVDB dependencies
RUN apt-get update && apt-get install --no-install-recommends -y \
libblosc-dev \
libboost-iostreams-dev \
libboost-system-dev \
libboost-system-dev \
libeigen3-dev \
&& rm -rf /var/lib/apt/lists/*
# Install OpenVDB from source, use -j$(nproc) if with enough ram and swap
RUN git clone --depth 1 https://github.com/nachovizzo/openvdb.git -b nacho/vdbfusion \
&& cd openvdb \
&& mkdir build && cd build \
&& cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DUSE_ZLIB=OFF .. \
&& make -j4 all install \
&& cd / \
&& rm -rf /openvdb
# vdb_gpdf_mapping
RUN echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
RUN echo "source /opt/ros/noetic/setup.bashrc" >> ~/.bashrc
# install glog
RUN mkdir -p /workspace/lib \
&& cd /workspace/lib \
&& git clone https://github.com/google/glog.git \
&& cd glog \
&& git fetch --all --tags \
&& git checkout tags/v0.4.0 -b v0.4.0 \
&& mkdir build && cd build \
&& cmake .. && make -j$(nproc) \
&& make install
# install gflag
RUN cd /workspace/lib \
&& git clone https://github.com/gflags/gflags.git \
&& cd gflags \
&& mkdir build && cd build \
&& cmake .. -DBUILD_SHARED_LIBS=ON && make \
&& make install
RUN cd ~ \
&& rm -rf /workspace/lib
RUN mkdir -p /workspace/vdb_gpdf_mapping_ws /workspace/data
WORKDIR /workspace/vdb_gpdf_mapping_ws