Select Git revision
-
Bilbao Arechabala, Sonia authoredBilbao Arechabala, Sonia authored
melodic.Dockerfile 6.66 KiB
FROM osrf/ros:melodic-desktop-full
ENV ROS_DISTRO melodic
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && 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 \
gnupg-agent \
software-properties-common \
apt-utils dialog 2>&1 \
# Verify if git, process tools, lsb-release (common in install instructions for CLIs) are installed
# Install the https transport support package for The Artifactory debian repository
git \
git-lfs \
nano \
less \
clang-format \
direnv \
xterm \
terminator \
zsh \
#
ipython \
python-catkin-tools \
python-numpy \
python-osrf-pycommon \
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
# 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 --no-install-recommends \
# docker-ce \
# docker-ce-cli \
# containerd.io \
# docker-compose-plugin
# && rm -rf /var/lib/apt/lists/*
# Configure system to look for debian packages in the Artifactory repository
# ARG USER_API_KEY_ARTIFACTS_TECNALIA
# RUN sh -c "echo \
# 'deb https://${USER_API_KEY_ARTIFACTS_TECNALIA}@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \
# >> /etc/apt/sources.list.d/tecnalia.list"
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
# 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"
# Ros WS dependencies
RUN apt-get update && apt-get install -y \
ros-${ROS_DISTRO}-abb-driver \
ros-${ROS_DISTRO}-ackermann-msgs \
ros-${ROS_DISTRO}-amcl \
ros-${ROS_DISTRO}-ar-track-alvar \
ros-${ROS_DISTRO}-ar-track-alvar-msgs \
ros-${ROS_DISTRO}-catkin-virtualenv \
ros-${ROS_DISTRO}-effort-controllers \
ros-${ROS_DISTRO}-eigen-conversions \
ros-${ROS_DISTRO}-eigen-stl-containers \
ros-${ROS_DISTRO}-executive-smach-visualization \
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}-image-view \
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}-interactive-marker-twist-server \
ros-${ROS_DISTRO}-joint-state-publisher-gui \
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 \
ros-${ROS_DISTRO}-moveit-opw-kinematics-plugin \
ros-${ROS_DISTRO}-moveit-resources \
ros-${ROS_DISTRO}-moveit-visual-tools \
ros-${ROS_DISTRO}-navigation \
ros-${ROS_DISTRO}-realsense2-camera \
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}-rqt-controller-manager \
ros-${ROS_DISTRO}-rqt-joint-trajectory-controller \
ros-${ROS_DISTRO}-rviz-visual-tools \
ros-${ROS_DISTRO}-serial \
ros-${ROS_DISTRO}-spacenav-node \
ros-${ROS_DISTRO}-srdfdom \
ros-${ROS_DISTRO}-swri-profiler \
ros-${ROS_DISTRO}-teb-local-planner \
ros-${ROS_DISTRO}-trac-ik-kinematics-plugin \
ros-${ROS_DISTRO}-twist-mux \
ros-${ROS_DISTRO}-ur-msgs \
ros-${ROS_DISTRO}-usb-cam \
ros-${ROS_DISTRO}-velocity-controllers \
#
python-funcsigs \
python-lxml \
python-mock \
python-pyside \
python-qt4 \
python-qt4-dev \
python-zmq \
#
libbluetooth-dev \
libcanberra-gtk-module \
libcanberra-gtk0 \
libcanberra-gtk3-module \
libceres-dev \
libcomedi-dev \
libcwiid-dev \
libdouble-conversion-dev \
libglfw3-dev \
libmodbus-dev \
libpyside-dev \
libqd-dev \
libshiboken-dev \
libspnav-dev \
#
gir1.2-gtk-3.0 \
graphviz \
shiboken \
spacenavd \
sqlite3 \
systemd \
xdot
# Install Zivid packages
#RUN wget https://www.zivid.com/hubfs/softwarefiles/releases/1.8.3+96f35dc6-1/u18/zivid-telicam-driver_3.0.1.1-1_amd64.deb \
# https://www.zivid.com/hubfs/softwarefiles/releases/1.8.3+96f35dc6-1/u18/zivid_1.8.3+96f35dc6-1_amd64.deb \
# https://www.zivid.com/hubfs/softwarefiles/releases/1.8.3+96f35dc6-1/u18/zivid-studio_1.8.3+96f35dc6-1_amd64.deb \
# https://www.zivid.com/hubfs/softwarefiles/releases/1.8.3+96f35dc6-1/u18/zivid-tools_1.8.3+96f35dc6-1_amd64.deb
#RUN dpkg -i zivid*.deb
# Fix errors
#RUN mv /usr/include/flann/ext/lz4.h /usr/include/flann/ext/lz4.h.bak
#RUN mv /usr/include/flann/ext/lz4hc.h /usr/include/flann/ext/lz4.h.bak
#RUN ln -s /usr/include/lz4.h /usr/include/flann/ext/lz4.h
#RUN ln -s /usr/include/lz4hc.h /usr/include/flann/ext/lz4hc.h
# Python 3
RUN apt-get update && apt-get install -y \
python3-catkin-pkg-modules \
python3-gi \
python3-gi-cairo \
python3-numpy \
python3-pip \
ipython3
RUN pip3 install sqlite-utils
# Install node for UIs
# RUN curl -fsSLk https://deb.nodesource.com/setup_14.x | bash - \
# && apt-get install -y -qq nodejs \
# && npm install -g yarn
RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash \
&& apt-get install -y nodejs && npm -g install yarn
# Update final image
RUN apt-get update && apt-get -y upgrade && apt-get -y autoremove
RUN apt-get clean
# Set entrypoint
COPY ./ros_entrypoint.sh /
RUN chmod a+x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["zsh"]
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=