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

Remove / change location of neurondones dockerfiles

parent 03e78c24
Branches
No related tags found
No related merge requests found
# ROS Development Environment
Docker file to generate docker images for neurondones project.
## Prerequisites
### Rocker
[**rocker**](https://github.com/osrf/rocker) is a tool to run docker images with customized local support injected for things like nvidia video cards support.
#### rocker installation
```bash
sudo apt-get install python3-rocker
```
#### OYR (off-your-rocker) pluging for rocker
[**OYR**](https://github.com/sloretz/off-your-rocker) is a plugin for rocker that allows to run docker images with extra parameteers and configurations.
In this project OYR is used to launch a docker container with a named volume, not supported by rocker.
```bash
pip3 install git+https://github.com/sloretz/off-your-rocker.git
```
## Build image
```bash
docker build -t neurondones:noetic --build-arg ROS_DISTRO=noetic -f neurondones.Dockerfile .
```
## Launch container
```bash
rocker --home --ssh --git --user --privileged --nvidia --volume /dev:/dev --x11 --network host --name neurondones neurondones:noetic bash
```
# Lits of the particular libs to install in noetic docker image
#libk4a1.4_1.4.1_amd64.deb
https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.4/libk4a1.4_1.4.1_amd64.deb
#libk4a1.4-dev_1.4.1_amd64.deb
https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.4-dev/libk4a1.4-dev_1.4.1_amd64.deb
#k4a-tools_1.4.1_amd64.deb
https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/k/k4a-tools/k4a-tools_1.4.1_amd64.deb
ARG ROS_DISTRO
FROM osrf/ros:${ROS_DISTRO}-desktop-full
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# 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
# NOV - 2023
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 4B63CF8FDE49746E98FA01DDAD19BAB3CBF125EA
# 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 ubuntu-base 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 \
gawk \
gdb \
git \
git-lfs \
less \
nano \
net-tools \
openssh-client \
trash-cli \
valgrind \
wget \
xterm
# Install pip3 and packages
RUN apt-get install -y \
python3-pip \
&& pip3 install sqlite_utils \
&& pip3 install transforms3d
# Install conan for Kortex driver
RUN if [ "$ROS_DISTRO" = "noetic" ]; \
then \
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; \
fi
# Copy the requirements.txt file into the container
WORKDIR /tmp/dependencies/
COPY /ws_dependencies/* ./
# Install the packages listed in ${ROS_DISTRO}_requirements.txt
RUN if [ -f "${ROS_DISTRO}_requirements.txt" ]; \
then \
apt-get update && \
awk '/^# APT-GET PACKAGES/,/^# PIP PACKAGES/' ${ROS_DISTRO}_requirements.txt | grep -v '^#' | xargs apt-get install -y && \
apt-get clean; \
fi
# Install pip packages
RUN if [ -f "${ROS_DISTRO}_requirements.txt" ]; \
then \
awk '/^# PIP PACKAGES/,0' ${ROS_DISTRO}_requirements.txt | grep -v '^#' | xargs -r -n1 pip install ;\
fi
RUN rm -rf *
# Install extra libs from .deb files
WORKDIR /tmp/srcs/
COPY /extra_libs/* ./
# Workaround for Azure Kinect
RUN if [ "$ROS_DISTRO" = "noetic" ]; \
then \
echo 'libk4a1.4 libk4a1.4/accepted-eula-hash string 0f5d5c5de396e4fee4c0753a21fee0c1ed726cf0316204edda484f08cb266d76' | debconf-set-selections \
&& echo 'libk4abt1.0 libk4abt1.0/accepted-eula-hash string 03a13b63730639eeb6626d24fd45cf25131ee8e8e0df3f1b63f552269b176e38' | debconf-set-selections \
&& wget https://raw.githubusercontent.com/microsoft/Azure-Kinect-Sensor-SDK/develop/scripts/99-k4a.rules \
&& mkdir -p udev/rules.d \
&& mv 99-k4a.rules udev/rules.d/ \
&& cp --parents udev/rules.d/99-k4a.rules /etc; \
fi
# Extra libs, e.g. vtk-7.1_20221201-1_amd64.deb
RUN if [ -f "${ROS_DISTRO}_libs.txt" ]; \
then \
grep -v '^#' ${ROS_DISTRO}_libs.txt | xargs wget \
&& dpkg -i *.deb;\
fi
RUN rm -rf *
# Update this date to re-run the image final update
LABEL image.date=09-01-2024
# Set entrypoint
COPY ./ros_entrypoint.sh /
RUN chmod a+x /ros_entrypoint.sh
ENV ROS_DISTRO "${ROS_DISTRO}"
ENV RUNNING_IN_DOCKER true
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
ENTRYPOINT ["/ros_entrypoint.sh"]
\ No newline at end of file
#!/bin/bash
# Setup ros environment
source "/opt/ros/$ROS_DISTRO/setup.bash"
exec "$@"
\ No newline at end of file
# APT-GET PACKAGES
# Base
python3-catkin-tools
ipython3
python-is-python3
python3-click
python3-numpy
python3-osrf-pycommon
python3-vcstool
python3-pip
clangd
liblldb-dev
libllvm-ocaml-dev
python3-clang
ros-noetic-catkin
ros-noetic-plotjuggler
ros-noetic-plotjuggler-ros
ros-noetic-rosmon
ros-noetic-rqt-controller-manager
ros-noetic-rqt-joint-trajectory-controller
ros-noetic-code-coverage
# Neurondones
ros-noetic-libpcan
ros-noetic-moveit-ros-move-group
ros-noetic-moveit-fake-controller-manager
ros-noetic-moveit-kinematics
ros-noetic-moveit-planners-ompl
ros-noetic-moveit-ros-visualization
ros-noetic-moveit-setup-assistant
ros-noetic-ros-control
ros-noetic-ros-controllers
ros-noetic-moveit-ros-planning-interface
ros-noetic-moveit-commander
ros-noetic-moveit-planners
ros-noetic-moveit-simple-controller-manager
ros-noetic-moveit-ros-control-interface
ros-noetic-moveit-msgs
ros-noetic-ros-control-boilerplate
ros-noetic-joy
ros-noetic-spacenav-node
spacenavd
# -- vision
libgflags-dev
libsoundio1
ros-noetic-aruco-ros
# PIP PACKAGES
# EOF
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment