From bbe441c45e6d726bf346709b0009a1e99486d82b Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Tue, 3 Sep 2024 16:28:25 +0900 Subject: [PATCH 1/8] split depend stage Signed-off-by: Yutaka Kondo --- docker/Dockerfile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 37546ea600f..99c5c83f511 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -59,6 +59,7 @@ RUN rosdep update && rosdep keys --ignore-src --from-paths src \ | sort \ > /rosdep-core-depend-packages.txt \ && cat /rosdep-core-depend-packages.txt + COPY src/universe/external /autoware/src/universe/external COPY src/universe/autoware.universe/common /autoware/src/universe/autoware.universe/common # TODO(youtalk): Remove COPYs when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved @@ -71,6 +72,25 @@ RUN rosdep keys --ignore-src --from-paths src \ | sort \ > /rosdep-universe-common-depend-packages.txt \ && cat /rosdep-universe-common-depend-packages.txt + +FROM rosdep-depend AS autoware-universe-sensing-perception-depend +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO + +COPY src/universe/autoware.universe/perception /autoware/src/universe/autoware.universe/perception +COPY src/universe/autoware.universe/sensing /autoware/src/universe/autoware.universe/sensing +RUN rosdep keys --ignore-src --from-paths src \ + | xargs rosdep resolve --rosdistro ${ROS_DISTRO} \ + | grep -v '^#' \ + | sed 's/ \+/\n/g'\ + | sort \ + > /rosdep-universe-common-depend-packages.txt \ + && cat /rosdep-universe-sensing-perception-depend-packages.txt + +FROM rosdep-depend AS autoware-universe-depend +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO + COPY src/launcher /autoware/src/launcher COPY src/param /autoware/src/param COPY src/sensor_component /autoware/src/sensor_component @@ -84,6 +104,7 @@ RUN rosdep keys --ignore-src --from-paths src \ | sort \ > /rosdep-universe-depend-packages.txt \ && cat /rosdep-universe-depend-packages.txt + RUN rosdep keys --dependency-types=exec --ignore-src --from-paths src \ | xargs rosdep resolve --rosdistro ${ROS_DISTRO} \ | grep -v '^#' \ From 0f21eb1090d358df1784671bb06060951f87413e Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Tue, 3 Sep 2024 17:13:18 +0900 Subject: [PATCH 2/8] add s/p stage Signed-off-by: Yutaka Kondo --- docker/Dockerfile | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 99c5c83f511..7914e611a15 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -178,6 +178,37 @@ RUN --mount=type=cache,target=${CCACHE_DIR} \ && du -sh ${CCACHE_DIR} && ccache -s \ && rm -rf /autoware/build +FROM autoware-universe-common AS autoware-universe-sensing-perception +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO +ENV CCACHE_DIR="/root/.ccache" + +# Install rosdep dependencies +COPY --from=rosdep-depend /rosdep-universe-sensing-perception-depend-packages.txt /tmp/rosdep-universe-sensing-perception-depend-packages.txt +# hadolint ignore=SC2002 +RUN --mount=type=ssh \ + apt-get update \ + && cat /tmp/rosdep-universe-sensing-perception-depend-packages.txt | xargs apt-get install -y --no-install-recommends \ + && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache + +# hadolint ignore=SC1091 +RUN --mount=type=cache,target=${CCACHE_DIR} \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \ + source /opt/ros/"$ROS_DISTRO"/setup.bash \ + && source /opt/autoware/setup.bash \ + && du -sh ${CCACHE_DIR} && ccache -s \ + && colcon build --cmake-args \ + " -Wno-dev" \ + " --no-warn-unused-cli" \ + --merge-install \ + --install-base /opt/autoware \ + --mixin release compile-commands ccache \ + && du -sh ${CCACHE_DIR} && ccache -s \ + && rm -rf /autoware/build + +CMD ["/bin/bash"] + FROM autoware-universe-common AS autoware-universe SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -191,6 +222,7 @@ RUN --mount=type=ssh \ && cat /tmp/rosdep-universe-depend-packages.txt | xargs apt-get install -y --no-install-recommends \ && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache +COPY --from=autoware-universe /opt/autoware /opt/autoware # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \ @@ -202,9 +234,7 @@ RUN --mount=type=cache,target=${CCACHE_DIR} \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/launch,target=/autoware/src/universe/autoware.universe/launch \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/localization,target=/autoware/src/universe/autoware.universe/localization \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/map,target=/autoware/src/universe/autoware.universe/map \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/planning,target=/autoware/src/universe/autoware.universe/planning \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/simulator,target=/autoware/src/universe/autoware.universe/simulator \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/tools,target=/autoware/src/universe/autoware.universe/tools \ From 334dd4a6be08dba85290681d9cde7b64ad6171bb Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Tue, 3 Sep 2024 17:24:33 +0900 Subject: [PATCH 3/8] fix Signed-off-by: Yutaka Kondo --- docker/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 7914e611a15..5f9e9d86fdb 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -184,7 +184,7 @@ ARG ROS_DISTRO ENV CCACHE_DIR="/root/.ccache" # Install rosdep dependencies -COPY --from=rosdep-depend /rosdep-universe-sensing-perception-depend-packages.txt /tmp/rosdep-universe-sensing-perception-depend-packages.txt +COPY --from=autoware-universe-sensing-perception-depend /rosdep-universe-sensing-perception-depend-packages.txt /tmp/rosdep-universe-sensing-perception-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ apt-get update \ @@ -215,14 +215,14 @@ ARG ROS_DISTRO ENV CCACHE_DIR="/root/.ccache" # Install rosdep dependencies -COPY --from=rosdep-depend /rosdep-universe-depend-packages.txt /tmp/rosdep-universe-depend-packages.txt +COPY --from=autoware-universe-depend /rosdep-universe-depend-packages.txt /tmp/rosdep-universe-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ apt-get update \ && cat /tmp/rosdep-universe-depend-packages.txt | xargs apt-get install -y --no-install-recommends \ && apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/* "$HOME"/.cache -COPY --from=autoware-universe /opt/autoware /opt/autoware +COPY --from=autoware-universe-sensing-perception /opt/autoware /opt/autoware # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ --mount=type=bind,from=rosdep-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \ @@ -277,7 +277,7 @@ ARG LIB_DIR ARG SETUP_ARGS # Set up runtime environment and artifacts -COPY --from=rosdep-depend /rosdep-exec-depend-packages.txt /tmp/rosdep-exec-depend-packages.txt +COPY --from=autoware-universe-depend /rosdep-exec-depend-packages.txt /tmp/rosdep-exec-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ --mount=type=cache,target=/var/cache/apt,sharing=locked \ From 0be97ab46b6a28f1ca4089e1b344665fc67c79c5 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Tue, 3 Sep 2024 17:29:08 +0900 Subject: [PATCH 4/8] rename Signed-off-by: Yutaka Kondo --- docker/Dockerfile | 54 +++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 5f9e9d86fdb..b4224e32225 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -34,7 +34,7 @@ RUN --mount=type=ssh \ CMD ["/bin/bash"] # hadolint ignore=DL3006 -FROM $BASE_IMAGE AS rosdep-depend +FROM $BASE_IMAGE AS autoware-core-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -73,7 +73,7 @@ RUN rosdep keys --ignore-src --from-paths src \ > /rosdep-universe-common-depend-packages.txt \ && cat /rosdep-universe-common-depend-packages.txt -FROM rosdep-depend AS autoware-universe-sensing-perception-depend +FROM autoware-core-depend AS autoware-universe-sensing-perception-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -87,7 +87,7 @@ RUN rosdep keys --ignore-src --from-paths src \ > /rosdep-universe-common-depend-packages.txt \ && cat /rosdep-universe-sensing-perception-depend-packages.txt -FROM rosdep-depend AS autoware-universe-depend +FROM autoware-core-depend AS autoware-universe-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -126,7 +126,7 @@ RUN --mount=type=ssh \ && apt-get autoremove -y && rm -rf "$HOME"/.cache # Install rosdep dependencies -COPY --from=rosdep-depend /rosdep-core-depend-packages.txt /tmp/rosdep-core-depend-packages.txt +COPY --from=autoware-core-depend /rosdep-core-depend-packages.txt /tmp/rosdep-core-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ apt-get update \ @@ -134,7 +134,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ && apt-get autoremove -y && rm -rf "$HOME"/.cache RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/core,target=/autoware/src/core \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/core,target=/autoware/src/core \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ && colcon build --cmake-args \ @@ -152,7 +152,7 @@ ARG ROS_DISTRO ENV CCACHE_DIR="/root/.ccache" # Install rosdep dependencies -COPY --from=rosdep-depend /rosdep-universe-common-depend-packages.txt /tmp/rosdep-universe-common-depend-packages.txt +COPY --from=autoware-core-depend /rosdep-universe-common-depend-packages.txt /tmp/rosdep-universe-common-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ apt-get update \ @@ -162,10 +162,10 @@ RUN --mount=type=ssh \ # TODO(youtalk): Remove COPYs when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \ - --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 \ - --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 \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher,target=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils,target=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ @@ -193,8 +193,8 @@ RUN --mount=type=ssh \ # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \ + --mount=type=bind,from=autoware-universe-sensing-perception-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \ + --mount=type=bind,from=autoware-universe-sensing-perception-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ @@ -225,21 +225,21 @@ RUN --mount=type=ssh \ COPY --from=autoware-universe-sensing-perception /opt/autoware /opt/autoware # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/param,target=/autoware/src/param \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/sensor_component,target=/autoware/src/sensor_component \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/sensor_kit,target=/autoware/src/sensor_kit \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/control,target=/autoware/src/universe/autoware.universe/control \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/evaluator,target=/autoware/src/universe/autoware.universe/evaluator \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/launch,target=/autoware/src/universe/autoware.universe/launch \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/localization,target=/autoware/src/universe/autoware.universe/localization \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/map,target=/autoware/src/universe/autoware.universe/map \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/planning,target=/autoware/src/universe/autoware.universe/planning \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/simulator,target=/autoware/src/universe/autoware.universe/simulator \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/tools,target=/autoware/src/universe/autoware.universe/tools \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/vehicle,target=/autoware/src/universe/autoware.universe/vehicle \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/vehicle,target=/autoware/src/vehicle \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/param,target=/autoware/src/param \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/sensor_component,target=/autoware/src/sensor_component \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/sensor_kit,target=/autoware/src/sensor_kit \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/control,target=/autoware/src/universe/autoware.universe/control \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/evaluator,target=/autoware/src/universe/autoware.universe/evaluator \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/launch,target=/autoware/src/universe/autoware.universe/launch \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/localization,target=/autoware/src/universe/autoware.universe/localization \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/map,target=/autoware/src/universe/autoware.universe/map \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/planning,target=/autoware/src/universe/autoware.universe/planning \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/simulator,target=/autoware/src/universe/autoware.universe/simulator \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/tools,target=/autoware/src/universe/autoware.universe/tools \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/vehicle,target=/autoware/src/universe/autoware.universe/vehicle \ + --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/vehicle,target=/autoware/src/vehicle \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ From a575df0f7eae50d12c07cb112ff8d3f754d7d539 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Tue, 3 Sep 2024 17:50:37 +0900 Subject: [PATCH 5/8] fix Signed-off-by: Yutaka Kondo --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index b4224e32225..8dd738d3e70 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -84,7 +84,7 @@ RUN rosdep keys --ignore-src --from-paths src \ | grep -v '^#' \ | sed 's/ \+/\n/g'\ | sort \ - > /rosdep-universe-common-depend-packages.txt \ + > /rosdep-universe-sensing-perception-depend-packages.txt \ && cat /rosdep-universe-sensing-perception-depend-packages.txt FROM autoware-core-depend AS autoware-universe-depend From e642a7884275b2a3738dba346f369ac5cce4bf12 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Tue, 3 Sep 2024 21:43:04 +0900 Subject: [PATCH 6/8] revert rename Signed-off-by: Yutaka Kondo --- docker/Dockerfile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 8dd738d3e70..a379522a906 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -34,7 +34,7 @@ RUN --mount=type=ssh \ CMD ["/bin/bash"] # hadolint ignore=DL3006 -FROM $BASE_IMAGE AS autoware-core-depend +FROM $BASE_IMAGE AS rosdep-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -73,7 +73,7 @@ RUN rosdep keys --ignore-src --from-paths src \ > /rosdep-universe-common-depend-packages.txt \ && cat /rosdep-universe-common-depend-packages.txt -FROM autoware-core-depend AS autoware-universe-sensing-perception-depend +FROM rosdep-depend AS autoware-universe-sensing-perception-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -87,7 +87,7 @@ RUN rosdep keys --ignore-src --from-paths src \ > /rosdep-universe-sensing-perception-depend-packages.txt \ && cat /rosdep-universe-sensing-perception-depend-packages.txt -FROM autoware-core-depend AS autoware-universe-depend +FROM rosdep-depend AS autoware-universe-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -126,7 +126,7 @@ RUN --mount=type=ssh \ && apt-get autoremove -y && rm -rf "$HOME"/.cache # Install rosdep dependencies -COPY --from=autoware-core-depend /rosdep-core-depend-packages.txt /tmp/rosdep-core-depend-packages.txt +COPY --from=rosdep-depend /rosdep-core-depend-packages.txt /tmp/rosdep-core-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ apt-get update \ @@ -134,7 +134,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ && apt-get autoremove -y && rm -rf "$HOME"/.cache RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/core,target=/autoware/src/core \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/core,target=/autoware/src/core \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ && colcon build --cmake-args \ @@ -152,7 +152,7 @@ ARG ROS_DISTRO ENV CCACHE_DIR="/root/.ccache" # Install rosdep dependencies -COPY --from=autoware-core-depend /rosdep-universe-common-depend-packages.txt /tmp/rosdep-universe-common-depend-packages.txt +COPY --from=rosdep-depend /rosdep-universe-common-depend-packages.txt /tmp/rosdep-universe-common-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ apt-get update \ @@ -162,10 +162,10 @@ RUN --mount=type=ssh \ # TODO(youtalk): Remove COPYs when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher,target=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils,target=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \ + --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 \ + --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 \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ From 52e534f907327d52e721bb98f54d7cc40d934768 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Wed, 4 Sep 2024 09:26:46 +0900 Subject: [PATCH 7/8] Revert "revert rename" This reverts commit 789ee21e00f65cc3f09b29614e266c54d9ec9b05. --- docker/Dockerfile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index a379522a906..8dd738d3e70 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -34,7 +34,7 @@ RUN --mount=type=ssh \ CMD ["/bin/bash"] # hadolint ignore=DL3006 -FROM $BASE_IMAGE AS rosdep-depend +FROM $BASE_IMAGE AS autoware-core-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -73,7 +73,7 @@ RUN rosdep keys --ignore-src --from-paths src \ > /rosdep-universe-common-depend-packages.txt \ && cat /rosdep-universe-common-depend-packages.txt -FROM rosdep-depend AS autoware-universe-sensing-perception-depend +FROM autoware-core-depend AS autoware-universe-sensing-perception-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -87,7 +87,7 @@ RUN rosdep keys --ignore-src --from-paths src \ > /rosdep-universe-sensing-perception-depend-packages.txt \ && cat /rosdep-universe-sensing-perception-depend-packages.txt -FROM rosdep-depend AS autoware-universe-depend +FROM autoware-core-depend AS autoware-universe-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -126,7 +126,7 @@ RUN --mount=type=ssh \ && apt-get autoremove -y && rm -rf "$HOME"/.cache # Install rosdep dependencies -COPY --from=rosdep-depend /rosdep-core-depend-packages.txt /tmp/rosdep-core-depend-packages.txt +COPY --from=autoware-core-depend /rosdep-core-depend-packages.txt /tmp/rosdep-core-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ apt-get update \ @@ -134,7 +134,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ && apt-get autoremove -y && rm -rf "$HOME"/.cache RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/core,target=/autoware/src/core \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/core,target=/autoware/src/core \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ && colcon build --cmake-args \ @@ -152,7 +152,7 @@ ARG ROS_DISTRO ENV CCACHE_DIR="/root/.ccache" # Install rosdep dependencies -COPY --from=rosdep-depend /rosdep-universe-common-depend-packages.txt /tmp/rosdep-universe-common-depend-packages.txt +COPY --from=autoware-core-depend /rosdep-universe-common-depend-packages.txt /tmp/rosdep-universe-common-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ apt-get update \ @@ -162,10 +162,10 @@ RUN --mount=type=ssh \ # TODO(youtalk): Remove COPYs when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \ - --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 \ - --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 \ - --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher,target=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils,target=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils \ + --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ From 7be2a6f0845c8dc95c3ea238b44828a9fbbff8a1 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Wed, 4 Sep 2024 10:54:18 +0900 Subject: [PATCH 8/8] simplify rosdep-depend Signed-off-by: Yutaka Kondo --- docker/Dockerfile | 64 +++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 8dd738d3e70..f053916daea 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -34,7 +34,7 @@ RUN --mount=type=ssh \ CMD ["/bin/bash"] # hadolint ignore=DL3006 -FROM $BASE_IMAGE AS autoware-core-depend +FROM $BASE_IMAGE AS rosdep-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -73,10 +73,6 @@ RUN rosdep keys --ignore-src --from-paths src \ > /rosdep-universe-common-depend-packages.txt \ && cat /rosdep-universe-common-depend-packages.txt -FROM autoware-core-depend AS autoware-universe-sensing-perception-depend -SHELL ["/bin/bash", "-o", "pipefail", "-c"] -ARG ROS_DISTRO - COPY src/universe/autoware.universe/perception /autoware/src/universe/autoware.universe/perception COPY src/universe/autoware.universe/sensing /autoware/src/universe/autoware.universe/sensing RUN rosdep keys --ignore-src --from-paths src \ @@ -87,10 +83,6 @@ RUN rosdep keys --ignore-src --from-paths src \ > /rosdep-universe-sensing-perception-depend-packages.txt \ && cat /rosdep-universe-sensing-perception-depend-packages.txt -FROM autoware-core-depend AS autoware-universe-depend -SHELL ["/bin/bash", "-o", "pipefail", "-c"] -ARG ROS_DISTRO - COPY src/launcher /autoware/src/launcher COPY src/param /autoware/src/param COPY src/sensor_component /autoware/src/sensor_component @@ -126,7 +118,7 @@ RUN --mount=type=ssh \ && apt-get autoremove -y && rm -rf "$HOME"/.cache # Install rosdep dependencies -COPY --from=autoware-core-depend /rosdep-core-depend-packages.txt /tmp/rosdep-core-depend-packages.txt +COPY --from=rosdep-depend /rosdep-core-depend-packages.txt /tmp/rosdep-core-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ apt-get update \ @@ -134,7 +126,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ && apt-get autoremove -y && rm -rf "$HOME"/.cache RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/core,target=/autoware/src/core \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/core,target=/autoware/src/core \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ && colcon build --cmake-args \ @@ -152,7 +144,7 @@ ARG ROS_DISTRO ENV CCACHE_DIR="/root/.ccache" # Install rosdep dependencies -COPY --from=autoware-core-depend /rosdep-universe-common-depend-packages.txt /tmp/rosdep-universe-common-depend-packages.txt +COPY --from=rosdep-depend /rosdep-universe-common-depend-packages.txt /tmp/rosdep-universe-common-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ apt-get update \ @@ -162,10 +154,10 @@ RUN --mount=type=ssh \ # TODO(youtalk): Remove COPYs when https://github.com/autowarefoundation/autoware.universe/issues/8695 is resolved # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher,target=/autoware/src/universe/autoware.universe/simulator/dummy_perception_publisher \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils,target=/autoware/src/universe/autoware.universe/vehicle/autoware_vehicle_info_utils \ - --mount=type=bind,from=autoware-core-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/common,target=/autoware/src/universe/autoware.universe/common \ + --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 \ + --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 \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/external,target=/autoware/src/universe/external \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ @@ -184,7 +176,7 @@ ARG ROS_DISTRO ENV CCACHE_DIR="/root/.ccache" # Install rosdep dependencies -COPY --from=autoware-universe-sensing-perception-depend /rosdep-universe-sensing-perception-depend-packages.txt /tmp/rosdep-universe-sensing-perception-depend-packages.txt +COPY --from=rosdep-depend /rosdep-universe-sensing-perception-depend-packages.txt /tmp/rosdep-universe-sensing-perception-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ apt-get update \ @@ -193,8 +185,8 @@ RUN --mount=type=ssh \ # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=autoware-universe-sensing-perception-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \ - --mount=type=bind,from=autoware-universe-sensing-perception-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/perception,target=/autoware/src/universe/autoware.universe/perception \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/sensing,target=/autoware/src/universe/autoware.universe/sensing \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ @@ -215,7 +207,7 @@ ARG ROS_DISTRO ENV CCACHE_DIR="/root/.ccache" # Install rosdep dependencies -COPY --from=autoware-universe-depend /rosdep-universe-depend-packages.txt /tmp/rosdep-universe-depend-packages.txt +COPY --from=rosdep-depend /rosdep-universe-depend-packages.txt /tmp/rosdep-universe-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ apt-get update \ @@ -225,21 +217,21 @@ RUN --mount=type=ssh \ COPY --from=autoware-universe-sensing-perception /opt/autoware /opt/autoware # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/param,target=/autoware/src/param \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/sensor_component,target=/autoware/src/sensor_component \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/sensor_kit,target=/autoware/src/sensor_kit \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/control,target=/autoware/src/universe/autoware.universe/control \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/evaluator,target=/autoware/src/universe/autoware.universe/evaluator \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/launch,target=/autoware/src/universe/autoware.universe/launch \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/localization,target=/autoware/src/universe/autoware.universe/localization \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/map,target=/autoware/src/universe/autoware.universe/map \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/planning,target=/autoware/src/universe/autoware.universe/planning \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/simulator,target=/autoware/src/universe/autoware.universe/simulator \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/tools,target=/autoware/src/universe/autoware.universe/tools \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/universe/autoware.universe/vehicle,target=/autoware/src/universe/autoware.universe/vehicle \ - --mount=type=bind,from=autoware-universe-depend,source=/autoware/src/vehicle,target=/autoware/src/vehicle \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/param,target=/autoware/src/param \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/sensor_component,target=/autoware/src/sensor_component \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/sensor_kit,target=/autoware/src/sensor_kit \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/control,target=/autoware/src/universe/autoware.universe/control \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/evaluator,target=/autoware/src/universe/autoware.universe/evaluator \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/launch,target=/autoware/src/universe/autoware.universe/launch \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/localization,target=/autoware/src/universe/autoware.universe/localization \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/map,target=/autoware/src/universe/autoware.universe/map \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/planning,target=/autoware/src/universe/autoware.universe/planning \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/simulator,target=/autoware/src/universe/autoware.universe/simulator \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/system,target=/autoware/src/universe/autoware.universe/system \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/tools,target=/autoware/src/universe/autoware.universe/tools \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/universe/autoware.universe/vehicle,target=/autoware/src/universe/autoware.universe/vehicle \ + --mount=type=bind,from=rosdep-depend,source=/autoware/src/vehicle,target=/autoware/src/vehicle \ source /opt/ros/"$ROS_DISTRO"/setup.bash \ && source /opt/autoware/setup.bash \ && du -sh ${CCACHE_DIR} && ccache -s \ @@ -277,7 +269,7 @@ ARG LIB_DIR ARG SETUP_ARGS # Set up runtime environment and artifacts -COPY --from=autoware-universe-depend /rosdep-exec-depend-packages.txt /tmp/rosdep-exec-depend-packages.txt +COPY --from=rosdep-depend /rosdep-exec-depend-packages.txt /tmp/rosdep-exec-depend-packages.txt # hadolint ignore=SC2002 RUN --mount=type=ssh \ --mount=type=cache,target=/var/cache/apt,sharing=locked \