diff --git a/dockerfiles/devenv.Dockerfile b/dockerfiles/devenv.Dockerfile index 3f4da36a2a97d1f586871299514f8b3ced234c36..8d3dde864e2f281809f4a6573b32d244b5b6e3e2 100644 --- a/dockerfiles/devenv.Dockerfile +++ b/dockerfiles/devenv.Dockerfile @@ -21,6 +21,7 @@ RUN apt-get update && apt-get -y install --no-install-recommends \ apt-transport-https \ ca-certificates \ curl \ + dbus-x11 \ gnupg-agent \ software-properties-common \ dialog 2>&1 \ @@ -50,37 +51,37 @@ RUN apt-get update && apt-get -y install --no-install-recommends \ RUN if [ "${ROS_DISTRO}" != "humble" ]; \ then \ - apt-get -y install \ - ros-${ROS_DISTRO}-catkin \ - ros-${ROS_DISTRO}-plotjuggler \ - ros-${ROS_DISTRO}-plotjuggler-ros \ - ros-${ROS_DISTRO}-rosmon \ - ros-${ROS_DISTRO}-rqt-controller-manager \ - ros-${ROS_DISTRO}-rqt-joint-trajectory-controller; \ + apt-get -y install \ + ros-${ROS_DISTRO}-catkin \ + ros-${ROS_DISTRO}-plotjuggler \ + ros-${ROS_DISTRO}-plotjuggler-ros \ + ros-${ROS_DISTRO}-rosmon \ + ros-${ROS_DISTRO}-rqt-controller-manager \ + ros-${ROS_DISTRO}-rqt-joint-trajectory-controller; \ fi RUN if [ "${ROS_DISTRO}" = "noetic" ]; \ then \ - apt-get -y install \ - ipython3 \ - python-is-python3 \ - python3-catkin-tools \ - python3-click \ - python3-numpy \ - python3-osrf-pycommon \ - python3-vcstool \ - # clang - clangd liblldb-dev libllvm-ocaml-dev python3-clang; \ + apt-get -y install \ + ipython3 \ + python-is-python3 \ + python3-catkin-tools \ + python3-click \ + python3-numpy \ + python3-osrf-pycommon \ + python3-vcstool \ + # clang + clangd liblldb-dev libllvm-ocaml-dev python3-clang; \ elif [ "${ROS_DISTRO}" = "melodic" ]; \ then \ - apt-get -y install \ - ipython \ - python-catkin-tools \ - python-pip \ - python-osrf-pycommon\ - python-vcstool; \ + apt-get -y install \ + ipython \ + python-catkin-tools \ + python-pip \ + python-osrf-pycommon\ + python-vcstool; \ else \ - echo "Not supported version"; \ + echo "Not supported version"; \ fi # Configure system to look for debian packages in the Artifactory repository @@ -107,7 +108,11 @@ RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/git # Install pip3 and packages RUN apt-get install -y \ python3-pip \ - && pip3 install sqlite_utils + && pip3 install sqlite_utils \ + && pip3 install conan==1.59 \ + && conan config set general.revisions_enabled=1 \ + && conan profile new default --detect > /dev/null \ + && conan profile update settings.compiler=gcc default # Install node for UIs RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash \ @@ -116,98 +121,107 @@ RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash \ # ROS 1 WS dependencies RUN if [ "${ROS_DISTRO}" != "humble" ]; \ then \ - apt-get -y install \ - cython \ - libceres-dev \ - libcomedi-dev \ - libglfw3-dev \ - libmodbus-dev \ - python-numpy \ - python3-mock \ - socat \ - ros-${ROS_DISTRO}-ackermann-msgs \ - ros-${ROS_DISTRO}-amcl \ - ros-${ROS_DISTRO}-cartesian-trajectory-controller \ - ros-${ROS_DISTRO}-chomp-motion-planner \ - ros-${ROS_DISTRO}-collada-urdf \ - ros-${ROS_DISTRO}-effort-controllers \ - ros-${ROS_DISTRO}-force-torque-sensor-controller \ - ros-${ROS_DISTRO}-gmapping \ - ros-${ROS_DISTRO}-hector-gazebo-plugins \ - ros-${ROS_DISTRO}-hector-mapping \ - ros-${ROS_DISTRO}-imu-complementary-filter \ - ros-${ROS_DISTRO}-imu-tools \ - ros-${ROS_DISTRO}-industrial-core \ - ros-${ROS_DISTRO}-industrial-robot-simulator \ - ros-${ROS_DISTRO}-industrial-robot-status-controller \ - ros-${ROS_DISTRO}-industrial-robot-status-interface \ - ros-${ROS_DISTRO}-interactive-marker-twist-server \ - ros-${ROS_DISTRO}-joint-trajectory-controller \ - ros-${ROS_DISTRO}-joy \ - ros-${ROS_DISTRO}-lms1xx \ - ros-${ROS_DISTRO}-map-server \ - ros-${ROS_DISTRO}-mavros-msgs \ - ros-${ROS_DISTRO}-move-base \ - ros-${ROS_DISTRO}-moveit-commander \ - ros-${ROS_DISTRO}-moveit-fake-controller-manager \ - ros-${ROS_DISTRO}-moveit-planners-chomp \ - ros-${ROS_DISTRO}-moveit-planners-ompl \ - ros-${ROS_DISTRO}-moveit-resources \ - ros-${ROS_DISTRO}-moveit-ros-benchmarks \ - ros-${ROS_DISTRO}-moveit-ros-move-group \ - ros-${ROS_DISTRO}-moveit-ros-planning-interface \ - ros-${ROS_DISTRO}-moveit-ros-visualization \ - ros-${ROS_DISTRO}-moveit-ros-warehouse \ - ros-${ROS_DISTRO}-moveit-setup-assistant\ - ros-${ROS_DISTRO}-moveit-simple-controller-manager \ - ros-${ROS_DISTRO}-moveit-visual-tools \ - ros-${ROS_DISTRO}-navigation \ - ros-${ROS_DISTRO}-pass-through-controllers \ - ros-${ROS_DISTRO}-pilz-industrial-motion \ - ros-${ROS_DISTRO}-rc-visard \ - ros-${ROS_DISTRO}-realsense2-camera \ - ros-${ROS_DISTRO}-realsense2-description \ - ros-${ROS_DISTRO}-robot-localization \ - ros-${ROS_DISTRO}-ros-control \ - ros-${ROS_DISTRO}-ros-control-boilerplate \ - ros-${ROS_DISTRO}-ros-controllers \ - ros-${ROS_DISTRO}-rosbridge-server \ - ros-${ROS_DISTRO}-scaled-joint-trajectory-controller \ - ros-${ROS_DISTRO}-serial \ - ros-${ROS_DISTRO}-spacenav-node \ - ros-${ROS_DISTRO}-speed-scaling-interface \ - ros-${ROS_DISTRO}-speed-scaling-state-controller \ - ros-${ROS_DISTRO}-teb-local-planner \ - ros-${ROS_DISTRO}-trac-ik-kinematics-plugin \ - ros-${ROS_DISTRO}-twist-controller \ - ros-${ROS_DISTRO}-twist-mux \ - ros-${ROS_DISTRO}-ur-client-library \ - ros-${ROS_DISTRO}-ur-msgs \ - ros-${ROS_DISTRO}-usb-cam \ - ros-${ROS_DISTRO}-velocity-controllers \ - ros-${ROS_DISTRO}-warehouse-ros-mongo; \ + apt-get -y install \ + cython \ + libceres-dev \ + libcomedi-dev \ + libglfw3-dev \ + libmodbus-dev \ + python-numpy \ + python3-mock \ + socat \ + ros-${ROS_DISTRO}-ackermann-msgs \ + ros-${ROS_DISTRO}-amcl \ + ros-${ROS_DISTRO}-cartesian-trajectory-controller \ + ros-${ROS_DISTRO}-chomp-motion-planner \ + ros-${ROS_DISTRO}-collada-urdf \ + ros-${ROS_DISTRO}-effort-controllers \ + ros-${ROS_DISTRO}-force-torque-sensor-controller \ + ros-${ROS_DISTRO}-gmapping \ + ros-${ROS_DISTRO}-hector-gazebo-plugins \ + ros-${ROS_DISTRO}-hector-mapping \ + ros-${ROS_DISTRO}-imu-complementary-filter \ + ros-${ROS_DISTRO}-imu-tools \ + ros-${ROS_DISTRO}-industrial-core \ + ros-${ROS_DISTRO}-industrial-robot-simulator \ + ros-${ROS_DISTRO}-industrial-robot-status-controller \ + ros-${ROS_DISTRO}-industrial-robot-status-interface \ + ros-${ROS_DISTRO}-interactive-marker-twist-server \ + ros-${ROS_DISTRO}-joint-trajectory-controller \ + ros-${ROS_DISTRO}-joy \ + ros-${ROS_DISTRO}-lms1xx \ + ros-${ROS_DISTRO}-map-server \ + ros-${ROS_DISTRO}-mavros-msgs \ + ros-${ROS_DISTRO}-move-base \ + ros-${ROS_DISTRO}-moveit-commander \ + ros-${ROS_DISTRO}-moveit-fake-controller-manager \ + ros-${ROS_DISTRO}-moveit-planners-chomp \ + ros-${ROS_DISTRO}-moveit-planners-ompl \ + ros-${ROS_DISTRO}-moveit-resources \ + ros-${ROS_DISTRO}-moveit-ros-benchmarks \ + ros-${ROS_DISTRO}-moveit-ros-control-interface \ + ros-${ROS_DISTRO}-moveit-ros-move-group \ + ros-${ROS_DISTRO}-moveit-ros-planning-interface \ + ros-${ROS_DISTRO}-moveit-ros-visualization \ + ros-${ROS_DISTRO}-moveit-ros-warehouse \ + ros-${ROS_DISTRO}-moveit-setup-assistant \ + ros-${ROS_DISTRO}-moveit-simple-controller-manager \ + ros-${ROS_DISTRO}-moveit-visual-tools \ + ros-${ROS_DISTRO}-navigation \ + ros-${ROS_DISTRO}-pass-through-controllers \ + ros-${ROS_DISTRO}-pilz-industrial-motion \ + ros-${ROS_DISTRO}-rc-visard \ + ros-${ROS_DISTRO}-realsense2-camera \ + ros-${ROS_DISTRO}-realsense2-description \ + ros-${ROS_DISTRO}-robot-localization \ + ros-${ROS_DISTRO}-ros-control \ + ros-${ROS_DISTRO}-ros-control-boilerplate \ + ros-${ROS_DISTRO}-ros-controllers \ + ros-${ROS_DISTRO}-ros-industrial-cmake-boilerplate \ + ros-${ROS_DISTRO}-rosbridge-server \ + ros-${ROS_DISTRO}-scaled-joint-trajectory-controller \ + ros-${ROS_DISTRO}-serial \ + ros-${ROS_DISTRO}-spacenav-node \ + ros-${ROS_DISTRO}-speed-scaling-interface \ + ros-${ROS_DISTRO}-speed-scaling-state-controller \ + ros-${ROS_DISTRO}-teb-local-planner \ + ros-${ROS_DISTRO}-trac-ik-kinematics-plugin \ + ros-${ROS_DISTRO}-twist-controller \ + ros-${ROS_DISTRO}-twist-mux \ + ros-${ROS_DISTRO}-ur-client-library \ + ros-${ROS_DISTRO}-ur-msgs \ + ros-${ROS_DISTRO}-usb-cam \ + ros-${ROS_DISTRO}-velocity-controllers \ + ros-${ROS_DISTRO}-warehouse-ros-mongo; \ + # ROS2 Humble dpendencies + else \ + apt-get -y install \ + ros-${ROS_DISTRO}-moveit \ + ros-${ROS_DISTRO}-ros2-control; \ fi RUN if [ "${ROS_DISTRO}" = "noetic" ]; \ then \ - apt-get -y install \ - ipython3 \ - python-is-python3 \ - python3-catkin-tools \ - python3-click \ - python3-numpy \ - python3-osrf-pycommon; \ + apt-get -y install \ + ipython3 \ + python-is-python3 \ + python3-catkin-tools \ + python3-click \ + ros-${ROS_DISTRO}-libpcan \ + python3-numpy \ + python3-tk \ + python3-osrf-pycommon; \ elif [ "${ROS_DISTRO}" = "melodic" ]; \ then \ - apt-get -y install \ - ros-${ROS_DISTRO}-ar-track-alvar \ - python-mock \ - python-funcsigs \ - python-sqlalchemy \ - python3-rospkg-modules \ - python3-yaml; \ + apt-get -y install \ + ros-${ROS_DISTRO}-ar-track-alvar \ + python-mock \ + python-funcsigs \ + python-sqlalchemy \ + python3-rospkg-modules \ + python3-yaml; \ else \ - echo "Not supported version"; \ + echo "Not supported version"; \ fi WORKDIR /tmp/srcs/ @@ -215,14 +229,14 @@ COPY /extra_libs/* ./ RUN if [ "${ROS_DISTRO}" = "noetic" ]; \ then \ - dpkg -i bat*.deb; \ - dpkg -i lsd*.deb; \ - dpkg -i ripgrep*.deb; \ + dpkg -i bat*.deb; \ + dpkg -i lsd*.deb; \ + dpkg -i ripgrep*.deb; \ elif [ "${ROS_DISTRO}" = "melodic" ]; \ then \ - dpkg -i *.deb; \ + dpkg -i *.deb; \ else \ - echo "Not supported version"; \ + echo "Not supported version"; \ fi RUN rm -rf * @@ -230,11 +244,13 @@ RUN rm -rf * RUN apt-get --reinstall install -y libnotify-bin notify-osd # Update this date to re-run the image final update -LABEL image.date=03-02-2023 +LABEL image.date=24-08-2023 # Update final image RUN apt-get update \ - && apt-get -y upgrade + && apt-get -y upgrade \ + && apt-get -y autoremove \ + && apt-get -y autoclean # Set entrypoint COPY ./ros_entrypoint.sh / @@ -247,4 +263,4 @@ ENV SHELL /usr/bin/zsh ENV RUNNING_IN_DOCKER true # Switch back to dialog for any ad-hoc use of apt-get -ENV DEBIAN_FRONTEND= \ No newline at end of file +ENV DEBIAN_FRONTEND=