Skip to content

Commit 7a3def5

Browse files
authored
feat(docker): add universe-sensing-perception runtime stage (#5172)
* rename stages Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * update docker-bake Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * update actions Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix target Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix inherits Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * feat(docker): separation from `autoware-universe` stage to `autoware-universe-sensing-perception` stage (#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> * fix rebase Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * rename stages Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix bake Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix dockerfile Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix merge Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * add universe-sensing-perception stage Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * update config Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> --------- Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
1 parent 7148b77 commit 7a3def5

File tree

3 files changed

+87
-1
lines changed

3 files changed

+87
-1
lines changed

.github/actions/docker-build-and-push/action.yaml

+24
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,28 @@ runs:
111111
latest=false
112112
suffix=-core-devel${{ inputs.tag-suffix }}
113113
114+
- name: Docker meta for autoware:universe-sensing-perception-devel
115+
id: meta-universe-sensing-perception-devel
116+
uses: docker/metadata-action@v5
117+
with:
118+
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }}
119+
tags: ${{ steps.set-docker-tags.outputs.tags }}
120+
bake-target: docker-metadata-action-universe-sensing-perception-devel
121+
flavor: |
122+
latest=false
123+
suffix=-universe-sensing-perception-devel${{ inputs.tag-suffix }}
124+
125+
- name: Docker meta for autoware:universe-sensing-perception
126+
id: meta-universe-sensing-perception
127+
uses: docker/metadata-action@v5
128+
with:
129+
images: ghcr.io/${{ github.repository_owner }}/${{ inputs.bake-target }}
130+
tags: ${{ steps.set-docker-tags.outputs.tags }}
131+
bake-target: docker-metadata-action-universe-sensing-perception
132+
flavor: |
133+
latest=false
134+
suffix=-universe-sensing-perception${{ inputs.tag-suffix }}
135+
114136
- name: Docker meta for autoware:universe-devel
115137
id: meta-universe-devel
116138
uses: docker/metadata-action@v5
@@ -148,6 +170,8 @@ runs:
148170
docker/docker-bake.hcl
149171
${{ steps.meta-base.outputs.bake-file }}
150172
${{ steps.meta-core-devel.outputs.bake-file }}
173+
${{ steps.meta-universe-sensing-perception-devel.outputs.bake-file }}
174+
${{ steps.meta-universe-sensing-perception.outputs.bake-file }}
151175
${{ steps.meta-universe-devel.outputs.bake-file }}
152176
${{ steps.meta-universe.outputs.bake-file }}
153177
provenance: false

docker/Dockerfile

+41
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,13 @@ RUN rosdep keys --ignore-src --from-paths src \
8585
| sort \
8686
> /rosdep-universe-sensing-perception-depend-packages.txt \
8787
&& cat /rosdep-universe-sensing-perception-depend-packages.txt
88+
RUN rosdep keys --dependency-types=exec --ignore-src --from-paths src \
89+
| xargs rosdep resolve --rosdistro ${ROS_DISTRO} \
90+
| grep -v '^#' \
91+
| sed 's/ \+/\n/g'\
92+
| sort \
93+
> /rosdep-universe-sensing-perception-exec-depend-packages.txt \
94+
&& cat /rosdep-universe-sensing-perception-exec-depend-packages.txt
8895

8996
COPY src/launcher /autoware/src/launcher
9097
COPY src/param /autoware/src/param
@@ -258,6 +265,40 @@ RUN --mount=type=cache,target=${CCACHE_DIR} \
258265
ENTRYPOINT ["/ros_entrypoint.sh"]
259266
CMD ["/bin/bash"]
260267

268+
FROM base AS universe-sensing-perception
269+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
270+
ARG ROS_DISTRO
271+
ARG LIB_DIR
272+
ARG SETUP_ARGS
273+
274+
# 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
276+
# hadolint ignore=SC2002
277+
RUN --mount=type=ssh \
278+
--mount=type=cache,target=/var/cache/apt,sharing=locked \
279+
./setup-dev-env.sh -y --module all ${SETUP_ARGS} --download-artifacts --no-cuda-drivers --runtime openadkit \
280+
&& pip uninstall -y ansible ansible-core \
281+
&& apt-get update \
282+
&& cat /tmp/rosdep-universe-sensing-perception-exec-depend-packages.txt | xargs apt-get install -y --no-install-recommends \
283+
&& apt-get autoremove -y && rm -rf "$HOME"/.cache \
284+
&& find /usr/lib/$LIB_DIR-linux-gnu -name "*.a" -type f -delete \
285+
&& find / -name "*.o" -type f -delete \
286+
&& find / -name "*.h" -type f -delete \
287+
&& find / -name "*.hpp" -type f -delete \
288+
&& rm -rf /autoware/ansible \
289+
/root/.local/pipx /opt/ros/"$ROS_DISTRO"/include /etc/apt/sources.list.d/cuda*.list \
290+
/etc/apt/sources.list.d/docker.list /etc/apt/sources.list.d/nvidia-docker.list \
291+
/usr/include /usr/share/doc /usr/lib/gcc /usr/lib/jvm /usr/lib/llvm*
292+
293+
COPY --from=universe-sensing-perception-devel /opt/autoware /opt/autoware
294+
295+
# Copy bash aliases
296+
COPY docker/etc/.bash_aliases /root/.bash_aliases
297+
RUN echo "source /opt/autoware/setup.bash" > /etc/bash.bashrc
298+
299+
ENTRYPOINT ["/ros_entrypoint.sh"]
300+
CMD ["/bin/bash"]
301+
261302
FROM base AS universe
262303
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
263304
ARG ROS_DISTRO

docker/docker-bake.hcl

+22-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
group "default" {
2-
targets = ["base", "core-devel", "universe-devel", "universe"]
2+
targets = [
3+
"base",
4+
"core-devel",
5+
"universe-sensing-perception-devel",
6+
"universe-sensing-perception",
7+
"universe-devel",
8+
"universe"
9+
]
310
}
411

512
// For docker/metadata-action
613
target "docker-metadata-action-base" {}
714
target "docker-metadata-action-core-devel" {}
15+
target "docker-metadata-action-universe-sensing-perception-devel" {}
16+
target "docker-metadata-action-universe-sensing-perception" {}
817
target "docker-metadata-action-universe-devel" {}
918
target "docker-metadata-action-universe" {}
1019

@@ -20,6 +29,18 @@ target "core-devel" {
2029
target = "core-devel"
2130
}
2231

32+
target "universe-sensing-perception-devel" {
33+
inherits = ["docker-metadata-action-universe-sensing-perception-devel"]
34+
dockerfile = "docker/Dockerfile"
35+
target = "universe-sensing-perception-devel"
36+
}
37+
38+
target "universe-sensing-perception" {
39+
inherits = ["docker-metadata-action-universe-sensing-perception"]
40+
dockerfile = "docker/Dockerfile"
41+
target = "universe-sensing-perception"
42+
}
43+
2344
target "universe-devel" {
2445
inherits = ["docker-metadata-action-universe-devel"]
2546
dockerfile = "docker/Dockerfile"

0 commit comments

Comments
 (0)