From 433fa9a535dcef7e79d001679635dadce7c1d0d5 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Tue, 3 Mar 2026 17:56:55 +0000 Subject: [PATCH 1/5] feat: add cyclone dds support --- base.dockerfile | 7 ++++++- cuda.dockerfile | 7 ++++++- docker/cyclonedds.xml | 10 ++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 docker/cyclonedds.xml diff --git a/base.dockerfile b/base.dockerfile index 9eda8c9..708f27f 100644 --- a/base.dockerfile +++ b/base.dockerfile @@ -18,6 +18,7 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y \ wget \ unzip \ ros-${ROS_DISTRO}-ros-base \ + ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \ python3-colcon-common-extensions \ && rm -rf /var/lib/apt/lists/* @@ -37,12 +38,16 @@ RUN groupadd --gid $USER_GID $USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME \ && rm -rf /var/lib/apt/lists/* +COPY ./docker/cyclonedds.xml /etc/cyclonedds.xml + # Configure bash profile RUN echo "if [ -f /etc/bash.bashrc ]; then source /etc/bash.bashrc; fi" >> /root/.bashrc && \ echo 'PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "' >> /etc/bash.bashrc && \ echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> /etc/bash.bashrc && \ echo "alias t='tmux'" >> /etc/bash.bashrc && \ - echo "alias cls='clear'" >> /etc/bash.bashrc + echo "alias cls='clear'" >> /etc/bash.bashrc && \ + echo "RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" >> /etc/bash.bashrc && \ + echo "CYCLONEDDS_URI=file:///etc/cyclonedds.xml" >> /etc/bash.bashrc CMD ["bash", "-l"] diff --git a/cuda.dockerfile b/cuda.dockerfile index 3093ba2..6e99ea4 100644 --- a/cuda.dockerfile +++ b/cuda.dockerfile @@ -39,9 +39,12 @@ RUN add-apt-repository universe \ RUN apt-get update && apt-get install -y --no-install-recommends \ ros-${ROS_DISTRO}-ros-base \ + ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \ python3-rosdep \ && rm -rf /var/lib/apt/lists/* +COPY ./docker/cyclonedds.xml /etc/cyclonedds.xml + RUN . /opt/ros/${ROS_DISTRO}/setup.sh && rosdep init && rosdep update # Setup VirtualGL @@ -68,7 +71,9 @@ RUN echo "if [ -f /etc/bash.bashrc ]; then source /etc/bash.bashrc; fi" >> /root echo 'PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "' >> /etc/bash.bashrc && \ echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> /etc/bash.bashrc && \ echo "alias t='tmux'" >> /etc/bash.bashrc && \ - echo "alias cls='clear'" >> /etc/bash.bashrc + echo "alias cls='clear'" >> /etc/bash.bashrc && \ + echo "RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" >> /etc/bash.bashrc && \ + echo "CYCLONEDDS_URI=file:///etc/cyclonedds.xml" >> /etc/bash.bashrc ENV TVNC_VGL=1 ENV VGL_ISACTIVE=1 diff --git a/docker/cyclonedds.xml b/docker/cyclonedds.xml new file mode 100644 index 0000000..82132ff --- /dev/null +++ b/docker/cyclonedds.xml @@ -0,0 +1,10 @@ + + + + true + + + auto + + + \ No newline at end of file From 73c5495d05d16f5d9b2c90059575fa887571c135 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Tue, 3 Mar 2026 18:01:36 +0000 Subject: [PATCH 2/5] fix: correct path --- base.dockerfile | 2 +- cuda.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/base.dockerfile b/base.dockerfile index 708f27f..373d682 100644 --- a/base.dockerfile +++ b/base.dockerfile @@ -38,7 +38,7 @@ RUN groupadd --gid $USER_GID $USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME \ && rm -rf /var/lib/apt/lists/* -COPY ./docker/cyclonedds.xml /etc/cyclonedds.xml +COPY docker/cyclonedds.xml /etc/cyclonedds.xml # Configure bash profile RUN echo "if [ -f /etc/bash.bashrc ]; then source /etc/bash.bashrc; fi" >> /root/.bashrc && \ diff --git a/cuda.dockerfile b/cuda.dockerfile index 6e99ea4..bcac7f5 100644 --- a/cuda.dockerfile +++ b/cuda.dockerfile @@ -43,7 +43,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ python3-rosdep \ && rm -rf /var/lib/apt/lists/* -COPY ./docker/cyclonedds.xml /etc/cyclonedds.xml +COPY docker/cyclonedds.xml /etc/cyclonedds.xml RUN . /opt/ros/${ROS_DISTRO}/setup.sh && rosdep init && rosdep update From 66e284edf18f013dd00cea043942fb27f74964c8 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Tue, 3 Mar 2026 18:06:27 +0000 Subject: [PATCH 3/5] fix: update path to match context not sure if this is the right way of doing this or not --- base.dockerfile | 2 +- cuda.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/base.dockerfile b/base.dockerfile index 373d682..0aa5c74 100644 --- a/base.dockerfile +++ b/base.dockerfile @@ -38,7 +38,7 @@ RUN groupadd --gid $USER_GID $USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME \ && rm -rf /var/lib/apt/lists/* -COPY docker/cyclonedds.xml /etc/cyclonedds.xml +COPY cyclonedds.xml /etc/cyclonedds.xml # Configure bash profile RUN echo "if [ -f /etc/bash.bashrc ]; then source /etc/bash.bashrc; fi" >> /root/.bashrc && \ diff --git a/cuda.dockerfile b/cuda.dockerfile index bcac7f5..10cf513 100644 --- a/cuda.dockerfile +++ b/cuda.dockerfile @@ -43,7 +43,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ python3-rosdep \ && rm -rf /var/lib/apt/lists/* -COPY docker/cyclonedds.xml /etc/cyclonedds.xml +COPY cyclonedds.xml /etc/cyclonedds.xml RUN . /opt/ros/${ROS_DISTRO}/setup.sh && rosdep init && rosdep update From c2666828d4cc7c33e24503c3aea795397b4d06e1 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Tue, 3 Mar 2026 18:21:26 +0000 Subject: [PATCH 4/5] fix: isolate cyclonedds steps --- base.dockerfile | 9 +++++++-- cuda.dockerfile | 6 +++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/base.dockerfile b/base.dockerfile index 0aa5c74..d872173 100644 --- a/base.dockerfile +++ b/base.dockerfile @@ -12,16 +12,16 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get upgrade -y && apt-get install -y \ build-essential \ + ca-certificates \ cmake \ git \ curl \ wget \ unzip \ ros-${ROS_DISTRO}-ros-base \ - ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \ python3-colcon-common-extensions \ && rm -rf /var/lib/apt/lists/* - + RUN . /opt/ros/${ROS_DISTRO}/setup.sh && rosdep update ARG USERNAME=ros @@ -38,6 +38,10 @@ RUN groupadd --gid $USER_GID $USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME \ && rm -rf /var/lib/apt/lists/* +# Cyclone DDS +RUN apt-get update && apt-get upgrade -y && apt-get install -y \ + ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \ + && rm -rf /var/lib/apt/lists/* COPY cyclonedds.xml /etc/cyclonedds.xml # Configure bash profile @@ -49,5 +53,6 @@ RUN echo "if [ -f /etc/bash.bashrc ]; then source /etc/bash.bashrc; fi" >> /root echo "RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" >> /etc/bash.bashrc && \ echo "CYCLONEDDS_URI=file:///etc/cyclonedds.xml" >> /etc/bash.bashrc +USER ros CMD ["bash", "-l"] diff --git a/cuda.dockerfile b/cuda.dockerfile index 10cf513..3b591bc 100644 --- a/cuda.dockerfile +++ b/cuda.dockerfile @@ -17,6 +17,7 @@ RUN apt-get update ; \ apt-get install -y --no-install-recommends \ locales \ curl \ + ca-certificates \ gnupg2 \ lsb-release \ git \ @@ -39,10 +40,13 @@ RUN add-apt-repository universe \ RUN apt-get update && apt-get install -y --no-install-recommends \ ros-${ROS_DISTRO}-ros-base \ - ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \ python3-rosdep \ && rm -rf /var/lib/apt/lists/* +# Cyclone DDS +RUN apt-get update && apt-get upgrade -y && apt-get install -y \ + ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \ + && rm -rf /var/lib/apt/lists/* COPY cyclonedds.xml /etc/cyclonedds.xml RUN . /opt/ros/${ROS_DISTRO}/setup.sh && rosdep init && rosdep update From a08160bfcde278a89c2624e0d3ee1cce6564a878 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Tue, 3 Mar 2026 18:31:29 +0000 Subject: [PATCH 5/5] ci: maybe apt clean will fix this? --- base.dockerfile | 3 ++- cuda.dockerfile | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/base.dockerfile b/base.dockerfile index d872173..adda351 100644 --- a/base.dockerfile +++ b/base.dockerfile @@ -10,7 +10,8 @@ ENV ROS_DISTRO=${ROS_DISTRO} ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update && apt-get upgrade -y && apt-get install -y \ +RUN apt-get clean && rm -rf /var/cache/apt/archives/* &&\ + apt-get update && apt-get upgrade -y && apt-get install -y \ build-essential \ ca-certificates \ cmake \ diff --git a/cuda.dockerfile b/cuda.dockerfile index 3b591bc..1a228d8 100644 --- a/cuda.dockerfile +++ b/cuda.dockerfile @@ -12,7 +12,8 @@ ENV ROS_DISTRO=${ROS_DISTRO} ENV DEBIAN_FRONTEND=noninteractive # Install language -RUN apt-get update ; \ +RUN apt-get clean && rm -rf /var/cache/apt/archives/* && \ + apt-get update ; \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends \ locales \