1+ # syntax=docker/dockerfile:1.7-labs
2+ # Above must be the first line in Dockerfile. It enables the "copy --parents" syntax
13ARG ROS_DISTRO=rolling
24FROM ros:$ROS_DISTRO-ros-base AS ci
35
46ENV DEBIAN_FRONTEND=noninteractive
57
6- WORKDIR /root/ws_blue
7- COPY . src/blue
8-
98# Install apt packages needed for CI
109RUN apt-get -q update \
1110 && apt-get -q -y upgrade \
1211 && apt-get -q install --no-install-recommends -y \
13- git \
14- sudo \
1512 clang \
1613 clang-format-14 \
1714 clang-tidy \
1815 clang-tools \
19- python3-pip \
20- python3-dev \
21- lsb-release \
22- wget \
16+ git \
2317 gnupg \
18+ lsb-release \
19+ python3-dev \
20+ python3-pip \
2421 software-properties-common \
22+ sudo \
23+ wget \
2524 && apt-get autoremove -y \
2625 && apt-get clean -y \
2726 && rm -rf /var/lib/apt/lists/*
2827
29- # Install all ROS dependencies for _just_ blue
30- # (we have not imported other repos from .repos files)
28+ WORKDIR /root/ws_blue/src/blue
29+ COPY --parents */package.xml .
30+ COPY blue.repos .
31+ WORKDIR /root/ws_blue
32+
33+ # Install all ROS dependencies for _just_ blue and packages from blue.repos
3134RUN apt-get -q update \
3235 && apt-get -q -y upgrade \
3336 && rosdep update \
37+ && vcs import src < src/blue/blue.repos \
3438 && rosdep install -y --from-paths src --ignore-src --rosdistro ${ROS_DISTRO} --as-root=apt:false \
3539 && rm -rf src \
3640 && apt-get autoremove -y \
@@ -65,6 +69,25 @@ ENV DEBIAN_FRONTEND=noninteractive
6569USER $USERNAME
6670ENV USER=$USERNAME
6771
72+ # Install gstreamer
73+ RUN sudo apt-get -q update \
74+ && sudo apt-get -q -y upgrade \
75+ && sudo apt-get -q install --no-install-recommends -y \
76+ gir1.2-gst-plugins-base-1.0 \
77+ gir1.2-gstreamer-1.0 \
78+ gstreamer1.0-gl \
79+ gstreamer1.0-libav \
80+ gstreamer1.0-plugins-bad \
81+ gstreamer1.0-plugins-good \
82+ gstreamer1.0-plugins-ugly \
83+ gstreamer1.0-tools \
84+ libgstreamer-plugins-base1.0-dev \
85+ libgstreamer1.0-dev \
86+ python3-gi \
87+ && sudo apt-get autoremove -y \
88+ && sudo apt-get clean -y \
89+ && sudo rm -rf /var/lib/apt/lists/*
90+
6891# Install MAVROS dependencies
6992WORKDIR /home/$USERNAME
7093RUN wget https://raw.githubusercontent.com/mavlink/mavros/ros2/mavros/scripts/install_geographiclib_datasets.sh \
@@ -78,25 +101,6 @@ COPY --chown=$USER_UID:$USER_GID . src/blue
78101# Install the Python requirements that aren't available as rosdeps
79102RUN python3 -m pip install -r $(pwd)/src/blue/requirements-build.txt
80103
81- # Install gstreamer
82- RUN sudo apt-get -q update \
83- && sudo apt-get -q -y upgrade \
84- && sudo apt-get -q install --no-install-recommends -y \
85- python3-gi \
86- gstreamer1.0-tools \
87- gir1.2-gstreamer-1.0 \
88- gir1.2-gst-plugins-base-1.0 \
89- gstreamer1.0-plugins-good \
90- gstreamer1.0-plugins-ugly \
91- gstreamer1.0-plugins-bad \
92- gstreamer1.0-libav \
93- libgstreamer1.0-dev \
94- gstreamer1.0-gl \
95- libgstreamer-plugins-base1.0-dev \
96- && sudo apt-get autoremove -y \
97- && sudo apt-get clean -y \
98- && sudo rm -rf /var/lib/apt/lists/*
99-
100104WORKDIR $USER_WORKSPACE
101105RUN sudo apt-get -q update \
102106 && sudo apt-get -q -y upgrade \
@@ -125,20 +129,12 @@ RUN sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrin
125129 && sudo apt-get -q update \
126130 && sudo apt-get -y --quiet --no-install-recommends install \
127131 gz-garden \
128- && sudo apt-get autoremove -y \
129- && sudo apt-get clean -y \
130- && sudo rm -rf /var/lib/apt/lists/*
131-
132- # Install ArduPilot and ardupilot_gazebo dependencies
133- RUN sudo apt-get -q update \
134- && sudo apt-get -q -y upgrade \
135- && sudo apt-get -q install --no-install-recommends -y \
132+ libgz-sim7-dev \
133+ libopencv-dev \
136134 python3-wxgtk4.0 \
137135 rapidjson-dev \
138- xterm \
139- libgz-sim7-dev \
140136 rapidjson-dev \
141- libopencv-dev \
137+ xterm \
142138 && sudo apt-get autoremove -y \
143139 && sudo apt-get clean -y \
144140 && sudo rm -rf /var/lib/apt/lists/*
@@ -198,12 +194,12 @@ FROM desktop AS desktop-nvidia
198194RUN sudo apt-get update \
199195 && sudo apt-get -q -y upgrade \
200196 && sudo apt-get install -y -qq --no-install-recommends \
201- libglvnd0 \
197+ libegl1 \
202198 libgl1 \
199+ libglvnd0 \
203200 libglx0 \
204- libegl1 \
205- libxext6 \
206201 libx11-6 \
202+ libxext6 \
207203 && sudo apt-get autoremove -y \
208204 && sudo apt-get clean -y \
209205 && sudo rm -rf /var/lib/apt/lists/*
0 commit comments