diff --git a/.github/actions/docker-build-and-push/action.yaml b/.github/actions/docker-build-and-push/action.yaml index c12e65de07..648910e0fe 100644 --- a/.github/actions/docker-build-and-push/action.yaml +++ b/.github/actions/docker-build-and-push/action.yaml @@ -103,16 +103,16 @@ runs: flavor: | latest=false - - name: Docker meta for autoware:universe-common-devel - id: meta-universe-common-devel + - name: Docker meta for autoware:universe-external-devel + id: meta-universe-external-devel uses: docker/metadata-action@v5 with: images: ${{ github.repository_owner }}/${{ inputs.target-image }} tags: | - type=raw,value=universe-common-devel-${{ inputs.platform }} - type=raw,value=universe-common-devel-${{ steps.date.outputs.date }}-${{ inputs.platform }} - type=ref,event=tag,prefix=universe-common-devel-,suffix=-${{ inputs.platform }} - bake-target: docker-metadata-action-universe-common-devel + type=raw,value=universe-external-devel-${{ inputs.platform }} + type=raw,value=universe-external-devel-${{ steps.date.outputs.date }}-${{ inputs.platform }} + type=ref,event=tag,prefix=universe-external-devel-,suffix=-${{ inputs.platform }} + bake-target: docker-metadata-action-universe-external-devel flavor: | latest=false @@ -288,7 +288,7 @@ runs: ${{ steps.meta-core-external-devel.outputs.bake-file }} ${{ steps.meta-core.outputs.bake-file }} ${{ steps.meta-core-devel.outputs.bake-file }} - ${{ steps.meta-universe-common-devel.outputs.bake-file }} + ${{ steps.meta-universe-external-devel.outputs.bake-file }} ${{ steps.meta-universe-sensing-perception-devel.outputs.bake-file }} ${{ steps.meta-universe-sensing-perception.outputs.bake-file }} ${{ steps.meta-universe-localization-mapping-devel.outputs.bake-file }} diff --git a/docker/Dockerfile b/docker/Dockerfile index 637ea42d9a..95b0c1bb92 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -46,6 +46,10 @@ RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} --dependency-ty && cat /rosdep-core-exec-depend-packages.txt COPY src/universe/external /autoware/src/universe/external +RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ + > /rosdep-universe-external-depend-packages.txt \ + && cat /rosdep-universe-external-depend-packages.txt + COPY src/universe/autoware.universe/common /autoware/src/universe/autoware.universe/common RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ > /rosdep-universe-common-depend-packages.txt \ @@ -199,7 +203,31 @@ RUN --mount=type=cache,target=${CCACHE_DIR} \ ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["/bin/bash"] -FROM core-devel AS universe-common-devel +FROM core-devel AS universe-external-devel +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO +ENV CCACHE_DIR="/root/.ccache" + +# Install rosdep dependencies +COPY --from=rosdep-depend /rosdep-universe-external-depend-packages.txt /tmp/rosdep-universe-external-depend-packages.txt +# hadolint ignore=SC2002 +RUN --mount=type=ssh \ + --mount=type=cache,target=/var/cache/apt,sharing=locked \ + apt-get update \ + && cat /tmp/rosdep-universe-external-depend-packages.txt | xargs apt-get install -y --no-install-recommends \ + && /autoware/cleanup_apt.sh + +# hadolint ignore=SC1091 +RUN --mount=type=cache,target=${CCACHE_DIR} \ + --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 \ + && /autoware/build_and_clean.sh ${CCACHE_DIR} /opt/autoware + +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["/bin/bash"] + +FROM universe-external-devel AS universe-common-devel SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO ENV CCACHE_DIR="/root/.ccache" @@ -216,7 +244,6 @@ 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/common,target=/autoware/src/universe/autoware.universe/common \ - --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 \ && /autoware/build_and_clean.sh ${CCACHE_DIR} /opt/autoware diff --git a/docker/docker-bake.hcl b/docker/docker-bake.hcl index 85faa7f373..f6c552fa40 100644 --- a/docker/docker-bake.hcl +++ b/docker/docker-bake.hcl @@ -3,7 +3,7 @@ group "default" { "core-external-devel", "core", "core-devel", - "universe-common-devel", + "universe-external-devel", "universe-sensing-perception-devel", "universe-sensing-perception", "universe-localization-mapping-devel", @@ -23,7 +23,7 @@ group "default" { target "docker-metadata-action-core-external-devel" {} target "docker-metadata-action-core" {} target "docker-metadata-action-core-devel" {} -target "docker-metadata-action-universe-common-devel" {} +target "docker-metadata-action-universe-external-devel" {} target "docker-metadata-action-universe-sensing-perception-devel" {} target "docker-metadata-action-universe-sensing-perception" {} target "docker-metadata-action-universe-localization-mapping-devel" {} @@ -55,10 +55,10 @@ target "core-devel" { target = "core-devel" } -target "universe-common-devel" { - inherits = ["docker-metadata-action-universe-common-devel"] +target "universe-external-devel" { + inherits = ["docker-metadata-action-universe-external-devel"] dockerfile = "docker/Dockerfile" - target = "universe-common-devel" + target = "universe-external-devel" } target "universe-sensing-perception-devel" {