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

New docker file with support for requirements (dependencies) comming from text file

parent 99b5ea99
No related branches found
No related tags found
No related merge requests found
......@@ -16,8 +16,9 @@ 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 \
# Configure apt and install ubuntu-base packages
RUN apt-get update && \
apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
curl \
......@@ -42,48 +43,29 @@ RUN apt-get update && apt-get -y install --no-install-recommends \
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
# ZSH tools based on ubuntu version
WORKDIR /tmp/srcs/
COPY /extra_libs/* ./
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" ]; \
RUN if [ "${ROS_DISTRO}" = "melodic" ]; \
then \
apt-get -y install \
ipython \
python-catkin-tools \
python-pip \
python-osrf-pycommon\
python-vcstool; \
dpkg -i *.deb; \
else \
echo "Not supported version"; \
dpkg -i bat*.deb; \
dpkg -i lsd*.deb; \
dpkg -i ripgrep*.deb; \
fi
RUN rm -rf *
RUN apt-get --reinstall install -y libnotify-bin notify-osd
# Configure system to look for debian packages in the Artifactory repository
COPY auth.conf /etc/apt/auth.conf.d/tecnalia.conf
......@@ -105,146 +87,58 @@ RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/git
# 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" ]; \
# Install python - python3 packages based on ubuntu version
RUN if [ "${ROS_DISTRO}" = "melodic" ]; \
then \
apt-get update && \
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
ipython \
python-catkin-tools \
python-pip \
python-osrf-pycommon\
python-vcstool; \
else\
apt-get -y install \
ros-${ROS_DISTRO}-moveit \
ros-${ROS_DISTRO}-ros2-control; \
fi
RUN if [ "${ROS_DISTRO}" = "noetic" ]; \
then \
apt-get update && \
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" ]; \
python3-osrf-pycommon \
python3-vcstool \
python3-pip \
# clang
clangd liblldb-dev libllvm-ocaml-dev python3-clang; \
fi
# Install ROS 1 tools
RUN if [ "${ROS_DISTRO}" != "humble" ]; \
then \
apt-get update && \
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"; \
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
WORKDIR /tmp/srcs/
COPY /extra_libs/* ./
# Copy the requirements.txt file into the container
WORKDIR /tmp/dependencies/
COPY /ws_dependencies/* ./
RUN if [ "${ROS_DISTRO}" = "noetic" ]; \
then \
dpkg -i bat*.deb; \
dpkg -i lsd*.deb; \
dpkg -i ripgrep*.deb; \
elif [ "${ROS_DISTRO}" = "melodic" ]; \
# Install the packages listed in ${ROS_DISTRO}_requirements.txt
RUN if [ -f "${ROS_DISTRO}_requirements.txt" ]; \
then \
dpkg -i *.deb; \
else \
echo "Not supported version"; \
apt-get update && \
apt-get install -y $(cat ${ROS_DISTRO}_requirements.txt);\
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
LABEL image.date=17-10-2023
# Update final image
RUN apt-get update \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment