Skip to content
Snippets Groups Projects
Commit f78a6262 authored by Montaño Sarria, Andres Felipe's avatar Montaño Sarria, Andres Felipe
Browse files

Add backup file with workspace dependencies into docker file

parent 5cb69c2e
No related branches found
No related tags found
No related merge requests found
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=
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment