|
1 | 1 | ARG FROM_IMAGE=ros:foxy |
2 | | -ARG UNDERLAY_WS=/opt/underlay_ws |
3 | 2 | ARG OVERLAY_WS=/opt/overlay_ws |
4 | 3 |
|
5 | 4 | # multi-stage for caching |
6 | 5 | FROM $FROM_IMAGE AS cacher |
7 | 6 |
|
8 | | -# copy underlay source |
9 | | -ARG UNDERLAY_WS |
10 | | -WORKDIR $UNDERLAY_WS/src |
11 | | -COPY ./ ./ros2-rust/ros2_rust |
12 | | - |
13 | 7 | # clone overlay source |
14 | 8 | ARG OVERLAY_WS |
15 | 9 | WORKDIR $OVERLAY_WS/src |
16 | 10 | COPY ./ros2_rust.repos ../ |
17 | 11 | RUN vcs import ./ < ../ros2_rust.repos && \ |
18 | 12 | find ./ -name ".git" | xargs rm -rf |
| 13 | +COPY ./ ./ros2-rust/ros2_rust |
19 | 14 |
|
20 | 15 | # copy manifests for caching |
21 | 16 | WORKDIR /opt |
@@ -56,49 +51,26 @@ RUN set -eux; \ |
56 | 51 | cargo --version; \ |
57 | 52 | rustc --version; |
58 | 53 |
|
59 | | -# install underlay dependencies |
60 | | -ARG UNDERLAY_WS |
61 | | -WORKDIR $UNDERLAY_WS |
62 | | -COPY --from=cacher /tmp/$UNDERLAY_WS ./ |
63 | | -RUN . /opt/ros/$ROS_DISTRO/setup.sh && \ |
64 | | - apt-get update && rosdep install -q -y \ |
65 | | - --from-paths src \ |
66 | | - --ignore-src \ |
67 | | - && rm -rf /var/lib/apt/lists/* |
68 | | - |
69 | | -# build underlay source |
70 | | -COPY --from=cacher $UNDERLAY_WS ./ |
71 | | -ARG UNDERLAY_MIXINS="release ccache" |
72 | | -ARG FAIL_ON_BUILD_FAILURE=True |
73 | | -RUN . /opt/ros/$ROS_DISTRO/setup.sh && \ |
74 | | - colcon build \ |
75 | | - --symlink-install \ |
76 | | - --mixin $UNDERLAY_MIXINS \ |
77 | | - --event-handlers console_direct+ \ |
78 | | - || ([ -z "$FAIL_ON_BUILD_FAILURE" ] || exit 1) |
79 | | - |
80 | 54 | # install overlay dependencies |
81 | 55 | ARG OVERLAY_WS |
82 | 56 | WORKDIR $OVERLAY_WS |
83 | 57 | COPY --from=cacher /tmp/$OVERLAY_WS ./ |
84 | | -RUN . $UNDERLAY_WS/install/setup.sh && \ |
| 58 | +RUN . /opt/ros/$ROS_DISTRO/setup.sh && \ |
85 | 59 | apt-get update && rosdep install -q -y \ |
86 | 60 | --from-paths src \ |
87 | | - $UNDERLAY_WS/src \ |
88 | 61 | --ignore-src \ |
89 | 62 | && rm -rf /var/lib/apt/lists/* |
90 | 63 |
|
91 | 64 | # build overlay source |
92 | 65 | COPY --from=cacher $OVERLAY_WS ./ |
93 | 66 | ARG OVERLAY_MIXINS="release ccache" |
94 | | -RUN . $UNDERLAY_WS/install/setup.sh && \ |
| 67 | +RUN . /opt/ros/$ROS_DISTRO/setup.sh && \ |
95 | 68 | colcon build \ |
96 | 69 | --symlink-install \ |
97 | 70 | --mixin $OVERLAY_MIXINS \ |
98 | 71 | || ([ -z "$FAIL_ON_BUILD_FAILURE" ] || exit 1) |
99 | 72 |
|
100 | 73 | # source overlay from entrypoint |
101 | | -ENV UNDERLAY_WS $UNDERLAY_WS |
102 | 74 | ENV OVERLAY_WS $OVERLAY_WS |
103 | 75 | RUN sed --in-place \ |
104 | 76 | 's|^source .*|source "$OVERLAY_WS/install/setup.bash"|' \ |
|
0 commit comments