-
Notifications
You must be signed in to change notification settings - Fork 5
/
devel-training-gpu.Dockerfile
111 lines (88 loc) · 3.16 KB
/
devel-training-gpu.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
FROM tensorflow/tensorflow:1.14.0-gpu-py3
ENV USERNAME="admin"
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES graphics,utility,compute
RUN useradd -ms /bin/bash ${USERNAME}
RUN usermod -aG sudo ${USERNAME}
ENV HOME="/home/${USERNAME}" \
AMBF_WS="/home/${USERNAME}/ambf" \
AMBF_RL_WS="/home/${USERNAME}/ambf_rl"
# Add apt-utils
RUN apt clean && \
rm -rf /var/lib/apt/lists/* && \
apt-get update && \
apt-get install apt-utils -q -y \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update && \
apt-get -y -qq install wget gdb
# setup timezone
RUN echo 'Etc/UTC' > /etc/timezone && \
ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
apt-get update && apt-get install -q -y tzdata
# install packages
RUN apt-get update && apt-get install -q -y \
dirmngr \
gnupg2 \
&& rm -rf /var/lib/apt/lists/*
# setup keys
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# setup sources.list
RUN echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros1-latest.list
# install bootstrap tools
RUN apt-get update && apt-get install --no-install-recommends -y \
python-rosdep \
python-rosinstall \
python-vcstools \
&& rm -rf /var/lib/apt/lists/*
# setup environment
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV ROS_DISTRO melodic
# bootstrap rosdep
RUN rosdep init && \
rosdep update --rosdistro $ROS_DISTRO
RUN apt-get update && apt-get install -y \
ros-melodic-ros-base=1.4.1-0* apt-utils git \
&& rm -rf /var/lib/apt/lists/*
WORKDIR ${HOME}
# Make Directory AMBF_WS
RUN git clone --branch ambf-1.0-python3-fix https://github.com/DhruvKoolRajamani/ambf.git
WORKDIR ${AMBF_WS}
RUN cd ${AMBF_WS} && \
git submodule update --init --recursive
# Install apt and pip packages listed in (*-requirements.txt)
WORKDIR ${AMBF_WS}
RUN apt-get update && \
apt-get -y -qq -o Dpkg::Use-Pty=0 install --no-install-recommends \
--fix-missing $(cat install/apt-requirements.txt) && \
cat install/pip-requirements.txt | xargs -n 1 -L 1 pip install -U && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Build AMBF
RUN . /opt/ros/melodic/setup.sh && \
mkdir -p ${AMBF_WS}/build && \
cd ${AMBF_WS}/build && \
cmake ../ -DCMAKE_BUILD_TYPE=Debug && \
make -j$(nproc)
WORKDIR ${HOME}
# Make Directory AMBF_RL_WS
RUN git clone https://github.com/WPI-AIM/ambf_rl.git
WORKDIR ${AMBF_RL_WS}
RUN apt-get update && \
cat install/training-pip-requirements.txt | xargs -n 1 -L 1 pip3 install -U && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Stable Baselines fix
RUN mv /usr/local/lib/python3.6/dist-packages/stable_baselines/ddpg/ddpg.py \
/usr/local/lib/python3.6/dist-packages/stable_baselines/ddpg/ddpg_old.py && \
cp ${AMBF_RL_WS}/install/stable_baseline_fix/ddpg.py \
/usr/local/lib/python3.6/dist-packages/stable_baselines/ddpg/
RUN touch ${HOME}/.bashrc && \
echo "source /opt/ros/melodic/setup.bash" >> ${HOME}/.bashrc && \
echo "source /home/admin/ambf/build/devel/setup.bash" >> ${HOME}/.bashrc
RUN . ${HOME}/.bashrc
WORKDIR ${AMBF_RL_WS}
RUN python setup.py install
ENV ROS_HOSTNAME="localhost" \
ROS_MASTER_URI="http://localhost:11311"
WORKDIR ${AMBF_RL_WS}