build ros rolling image

This commit is contained in:
EricX-Zhao
2026-02-12 15:40:17 +03:00
parent 4c6b249a22
commit f746822e61
12 changed files with 186 additions and 6 deletions
+57 -1
View File
@@ -15,11 +15,14 @@ FROM ${VENDOR_PACKAGES_IMAGE} AS vendor_images
FROM ${CC_PLATFORM_IMAGE} AS ros_builder
WORKDIR /workspace
COPY --from=ros_src /workspace /workspace
COPY --from=vendor_images ${TARGET_SYSROOT} ${TARGET_SYSROOT}
COPY ros2/ros_cpp /workspace/src/ros_cpp
RUN touch src/ros2/geometry2/tf2_bullet/COLCON_IGNORE \
&& touch src/ros2/rosbag2/rosbag2_storage_sqlite3/COLCON_IGNORE
&& touch src/ros2/rosbag2/rosbag2_storage_sqlite3/COLCON_IGNORE \
&& touch src/ros-perception/image_transport_plugins/theora_image_transport/COLCON_IGNORE
RUN MAKEFLAGS="-j6" colcon build \
--executor parallel \
@@ -36,3 +39,56 @@ RUN MAKEFLAGS="-j6" colcon build \
-DBUILD_TESTING=OFF \
-DTRACETOOLS_DISABLED=ON \
-DCV_BRIDGE_DISABLE_PYTHON=ON
# pybind11 python soabi issue
WORKDIR ${TARGET_SYSROOT}/lib/python3.10/site-packages/rclpy
RUN mv _rclpy_pybind11.cpython-310-x86_64-linux-gnu.so _rclpy_pybind11.cpython-310-aarch64-linux-gnu.so
WORKDIR ${TARGET_SYSROOT}/lib/python3.10/site-packages/rosbag2_py
RUN mv _transport.cpython-310-x86_64-linux-gnu.so _transport.cpython-310-aarch64-linux-gnu.so
RUN mv _info.cpython-310-x86_64-linux-gnu.so _info.cpython-310-aarch64-linux-gnu.so
RUN mv _compression_options.cpython-310-x86_64-linux-gnu.so _compression_options.cpython-310-aarch64-linux-gnu.so
RUN mv _storage.cpython-310-x86_64-linux-gnu.so _storage.cpython-310-aarch64-linux-gnu.so
RUN mv _reindexer.cpython-310-x86_64-linux-gnu.so _reindexer.cpython-310-aarch64-linux-gnu.so
RUN mv _writer.cpython-310-x86_64-linux-gnu.so _writer.cpython-310-aarch64-linux-gnu.so
RUN mv _message_definitions.cpython-310-x86_64-linux-gnu.so _message_definitions.cpython-310-aarch64-linux-gnu.so
RUN mv _reader.cpython-310-x86_64-linux-gnu.so _reader.cpython-310-aarch64-linux-gnu.so
FROM ${CC_PLATFORM_IMAGE} AS rmw_zenoh_builder
COPY --from=ros_builder ${TARGET_SYSROOT} ${TARGET_SYSROOT}
# rust install
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
RUN . "$HOME/.cargo/env" \
&& rustup install 1.75.0 \
&& rustup default 1.75.0 \
&& rustup target add aarch64-unknown-linux-gnu
RUN mkdir rmw_zenoh_ws/src -p \
&& cd rmw_zenoh_ws/src \
&& git clone -b rolling https://github.com/ros2/rmw_zenoh.git
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-none-linux-gnu-gcc
RUN . "$HOME/.cargo/env" \
&& . ${TARGET_SYSROOT}/local_setup.sh \
&& colcon build \
--install-base ${TARGET_SYSROOT} \
--merge-install \
--packages-up-to rmw_zenoh_cpp \
--cmake-force-configure \
--cmake-args \
--no-warn-unused-cli \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=${CC_TOOLCHAIN_FILE} \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DBUILD_TESTING=OFF \
-DZENOHC_CUSTOM_TARGET=aarch64-unknown-linux-gnu
RUN cp -rf ${TARGET_SYSROOT}/opt/zenoh_cpp_vendor/include ${TARGET_SYSROOT}
RUN cp -rf ${TARGET_SYSROOT}/opt/zenoh_cpp_vendor/lib ${TARGET_SYSROOT}
RUN rm -rf ${TARGET_SYSROOT}/opt
FROM ${CC_PLATFORM_IMAGE} AS final
COPY --from=rmw_zenoh_builder ${TARGET_SYSROOT} ${TARGET_SYSROOT}
-2
View File
@@ -17,8 +17,6 @@
<depend>opencv_vendor</depend> -->
<depend>console_bridge_vendor</depend>
<depend>rcl_lifecycle</depend>
<!-- rcl repo -->
<depend>rcl_lifecycle</depend>
+12
View File
@@ -419,3 +419,15 @@ repositories:
type: git
url: https://github.com/ros2/console_bridge_vendor.git
version: rolling
ros2/libyaml_vendor:
type: git
url: https://github.com/ros2/libyaml_vendor.git
version: rolling
ros2/spdlog_vendor:
type: git
url: https://github.com/ros2/spdlog_vendor.git
version: rolling
ros2/yaml_cpp_vendor:
type: git
url: https://github.com/ros2/yaml_cpp_vendor.git
version: rolling