Skip to content

Commit 8dffef3

Browse files
author
Adam Ligocki
committed
added dockerfile
1 parent ca1bb6e commit 8dffef3

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed

dockerfiles/ros_noetic_dockerfile

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
FROM ubuntu:20.04
2+
3+
4+
5+
ARG DEBIAN_FRONTEND=noninteractive
6+
ARG user=default_user
7+
ARG cmake_ver=3.16.0
8+
ARG gcc_ver=10
9+
ARG ros_ver=noetic
10+
11+
RUN apt update
12+
RUN apt upgrade -y
13+
RUN apt install -y sudo
14+
RUN apt install -y git
15+
RUN apt install -y wget
16+
RUN apt install -y x11-apps
17+
RUN apt install -y terminator
18+
#RUN apt install -y dbus-x11
19+
RUN apt install -y libssl-dev
20+
RUN apt install -y make
21+
22+
23+
### Install Compiler
24+
RUN apt install -y gcc-$gcc_ver g++-$gcc_ver
25+
RUN ln -s /usr/bin/gcc-$gcc_ver /usr/bin/gcc
26+
RUN ln -s /usr/bin/g++-$gcc_ver /usr/bin/g++
27+
28+
29+
## Install CMake ###
30+
RUN apt-get purge cmake
31+
RUN cd /tmp \
32+
&& wget https://github.com/Kitware/CMake/releases/download/v$cmake_ver/cmake-$cmake_ver.tar.gz \
33+
&& tar -xzvf cmake-$cmake_ver.tar.gz \
34+
&& cd cmake-$cmake_ver \
35+
&& ./bootstrap \
36+
&& make -j4 \
37+
&& make install
38+
39+
40+
### Locale ###
41+
RUN apt install -y locales
42+
RUN locale-gen en_US.UTF-8
43+
44+
ENV LANG=en_US.UTF-8
45+
ENV LC_ALL=en_US.UTF-8
46+
ENV LANGUAGE=en_US:en
47+
48+
49+
### set root password ###
50+
RUN echo "root:root" | chpasswd
51+
52+
53+
### create user ###
54+
RUN useradd --create-home --shell=/bin/bash $user
55+
RUN adduser $user $user
56+
RUN echo "$user:$user" | chpasswd
57+
RUN usermod -aG sudo $user
58+
RUN echo "$user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
59+
60+
61+
### set file system permitions ###
62+
RUN chown -R $user:$user /home/$user
63+
64+
65+
### install mode programs ###
66+
67+
RUN apt install -y vim
68+
RUN apt install -y htop
69+
RUN apt install -y mesa-utils
70+
RUN apt install -y apt-utils
71+
RUN apt install -y curl
72+
RUN apt install -y python3-pip
73+
74+
ENV DEBIAN_FRONTEND noninteractive
75+
RUN apt install -y libopencv-dev
76+
77+
78+
### install GTest ###
79+
80+
RUN apt install -y libgtest-dev
81+
WORKDIR /usr/src/gtest
82+
RUN cmake CMakeLists.txt
83+
RUN make
84+
RUN pwd
85+
RUN ls lib -la
86+
RUN cp lib/*.a /usr/lib
87+
RUN mkdir /usr/local/lib/gtest/
88+
RUN ln -s /usr/lib/libgtest.a /usr/local/lib/gtest/libgtest.a
89+
RUN ln -s /usr/lib/libgtest_main.a /usr/local/lib/gtest/libgtest_main.a
90+
91+
92+
### ROS Installation ###
93+
94+
RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
95+
RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
96+
RUN apt update
97+
RUN apt install -y ros-$ros_ver-desktop-full
98+
RUN apt install -y python3-rosinstall
99+
RUN apt install -y python3-rosinstall-generator
100+
101+
102+
### SSH ####
103+
RUN apt install -y openssh-server
104+
105+
106+
107+
### final setup ###
108+
USER $user
109+
WORKDIR /home/$user
110+
#RUN rosdep init
111+
#RUN rosdep update
112+
RUN echo "source /opt/ros/$ros_ver/setup.bash" >> ~/.bashrc
113+
CMD /usr/bin/terminator
114+
115+
### Install Rust ###
116+
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
117+
RUN echo 'source $HOME/.cargo/env' >> $HOME/.bashrc
118+
119+
### Build and Run
120+
121+
# docker build -f ros_noetic_dockerfile -t ros_noetic_image .
122+
# export DOCKER_HOME=/home/default_user
123+
# docker run -it --net=host --privileged -e DISPLAY=$DISPLAY --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" -v $HOME/Data:$DOCKER_HOME/Data -v $HOME/Software:$DOCKER_HOME/Software -v /media:/media -v $HOME/Developer:$DOCKER_HOME/Developer -i -t -d --name ros_noetic_container ros_noetic_image:latest
124+

0 commit comments

Comments
 (0)