diff --git a/dockerfiles/old_devenv.Dockerfile b/dockerfiles/old_devenv.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8d3dde864e2f281809f4a6573b32d244b5b6e3e2 --- /dev/null +++ b/dockerfiles/old_devenv.Dockerfile @@ -0,0 +1,266 @@ +ARG ROS_DISTRO + +FROM osrf/ros:${ROS_DISTRO}-desktop-full +RUN echo "Building devenv for ROS" $ROS_DISTRO + +# Avoid warnings by switching to noninteractive +ENV DEBIAN_FRONTEND=noninteractive + +# Setup environment +RUN apt-get update && apt-get install -y apt-utils + +RUN apt-get install -y \ + locales \ + && sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en +ENV LC_ALL en_US.UTF-8 + +# Configure apt and install packages +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 \ + checkinstall \ + # clang + clang-format clang-tidy clang-tools clang \ + libc++-dev libc++1 libc++abi-dev \ + libc++abi1 libclang-dev libclang1 \ + libomp-dev libomp5 lld lldb \ + llvm-dev llvm-runtime llvm \ + # ccmake + cmake-curses-gui \ + direnv \ + gdb \ + git \ + git-lfs \ + less \ + nano \ + net-tools \ + openssh-client \ + terminator \ + trash-cli \ + valgrind \ + xterm \ + wget \ + zsh + +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; \ + 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; \ + elif [ "${ROS_DISTRO}" = "melodic" ]; \ + then \ + apt-get -y install \ + ipython \ + python-catkin-tools \ + python-pip \ + python-osrf-pycommon\ + python-vcstool; \ + else \ + echo "Not supported version"; \ + fi + +# Configure system to look for debian packages in the Artifactory repository +COPY auth.conf /etc/apt/auth.conf.d/tecnalia.conf + +# Import the key in order to be able to use the packages from the repository +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897 +RUN curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add - + +# Configure rosdep +RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \ + >> /etc/ros/rosdep/sources.list.d/20-default.list" + +# Install docker-ce +# RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - +# RUN add-apt-repository \ +# "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" +# RUN apt-get update && apt-get -y install \ +# docker-ce \ +# docker-ce-cli \ +# containerd.io \ +# docker-compose-plugin + +# Install pip3 and packages +RUN apt-get install -y \ + python3-pip \ + && 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 \ + && apt-get install -y nodejs && npm -g install yarn + +# 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-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 \ + 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; \ + else \ + echo "Not supported version"; \ + fi + +WORKDIR /tmp/srcs/ +COPY /extra_libs/* ./ + +RUN if [ "${ROS_DISTRO}" = "noetic" ]; \ + then \ + dpkg -i bat*.deb; \ + dpkg -i lsd*.deb; \ + dpkg -i ripgrep*.deb; \ + elif [ "${ROS_DISTRO}" = "melodic" ]; \ + then \ + dpkg -i *.deb; \ + else \ + echo "Not supported version"; \ + fi + +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=24-08-2023 + +# Update final image +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get -y autoremove \ + && apt-get -y autoclean + +# Set entrypoint +COPY ./ros_entrypoint.sh / +RUN chmod a+x /ros_entrypoint.sh + +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["zsh"] +ENV ROS_DISTRO "${ROS_DISTRO}" +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=