Skip to content

Commit 0483b6d

Browse files
committed
feat(docker): separation from autoware-universe stage to autoware-universe-sensing-perception stage (autowarefoundation#5164)
* split depend stage Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * add s/p stage Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * rename Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * revert rename Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * Revert "revert rename" This reverts commit 789ee21. * simplify rosdep-depend Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> --------- Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
1 parent 1db3521 commit 0483b6d

File tree

1 file changed

+45
-2
lines changed

1 file changed

+45
-2
lines changed

docker/Dockerfile

+45-2
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ RUN rosdep update && rosdep keys --ignore-src --from-paths src \
6262
| sort \
6363
> /rosdep-core-depend-packages.txt \
6464
&& cat /rosdep-core-depend-packages.txt
65+
6566
COPY src/universe/external /autoware/src/universe/external
6667
COPY src/universe/autoware.universe/common /autoware/src/universe/autoware.universe/common
6768
# TODO(youtalk): Remove COPYs when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved
@@ -74,6 +75,17 @@ RUN rosdep keys --ignore-src --from-paths src \
7475
| sort \
7576
> /rosdep-universe-common-depend-packages.txt \
7677
&& cat /rosdep-universe-common-depend-packages.txt
78+
79+
COPY src/universe/autoware.universe/perception /autoware/src/universe/autoware.universe/perception
80+
COPY src/universe/autoware.universe/sensing /autoware/src/universe/autoware.universe/sensing
81+
RUN rosdep keys --ignore-src --from-paths src \
82+
| xargs rosdep resolve --rosdistro ${ROS_DISTRO} \
83+
| grep -v '^#' \
84+
| sed 's/ \+/\n/g'\
85+
| sort \
86+
> /rosdep-universe-sensing-perception-depend-packages.txt \
87+
&& cat /rosdep-universe-sensing-perception-depend-packages.txt
88+
7789
COPY src/launcher /autoware/src/launcher
7890
COPY src/param /autoware/src/param
7991
COPY src/sensor_component /autoware/src/sensor_component
@@ -87,6 +99,7 @@ RUN rosdep keys --ignore-src --from-paths src \
8799
| sort \
88100
> /rosdep-universe-depend-packages.txt \
89101
&& cat /rosdep-universe-depend-packages.txt
102+
90103
RUN rosdep keys --dependency-types=exec --ignore-src --from-paths src \
91104
| xargs rosdep resolve --rosdistro ${ROS_DISTRO} \
92105
| grep -v '^#' \
@@ -167,6 +180,37 @@ RUN --mount=type=cache,target=${CCACHE_DIR} \
167180
ENTRYPOINT ["/ros_entrypoint.sh"]
168181
CMD ["/bin/bash"]
169182

183+
FROM universe-common-devel AS universe-sensing-perception-devel
184+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
185+
ARG ROS_DISTRO
186+
ENV CCACHE_DIR="/root/.ccache"
187+
188+
# Install rosdep dependencies
189+
COPY --from=rosdep-depend /rosdep-universe-sensing-perception-depend-packages.txt /tmp/rosdep-universe-sensing-perception-depend-packages.txt
190+
# hadolint ignore=SC2002
191+
RUN --mount=type=ssh \
192+
apt-get update \
193+
&& cat /tmp/rosdep-universe-sensing-perception-depend-packages.txt | xargs apt-get install -y --no-install-recommends \
194+
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache
195+
196+
# hadolint ignore=SC1091
197+
RUN --mount=type=cache,target=${CCACHE_DIR} \
198+
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \
199+
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \
200+
source /opt/ros/"$ROS_DISTRO"/setup.bash \
201+
&& source /opt/autoware/setup.bash \
202+
&& du -sh ${CCACHE_DIR} && ccache -s \
203+
&& colcon build --cmake-args \
204+
" -Wno-dev" \
205+
" --no-warn-unused-cli" \
206+
--merge-install \
207+
--install-base /opt/autoware \
208+
--mixin release compile-commands ccache \
209+
&& du -sh ${CCACHE_DIR} && ccache -s \
210+
&& rm -rf /autoware/build
211+
212+
CMD ["/bin/bash"]
213+
170214
FROM universe-common-devel AS universe-devel
171215
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
172216
ARG ROS_DISTRO
@@ -180,6 +224,7 @@ RUN --mount=type=ssh \
180224
&& cat /tmp/rosdep-universe-depend-packages.txt | xargs apt-get install -y --no-install-recommends \
181225
&& apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache
182226

227+
COPY --from=universe-sensing-perception-devel /opt/autoware /opt/autoware
183228
# hadolint ignore=SC1091
184229
RUN --mount=type=cache,target=${CCACHE_DIR} \
185230
--mount=type=bind,from=rosdep-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \
@@ -191,9 +236,7 @@ RUN --mount=type=cache,target=${CCACHE_DIR} \
191236
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/launch,target=/autoware/src/universe/autoware.universe/launch \
192237
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/localization,target=/autoware/src/universe/autoware.universe/localization \
193238
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/map,target=/autoware/src/universe/autoware.universe/map \
194-
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \
195239
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/planning,target=/autoware/src/universe/autoware.universe/planning \
196-
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \
197240
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/simulator,target=/autoware/src/universe/autoware.universe/simulator \
198241
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \
199242
--mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/tools,target=/autoware/src/universe/autoware.universe/tools \

0 commit comments

Comments
 (0)