From 28957e5f52af83c88ee7b0ffa08d350babef6ac2 Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Tue, 21 May 2024 21:57:01 -0400 Subject: [PATCH] latest pushes --- docker/Dockerfile.ros1 | 43 ++++++++++++++++--------------- docker/Dockerfile.ros2 | 58 +++++++++++++++++++++++++++--------------- 2 files changed, 59 insertions(+), 42 deletions(-) diff --git a/docker/Dockerfile.ros1 b/docker/Dockerfile.ros1 index 26c8d5e..08cbb8d 100644 --- a/docker/Dockerfile.ros1 +++ b/docker/Dockerfile.ros1 @@ -16,7 +16,7 @@ ARG ROS_ARCHITECTURE_VERSION=latest FROM ronaldsonbellande/bellande_robotic_environment_ros1:latest -SHELL [ "/bin/bash" , "-c" ] +SHELL ["/bin/bash", "-c"] ENV DEBIAN_FRONTEND noninteractive ENV PYTHON_VERSION="3.8" @@ -32,32 +32,33 @@ LABEL author=ronaldsonbellande@gmail.com LABEL ROS_architecture_github_branchtag=${ROS_ARCHITECTURE_VERSION_GIT_BRANCH} LABEL ROS_architecture_github_commit=${ROS_ARCHITECTURE_VERSION_GIT_COMMIT} -# Create local catkin workspace and # copy every package +# Create local catkin workspace RUN mkdir -p $CATKIN_WS/src -COPY ../ ${CATKIN_WS}/src + +# Copy Every Package +COPY ../ ${CATKIN_WS}/src + +# Set the working directory for Catkin WORKDIR $CATKIN_WS -# Set the working directory for catkin +# Initialize and configure catkin workspace +RUN /bin/bash -c "source /opt/ros/$ROS_VERSION/setup.bash && \ + cd $CATKIN_WS && \ + catkin init && \ + catkin config --extend /opt/ros/$ROS_VERSION && \ + catkin config --cmake-args -DCATKIN_ENABLE_TESTING=0" -# Initialize catkin workspace -RUN /bin/bash -c "source /opt/ros/$ROS_VERSION/setup.bash" \ - && catkin init \ - && catkin config --cmake-args -DCATKIN_ENABLE_TESTING=0 +# Install dependencies using rosdep +RUN /bin/bash -c "source /opt/ros/$ROS_VERSION/setup.bash && \ + cd $CATKIN_WS && \ + rosdep update && \ + rosdep install -y --from-paths . --ignore-src --rosdistro $ROS_VERSION" -# Initialize local catkin workspace, install dependencies and build workpsace -RUN echo "source /opt/ros/${ROS_VERSION}/setup.bash" >> ~/.bashrc \ - && source ~/.bashrc - -RUN cd $CATKIN_WS \ - && rosdep update \ - && rosdep fix-permissions \ - && rosdep install -y --from-paths . --ignore-src --rosdistro ${ROS_VERSION} - -# Always source catkin_setup.sh when launching bash +# Always source catkin_setup.sh when launching bash COPY ../scripts/catkin_setup.sh /usr/local/bin/catkin_setup.sh -RUN echo "source /usr/local/bin/catkin_setup.sh" >> /root/.bashrc -RUN chmod +x /usr/local/bin/catkin_setup.sh +RUN echo "source /usr/local/bin/catkin_setup.sh" >> /root/.bashrc && \ + chmod +x /usr/local/bin/catkin_setup.sh -# Run the packages and source +# Run catkin setup script RUN /usr/local/bin/catkin_setup.sh CMD ["/bin/bash"] diff --git a/docker/Dockerfile.ros2 b/docker/Dockerfile.ros2 index be3cc3f..f086f6a 100644 --- a/docker/Dockerfile.ros2 +++ b/docker/Dockerfile.ros2 @@ -16,7 +16,7 @@ ARG ROS_ARCHITECTURE_VERSION=latest FROM ronaldsonbellande/bellande_robotic_environment_ros2:latest -SHELL [ "/bin/bash" , "-c" ] +SHELL ["/bin/bash", "-c"] ENV DEBIAN_FRONTEND noninteractive ENV PYTHON_VERSION="3.8" @@ -25,37 +25,53 @@ ARG ROS_ARCHITECTURE_VERSION_GIT_BRANCH=main ARG ROS_ARCHITECTURE_VERSION_GIT_COMMIT=HEAD ENV ROS_VERSION=foxy -ENV CATKIN_WS=/opt/ros/overlay_ws +ENV COLCON_WS=/opt/ros/overlay_ws LABEL maintainer=ronaldsonbellande@gmail.com LABEL author=ronaldsonbellande@gmail.com LABEL ROS_architecture_github_branchtag=${ROS_ARCHITECTURE_VERSION_GIT_BRANCH} LABEL ROS_architecture_github_commit=${ROS_ARCHITECTURE_VERSION_GIT_COMMIT} -# Create local catkin workspace and # copy every package -RUN mkdir -p $CATKIN_WS/src -COPY ../ ${CATKIN_WS}/src -WORKDIR $CATKIN_WS +# Install necessary tools +RUN apt-get update && \ + apt-get install -y python3-colcon-common-extensions python3-rosdep -# Initialize catkin workspace -RUN /bin/bash -c "source /opt/ros/$ROS_VERSION/setup.bash" \ - && catkin init \ - && catkin config --cmake-args -DCATKIN_ENABLE_TESTING=0 +# Initialize rosdep if not already initialized +RUN if [ ! -f /etc/ros/rosdep/sources.list.d/20-default.list ]; then \ + rosdep init; \ + fi && \ + rosdep update --include-eol-distros || \ + { echo "Retrying rosdep update..."; sleep 5; rosdep update --include-eol-distros; } -# Initialize local catkin workspace, install dependencies and build workpsace -RUN echo "source /opt/ros/${ROS_VERSION}/setup.bash" >> ~/.bashrc \ - && source ~/.bashrc +# Create local colcon workspace +RUN mkdir -p $COLCON_WS/src -RUN cd $CATKIN_WS \ - && rosdep update \ - && rosdep fix-permissions \ - && rosdep install -y --from-paths . --ignore-src --rosdistro ${ROS_VERSION} +# Copy Every Package +COPY ../ ${COLCON_WS}/src -# Always source colcon_setup.sh when launching bash +# Set the working directory for Colcon +WORKDIR $COLCON_WS + +# Source ROS setup.bash +RUN echo "source /opt/ros/$ROS_VERSION/setup.bash" >> ~/.bashrc +RUN /bin/bash -c "source /opt/ros/$ROS_VERSION/setup.bash" + +# Install dependencies using rosdep +RUN /bin/bash -c "source /opt/ros/$ROS_VERSION/setup.bash && \ + cd $COLCON_WS && \ + rosdep update && \ + rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_VERSION" + +# Build the workspace using colcon +RUN /bin/bash -c "source /opt/ros/$ROS_VERSION/setup.bash && \ + cd $COLCON_WS && \ + colcon build --event-handlers console_cohesion+" + +# Always source colcon_setup.sh when launching bash COPY ../scripts/colcon_setup.sh /usr/local/bin/colcon_setup.sh -RUN echo "source /usr/local/bin/colcon_setup.sh" >> /root/.bashrc -RUN chmod +x /usr/local/bin/colcon_setup.sh +RUN echo "source /usr/local/bin/colcon_setup.sh" >> /root/.bashrc && \ + chmod +x /usr/local/bin/colcon_setup.sh -# Run the packages and source +# Run colcon setup script RUN /usr/local/bin/colcon_setup.sh CMD ["/bin/bash"]