Skip to content

Commit 48357d8

Browse files
committed
Dockerfile and supporting scripts for building ign-gazebo
The scripts are split out so that they could potentially be used by other build pipelines (such as bitbucket or jenkins) and have the changes reflected everywhere they are used.
1 parent 5041705 commit 48357d8

8 files changed

+184
-0
lines changed

.dockerignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
build
2+
build_*

docker/Dockerfile.nightly

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
FROM ubuntu:bionic
2+
3+
RUN apt-get update \
4+
&& apt-get install -y \
5+
sudo \
6+
&& apt-get clean
7+
8+
COPY docker/scripts/install_common_deps.sh scripts/install_common_deps.sh
9+
RUN scripts/install_common_deps.sh
10+
11+
# This is not strictly necessary, but makes things faster down the line.
12+
COPY docker/scripts/install_ign_deps.sh scripts/install_ign_deps.sh
13+
RUN scripts/install_ign_deps.sh
14+
15+
COPY docker/scripts/enable_gcc8.sh scripts/enable_gcc8.sh
16+
RUN scripts/enable_gcc8.sh
17+
18+
COPY docker/scripts/enable_ign_stable.sh scripts/enable_ign_stable.sh
19+
RUN scripts/enable_ign_stable.sh
20+
21+
COPY docker/scripts/enable_ign_prerelease.sh scripts/enable_ign_prerelease.sh
22+
RUN scripts/enable_ign_prerelease.sh
23+
24+
COPY docker/scripts/enable_ign_nightly.sh scripts/enable_ign_nightly.sh
25+
RUN scripts/enable_ign_nightly.sh
26+
27+
RUN apt-get update \
28+
&& apt-get install -y \
29+
libignition-cmake2-dev \
30+
libignition-common3-dev \
31+
libignition-math6-eigen3-dev \
32+
libignition-plugin-dev \
33+
libignition-physics-dev \
34+
libignition-rendering-dev \
35+
libignition-tools-dev \
36+
libignition-transport6-dev \
37+
libignition-gui-dev \
38+
libignition-msgs3-dev \
39+
libignition-sensors-dev \
40+
libsdformat8-dev
41+
42+
COPY . ign-gazebo
43+
RUN cd ign-gazebo \
44+
&& ./docker/scripts/build_ign_gazebo.sh
45+

docker/scripts/enable_gcc8.sh

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
set -o errexit
4+
set -o verbose
5+
6+
sudo apt-get install g++-8
7+
8+
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8 --slave /usr/bin/gcov gcov /usr/bin/gcov-8
9+
10+
gcc -v
11+
g++ -v
12+
gcov -v
13+
14+
# lcov
15+
git clone https://github.com/linux-test-project/lcov.git
16+
cd lcov
17+
sudo make install

docker/scripts/enable_ign_nightly.sh

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
3+
set -o errexit
4+
set -o verbose
5+
6+
sudo echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-nightly `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-nightly.list
7+
8+
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
3+
set -o errexit
4+
set -o verbose
5+
6+
sudo echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-prerelease `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-prerelease.list
7+
8+
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

docker/scripts/enable_ign_stable.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
3+
set -o errexit
4+
set -o verbose
5+
6+
sudo echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list
7+
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

docker/scripts/install_common_deps.sh

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/bash
2+
3+
set -o errexit
4+
set -o verbose
5+
6+
sudo apt-get update
7+
8+
sudo apt-get install -y \
9+
gnupg \
10+
lsb-release \
11+
software-properties-common \
12+
wget
13+
14+
sudo apt-get install -y \
15+
build-essential \
16+
cmake \
17+
curl \
18+
git \
19+
g++-8 \
20+
mercurial \
21+
pkg-config
22+
23+
sudo apt-get install -y \
24+
cppcheck \
25+
valgrind
26+
27+
sudo apt-get install -y \
28+
python3 \
29+
python3-dbg \
30+
python3-pip \
31+
python3-venv

docker/scripts/install_ign_deps.sh

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/bin/bash
2+
3+
set -o errexit
4+
set -o verbose
5+
6+
sudo apt-get update
7+
8+
# Things that are used all over the ign stack
9+
sudo apt-get install -y \
10+
doxygen \
11+
libboost-all-dev \
12+
libbullet-dev \
13+
libeigen3-dev \
14+
libgflags-dev \
15+
libtinyxml2-dev \
16+
libprotoc-dev libprotobuf-dev \
17+
protobuf-compiler \
18+
ruby-ronn \
19+
ruby-dev \
20+
swig \
21+
uuid-dev
22+
23+
# ign-common dependencies
24+
sudo apt-get install -y \
25+
libavcodec-dev \
26+
libavdevice-dev \
27+
libavformat-dev \
28+
libavutil-dev \
29+
libfreeimage-dev \
30+
libgts-dev \
31+
libswscale-dev
32+
33+
# ign-gui dependencies
34+
sudo apt-get install -y \
35+
qtbase5-dev \
36+
qtdeclarative5-dev \
37+
qtquickcontrols2-5-dev \
38+
qml-module-qtquick2 \
39+
qml-module-qtquick-controls \
40+
qml-module-qtquick-controls2 \
41+
qml-module-qtquick-dialogs \
42+
qml-module-qtquick-layouts \
43+
qml-module-qt-labs-folderlistmodel \
44+
qml-module-qt-labs-settings \
45+
qml-module-qtgraphicaleffects
46+
47+
# ign-rendering dependencies
48+
sudo apt-get install -y \
49+
libogre-1.9-dev \
50+
libglew-dev \
51+
libfreeimage-dev \
52+
freeglut3-dev \
53+
libxmu-dev \
54+
libxi-dev
55+
56+
# ign-transport dependencies
57+
sudo apt-get install -y \
58+
libzmq3-dev \
59+
libsqlite3-dev
60+
61+
# SDFormat dependencies
62+
sudo apt-get install -y \
63+
libxml2-dev
64+
65+
sudo apt-get clean
66+

0 commit comments

Comments
 (0)