@@ -76,6 +76,10 @@ RUN rosdep keys --ignore-src --from-paths src \
76
76
> /rosdep-universe-common-depend-packages.txt \
77
77
&& cat /rosdep-universe-common-depend-packages.txt
78
78
79
+ FROM rosdep-depend AS rosdep-universe-sensing-perception-depend
80
+ SHELL ["/bin/bash" , "-o" , "pipefail" , "-c" ]
81
+ ARG ROS_DISTRO
82
+
79
83
COPY src/universe/autoware.universe/perception /autoware/src/universe/autoware.universe/perception
80
84
COPY src/universe/autoware.universe/sensing /autoware/src/universe/autoware.universe/sensing
81
85
RUN rosdep keys --ignore-src --from-paths src \
@@ -93,6 +97,24 @@ RUN rosdep keys --dependency-types=exec --ignore-src --from-paths src \
93
97
> /rosdep-universe-sensing-perception-exec-depend-packages.txt \
94
98
&& cat /rosdep-universe-sensing-perception-exec-depend-packages.txt
95
99
100
+ FROM rosdep-depend AS rosdep-universe-localization-mapping-depend
101
+ SHELL ["/bin/bash" , "-o" , "pipefail" , "-c" ]
102
+ ARG ROS_DISTRO
103
+
104
+ COPY src/universe/autoware.universe/localization /autoware/src/universe/autoware.universe/localization
105
+ COPY src/universe/autoware.universe/map /autoware/src/universe/autoware.universe/map
106
+ RUN rosdep keys --ignore-src --from-paths src \
107
+ | xargs rosdep resolve --rosdistro ${ROS_DISTRO} \
108
+ | grep -v '^#' \
109
+ | sed 's/ \+ /\n /g' \
110
+ | sort \
111
+ > /rosdep-universe-localization-mapping-depend-packages.txt \
112
+ && cat /rosdep-universe-localization-mapping-depend-packages.txt
113
+
114
+ FROM rosdep-depend AS rosdep-universe-depend
115
+ SHELL ["/bin/bash" , "-o" , "pipefail" , "-c" ]
116
+ ARG ROS_DISTRO
117
+
96
118
COPY src/launcher /autoware/src/launcher
97
119
COPY src/param /autoware/src/param
98
120
COPY src/sensor_component /autoware/src/sensor_component
@@ -165,10 +187,10 @@ RUN --mount=type=ssh \
165
187
&& cat /tmp/rosdep-universe-common-depend-packages.txt | xargs apt-get install -y --no-install-recommends \
166
188
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME" /.cache
167
189
168
- # TODO(youtalk): Remove COPYs when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved
169
190
# hadolint ignore=SC1091
170
191
RUN --mount=type=cache,target=${CCACHE_DIR} \
171
192
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \
193
+ # TODO(youtalk): Remove --mount options when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved
172
194
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher,target=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher \
173
195
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils,target=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils \
174
196
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \
@@ -193,7 +215,7 @@ ARG ROS_DISTRO
193
215
ENV CCACHE_DIR="/root/.ccache"
194
216
195
217
# Install rosdep dependencies
196
- COPY --from=rosdep-depend /rosdep-universe-sensing-perception-depend-packages.txt /tmp/rosdep-universe-sensing-perception-depend-packages.txt
218
+ COPY --from=rosdep-universe-sensing-perception- depend /rosdep-universe-sensing-perception-depend-packages.txt /tmp/rosdep-universe-sensing-perception-depend-packages.txt
197
219
# hadolint ignore=SC2002
198
220
RUN --mount=type=ssh \
199
221
apt-get update \
@@ -202,8 +224,40 @@ RUN --mount=type=ssh \
202
224
203
225
# hadolint ignore=SC1091
204
226
RUN --mount=type=cache,target=${CCACHE_DIR} \
205
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \
206
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \
227
+ --mount=type=bind,from=rosdep-universe-sensing-perception-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \
228
+ --mount=type=bind,from=rosdep-universe-sensing-perception-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \
229
+ source /opt/ros/"$ROS_DISTRO" /setup.bash \
230
+ && source /opt/autoware/setup.bash \
231
+ && du -sh ${CCACHE_DIR} && ccache -s \
232
+ && colcon build --cmake-args \
233
+ " -Wno-dev" \
234
+ " --no-warn-unused-cli" \
235
+ --merge-install \
236
+ --install-base /opt/autoware \
237
+ --mixin release compile-commands ccache \
238
+ && du -sh ${CCACHE_DIR} && ccache -s \
239
+ && rm -rf /autoware/build
240
+
241
+ ENTRYPOINT ["/ros_entrypoint.sh" ]
242
+ CMD ["/bin/bash" ]
243
+
244
+ FROM universe-common-devel AS universe-localization-mapping-devel
245
+ SHELL ["/bin/bash" , "-o" , "pipefail" , "-c" ]
246
+ ARG ROS_DISTRO
247
+ ENV CCACHE_DIR="/root/.ccache"
248
+
249
+ # Install rosdep dependencies
250
+ COPY --from=rosdep-universe-localization-mapping-depend /rosdep-universe-localization-mapping-depend-packages.txt /tmp/rosdep-universe-localization-mapping-depend-packages.txt
251
+ # hadolint ignore=SC2002
252
+ RUN --mount=type=ssh \
253
+ apt-get update \
254
+ && cat /tmp/rosdep-universe-localization-mapping-depend-packages.txt | xargs apt-get install -y --no-install-recommends \
255
+ && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME" /.cache
256
+
257
+ # hadolint ignore=SC1091
258
+ RUN --mount=type=cache,target=${CCACHE_DIR} \
259
+ --mount=type=bind,from=rosdep-universe-localization-mapping-depend,source=/autoware/src/universe/autoware.universe/localization,target=/autoware/src/universe/autoware.universe/localization \
260
+ --mount=type=bind,from=rosdep-universe-localization-mapping-depend,source=/autoware/src/universe/autoware.universe/map,target=/autoware/src/universe/autoware.universe/map \
207
261
source /opt/ros/"$ROS_DISTRO" /setup.bash \
208
262
&& source /opt/autoware/setup.bash \
209
263
&& du -sh ${CCACHE_DIR} && ccache -s \
@@ -225,31 +279,30 @@ ARG ROS_DISTRO
225
279
ENV CCACHE_DIR="/root/.ccache"
226
280
227
281
# Install rosdep dependencies
228
- COPY --from=rosdep-depend /rosdep-universe-depend-packages.txt /tmp/rosdep-universe-depend-packages.txt
282
+ COPY --from=rosdep-universe- depend /rosdep-universe-depend-packages.txt /tmp/rosdep-universe-depend-packages.txt
229
283
# hadolint ignore=SC2002
230
284
RUN --mount=type=ssh \
231
285
apt-get update \
232
286
&& cat /tmp/rosdep-universe-depend-packages.txt | xargs apt-get install -y --no-install-recommends \
233
287
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME" /.cache
234
288
235
289
COPY --from=universe-sensing-perception-devel /opt/autoware /opt/autoware
290
+ COPY --from=universe-localization-mapping-devel /opt/autoware /opt/autoware
236
291
# hadolint ignore=SC1091
237
292
RUN --mount=type=cache,target=${CCACHE_DIR} \
238
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \
239
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/param,target=/autoware/src/param \
240
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/sensor_component,target=/autoware/src/sensor_component \
241
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/sensor_kit,target=/autoware/src/sensor_kit \
242
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/control,target=/autoware/src/universe/autoware.universe/control \
243
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/evaluator,target=/autoware/src/universe/autoware.universe/evaluator \
244
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/launch,target=/autoware/src/universe/autoware.universe/launch \
245
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/localization,target=/autoware/src/universe/autoware.universe/localization \
246
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/map,target=/autoware/src/universe/autoware.universe/map \
247
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/planning,target=/autoware/src/universe/autoware.universe/planning \
248
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/simulator,target=/autoware/src/universe/autoware.universe/simulator \
249
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \
250
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/tools,target=/autoware/src/universe/autoware.universe/tools \
251
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/vehicle,target=/autoware/src/universe/autoware.universe/vehicle \
252
- --mount=type=bind,from=rosdep-depend,source=/autoware/src/vehicle,target=/autoware/src/vehicle \
293
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \
294
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/param,target=/autoware/src/param \
295
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/sensor_component,target=/autoware/src/sensor_component \
296
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/sensor_kit,target=/autoware/src/sensor_kit \
297
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/control,target=/autoware/src/universe/autoware.universe/control \
298
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/evaluator,target=/autoware/src/universe/autoware.universe/evaluator \
299
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/launch,target=/autoware/src/universe/autoware.universe/launch \
300
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/planning,target=/autoware/src/universe/autoware.universe/planning \
301
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/simulator,target=/autoware/src/universe/autoware.universe/simulator \
302
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \
303
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/tools,target=/autoware/src/universe/autoware.universe/tools \
304
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/universe/autoware.universe/vehicle,target=/autoware/src/universe/autoware.universe/vehicle \
305
+ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/vehicle,target=/autoware/src/vehicle \
253
306
source /opt/ros/"$ROS_DISTRO" /setup.bash \
254
307
&& source /opt/autoware/setup.bash \
255
308
&& du -sh ${CCACHE_DIR} && ccache -s \
@@ -272,7 +325,7 @@ ARG LIB_DIR
272
325
ARG SETUP_ARGS
273
326
274
327
# Set up runtime environment and artifacts
275
- COPY --from=rosdep-depend /rosdep-universe-sensing-perception-exec-depend-packages.txt /tmp/rosdep-universe-sensing-perception-exec-depend-packages.txt
328
+ COPY --from=rosdep-universe-sensing-perception- depend /rosdep-universe-sensing-perception-exec-depend-packages.txt /tmp/rosdep-universe-sensing-perception-exec-depend-packages.txt
276
329
# hadolint ignore=SC2002
277
330
RUN --mount=type=ssh \
278
331
--mount=type=cache,target=/var/cache/apt,sharing=locked \
@@ -306,7 +359,7 @@ ARG LIB_DIR
306
359
ARG SETUP_ARGS
307
360
308
361
# Set up runtime environment and artifacts
309
- COPY --from=rosdep-depend /rosdep-exec-depend-packages.txt /tmp/rosdep-exec-depend-packages.txt
362
+ COPY --from=rosdep-universe- depend /rosdep-exec-depend-packages.txt /tmp/rosdep-exec-depend-packages.txt
310
363
# hadolint ignore=SC2002
311
364
RUN --mount=type=ssh \
312
365
--mount=type=cache,target=/var/cache/apt,sharing=locked \
0 commit comments