From 338c97dc253655b30fd044158c26ad4391cde5e7 Mon Sep 17 00:00:00 2001 From: Aitor Martinez Date: Mon, 10 Apr 2017 11:30:23 +0200 Subject: [PATCH] [issue #766] Added Docker for demos and development --- .../jderobot/demos/cameraviewjs/Dockerfile | 10 ++ .../jderobot/demos/cameraviewjs/README.md | 12 ++ .../demos/cameraviewjs/democameraviewjs.sh | 8 + .../docker/jderobot/dev-only-ice/Dockerfile | 165 ++++++++++++++++++ .../docker/jderobot/dev-only-ice/README.md | 25 +++ scripts/docker/jderobot/dev/Dockerfile | 14 ++ scripts/docker/jderobot/dev/README.md | 25 +++ .../jderobot/{oficial => official}/Dockerfile | 0 .../jderobot/{oficial => official}/README.md | 2 +- .../{oficial => official}/bin/kobukiviewerjs | 0 .../{oficial => official}/bin/lsworlds | 0 .../{oficial => official}/bin/rungzserver | 0 .../{oficial => official}/bin/rungzweb | 0 .../jderobot/{oficial => official}/cfg/drone1 | 0 .../jderobot/{oficial => official}/cfg/drone2 | 0 .../{oficial => official}/cfg/pelota_roja | 0 .../cfg/pelotas_roja_azul | 0 .../{oficial => official}/installGzweb.sh | 0 .../jderobot_entrypoint.sh | 0 .../{oficial => official}/turtlebotplugin.cfg | 0 scripts/docker/ubuntu/xenial/base/Dockerfile | 33 ++++ scripts/docker/ubuntu/xenial/base/README.md | 25 +++ scripts/docker/ubuntu/xenial/base/completion | 7 + 23 files changed, 325 insertions(+), 1 deletion(-) create mode 100644 scripts/docker/jderobot/demos/cameraviewjs/Dockerfile create mode 100644 scripts/docker/jderobot/demos/cameraviewjs/README.md create mode 100755 scripts/docker/jderobot/demos/cameraviewjs/democameraviewjs.sh create mode 100644 scripts/docker/jderobot/dev-only-ice/Dockerfile create mode 100644 scripts/docker/jderobot/dev-only-ice/README.md create mode 100644 scripts/docker/jderobot/dev/Dockerfile create mode 100644 scripts/docker/jderobot/dev/README.md rename scripts/docker/jderobot/{oficial => official}/Dockerfile (100%) rename scripts/docker/jderobot/{oficial => official}/README.md (98%) rename scripts/docker/jderobot/{oficial => official}/bin/kobukiviewerjs (100%) rename scripts/docker/jderobot/{oficial => official}/bin/lsworlds (100%) rename scripts/docker/jderobot/{oficial => official}/bin/rungzserver (100%) rename scripts/docker/jderobot/{oficial => official}/bin/rungzweb (100%) rename scripts/docker/jderobot/{oficial => official}/cfg/drone1 (100%) rename scripts/docker/jderobot/{oficial => official}/cfg/drone2 (100%) rename scripts/docker/jderobot/{oficial => official}/cfg/pelota_roja (100%) rename scripts/docker/jderobot/{oficial => official}/cfg/pelotas_roja_azul (100%) rename scripts/docker/jderobot/{oficial => official}/installGzweb.sh (100%) rename scripts/docker/jderobot/{oficial => official}/jderobot_entrypoint.sh (100%) rename scripts/docker/jderobot/{oficial => official}/turtlebotplugin.cfg (100%) create mode 100644 scripts/docker/ubuntu/xenial/base/Dockerfile create mode 100644 scripts/docker/ubuntu/xenial/base/README.md create mode 100644 scripts/docker/ubuntu/xenial/base/completion diff --git a/scripts/docker/jderobot/demos/cameraviewjs/Dockerfile b/scripts/docker/jderobot/demos/cameraviewjs/Dockerfile new file mode 100644 index 000000000..b17465423 --- /dev/null +++ b/scripts/docker/jderobot/demos/cameraviewjs/Dockerfile @@ -0,0 +1,10 @@ +#Demo CameraViewJS +FROM jderobot/jderobot + +LABEL manteiner Aitor Martínez Fernández+aitor.martinez.fernandez@gmail.com +LABEL Usage.run="docker run -d --name demo_cameraviewjs --device="/dev/video0:/dev/video0:rw" -p 7777:7777 -p 9999:9999 -p 11000:11000 jderobot/demos:cameraviewjs" + +RUN echo "source /opt/ros/kinetic/setup.bash" >> /root/.bashrc + +COPY ./democameraviewjs.sh /usr/bin +CMD ["democameraviewjs.sh"] diff --git a/scripts/docker/jderobot/demos/cameraviewjs/README.md b/scripts/docker/jderobot/demos/cameraviewjs/README.md new file mode 100644 index 000000000..65bd14be2 --- /dev/null +++ b/scripts/docker/jderobot/demos/cameraviewjs/README.md @@ -0,0 +1,12 @@ +JdeRobot CameraViewJS Demo Image +======== + +Demo of CameraViewJS. This image depends on [JdeRobot Official Image](https://hub.docker.com/r/jderobot/jderobot/) + +# Usage +* Download and run: +```sh +docker run -d --name demo_cameraviewjs --device="/dev/video0:/dev/video0:rw" -p 7777:7777 -p 9999:9999 -p 11000:11000 jderobot/demos:cameraviewjs +``` + +To see cameraviewjs, put in your browser: "localhost:7777" diff --git a/scripts/docker/jderobot/demos/cameraviewjs/democameraviewjs.sh b/scripts/docker/jderobot/demos/cameraviewjs/democameraviewjs.sh new file mode 100755 index 000000000..24ef57330 --- /dev/null +++ b/scripts/docker/jderobot/demos/cameraviewjs/democameraviewjs.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +cameraserver cameraserver.cfg & + +wd=$(pwd) +cd /usr/local/share/jderobot/webtools/cameraviewjs +nodejs run.js +cd $wd \ No newline at end of file diff --git a/scripts/docker/jderobot/dev-only-ice/Dockerfile b/scripts/docker/jderobot/dev-only-ice/Dockerfile new file mode 100644 index 000000000..a6d3fdeb3 --- /dev/null +++ b/scripts/docker/jderobot/dev-only-ice/Dockerfile @@ -0,0 +1,165 @@ +# Jderobot for developers without ROS +# only use ROS for opencv +FROM jderobot/ubuntu:base + +LABEL manteiner Aitor Martínez Fernández+aitor.martinez.fernandez@gmail.com + + +## ROS ## +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 + +RUN echo "deb http://packages.ros.org/ros/ubuntu xenial main" > /etc/apt/sources.list.d/ros-latest.list + +## ZeroC ## +RUN echo deb http://zeroc.com/download/apt/ubuntu16.04 stable main > /etc/apt/sources.list.d/zeroc.list + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 5E6DA83306132997 + +## Gazebo ## + +RUN echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable xenial main" > /etc/apt/sources.list.d/gazebo-stable.list + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-key 67170598AF249743 + + +## JdeRobot ## +RUN sh -c 'echo "deb http://jderobot.org/apt xenial main" > /etc/apt/sources.list.d/jderobot.list' + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv B0E7F58E82C8091DF945A0453DA08892EE69A25C + + + +## install deps ## + +# Basic libraries +RUN apt update && apt install -q -y \ + build-essential libtool cmake g++ gcc git make \ + && rm -rf /var/lib/apt/lists/* + +# OpenGL +RUN apt update && apt install -q -y \ + freeglut3 freeglut3-dev libgl1-mesa-dev libglu1-mesa \ + && rm -rf /var/lib/apt/lists/* + +# GTK2 +RUN apt update && apt install -q -y \ + libgtk2.0-0 libgtk2.0-bin libgtk2.0-cil libgtk2.0-common libgtk2.0-dev libgtkgl2.0-1 \ + libgtkgl2.0-dev libgtkglext1 libgtkglext1-dev libglademm-2.4-dev libgtkmm-2.4-dev \ + libgnomecanvas2-0 libgnomecanvas2-dev libgtkglext1-doc libgnomecanvasmm-2.6-dev \ + libgnomecanvasmm-2.6-1v5 libgtkglextmm-x11-1.2-0v5 libgtkglextmm-x11-1.2-dev \ + && rm -rf /var/lib/apt/lists/* + +# GTK3 +RUN apt update && apt install -q -y \ + libgoocanvasmm-2.0-6 libgoocanvasmm-2.0-dev \ + && rm -rf /var/lib/apt/lists/* + +# GSL +RUN apt update && apt install -q -y \ + libgsl2 gsl-bin libgsl-dev \ + && rm -rf /var/lib/apt/lists/* + +# LibXML +RUN apt update && apt install -q -y \ + libxml++2.6-2v5 libxml++2.6-dev libtinyxml-dev \ + && rm -rf /var/lib/apt/lists/* + +# EIGEN +RUN apt update && apt install -q -y \ + libeigen3-dev \ + && rm -rf /var/lib/apt/lists/* + +# FIREWARE +RUN apt update && apt install -q -y \ + libdc1394-22 libdc1394-22-dev \ + && rm -rf /var/lib/apt/lists/* + +# USB +RUN apt update && apt install -q -y \ + libusb-1.0-0 libusb-1.0-0-dev \ + && rm -rf /var/lib/apt/lists/* + +# CWIID +RUN apt update && apt install -q -y \ + libcwiid-dev \ + && rm -rf /var/lib/apt/lists/* + +# PYTHON +RUN apt update && apt install -q -y \ + python-matplotlib python-pyqt5 python-pip python-numpy python-pyqt5.qtsvg \ + && rm -rf /var/lib/apt/lists/* + +# QFI +RUN apt update && apt install -q -y \ + qfi \ + && rm -rf /var/lib/apt/lists/* + +# QT5 +RUN apt update && apt install -q -y \ + qtbase5-dev libqt5declarative5 libqt5script5 libqt5svg5-dev \ + && rm -rf /var/lib/apt/lists/* + +# BOOST +RUN apt update && apt install -q -y \ + libboost-system-dev libboost-filesystem-dev \ + && rm -rf /var/lib/apt/lists/* + +# GSTREAMER +RUN apt update && apt install -q -y \ + libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev \ + && rm -rf /var/lib/apt/lists/* + +# ICE +RUN apt update && apt install -q -y \ + libzeroc-ice3.6 zeroc-ice-utils libzeroc-icestorm3.6 zeroc-ice-slice libzeroc-ice-dev \ + && rm -rf /var/lib/apt/lists/* + +# ICE PYTHON +RUN apt update && apt install -q -y \ + libssl-dev libbz2-dev \ + && pip2 install zeroc-ice \ + && rm -rf /var/lib/apt/lists/* + +# OPENNI 2 +RUN apt update && apt install -q -y \ + libopenni2-dev libopenni-dev \ + && rm -rf /var/lib/apt/lists/* + +# GAZEBO +RUN apt update && apt install -q -y \ + gazebo7 libgazebo7-dev \ + && rm -rf /var/lib/apt/lists/* + +# PCL +RUN apt update && apt install -q -y \ + libpcl-dev \ + && rm -rf /var/lib/apt/lists/* + +# OPENCV +RUN apt update && apt install -q -y \ + ros-kinetic-opencv3 \ + && rm -rf /var/lib/apt/lists/* + +# NODEJS +RUN apt update && apt install -q -y \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# KOBUKILIB +RUN apt update && apt install -q -y \ + kobukilib \ + && rm -rf /var/lib/apt/lists/* + +# ARDRONELIB +RUN apt update && apt install -q -y \ + ardronelib \ + && rm -rf /var/lib/apt/lists/* + + + + + +RUN echo "source /opt/ros/kinetic/setup.bash" >> /root/.bashrc + + +CMD ["bash"] \ No newline at end of file diff --git a/scripts/docker/jderobot/dev-only-ice/README.md b/scripts/docker/jderobot/dev-only-ice/README.md new file mode 100644 index 000000000..29ba0dedd --- /dev/null +++ b/scripts/docker/jderobot/dev-only-ice/README.md @@ -0,0 +1,25 @@ +JdeRobot Image for development, only ICE +======== + +JdeRobot Image for development that includes all JdeRobot dependencies without ROS. This image depends on [JdeRobot Ubuntu Image](https://hub.docker.com/r/jderobot/ubuntu/) + +It contains: +* JdeRobot dependencies without ROS packages +* wget, sudo, bash-completion packages (from Ubuntu) +* binutils, mesa-utils, module-init-tools, x-window-system graphics packages (from Ubuntu) +* Nano and sublime TextEditors installed (from Ubuntu) ... + +# Usage +* Download: +```sh +docker pull jderobot/jderobot:dev-only-ice +``` +* run without GUI: +```sh +docker run -ti jderobot/jderobot:dev-only-ice bash +``` +* run with GUI: +```sh +xhost +local:root +docker run -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" jderobot/jderobot:dev-only-ice bash +``` diff --git a/scripts/docker/jderobot/dev/Dockerfile b/scripts/docker/jderobot/dev/Dockerfile new file mode 100644 index 000000000..397b02d01 --- /dev/null +++ b/scripts/docker/jderobot/dev/Dockerfile @@ -0,0 +1,14 @@ +# Jderobot for developers +FROM jderobot/jderobot:dev-only-ice + +LABEL manteiner Aitor Martínez Fernández+aitor.martinez.fernandez@gmail.com + + +# install ROS deps +RUN apt update && apt install -q -y \ + ros-kinetic-roscpp ros-kinetic-std-msgs ros-kinetic-cv-bridge ros-kinetic-image-transport \ + ros-kinetic-roscpp-core ros-kinetic-rospy ros-kinetic-nav-msgs ros-kinetic-geometry-msgs \ + && rm -rf /var/lib/apt/lists/* + + +CMD ["bash"] diff --git a/scripts/docker/jderobot/dev/README.md b/scripts/docker/jderobot/dev/README.md new file mode 100644 index 000000000..9371145ec --- /dev/null +++ b/scripts/docker/jderobot/dev/README.md @@ -0,0 +1,25 @@ +JdeRobot Image for development, with ROS +======== + +JdeRobot Image for development that includes all JdeRobot dependencies. This image depends on [JdeRobot Dev-only-ICE](https://hub.docker.com/r/jderobot/jderobot/tags/) + +It contains: +* JdeRobot dependencies +* wget, sudo, bash-completion packages (from Ubuntu) +* binutils, mesa-utils, module-init-tools, x-window-system graphics packages (from Ubuntu) +* Nano and sublime TextEditors installed (from Ubuntu) ... + +# Usage +* Download: +```sh +docker pull jderobot/jderobot:dev +``` +* run without GUI: +```sh +docker run -ti jderobot/jderobot:dev bash +``` +* run with GUI: +```sh +xhost +local:root +docker run -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" jderobot/jderobot:dev bash +``` diff --git a/scripts/docker/jderobot/oficial/Dockerfile b/scripts/docker/jderobot/official/Dockerfile similarity index 100% rename from scripts/docker/jderobot/oficial/Dockerfile rename to scripts/docker/jderobot/official/Dockerfile diff --git a/scripts/docker/jderobot/oficial/README.md b/scripts/docker/jderobot/official/README.md similarity index 98% rename from scripts/docker/jderobot/oficial/README.md rename to scripts/docker/jderobot/official/README.md index eeae1a45e..658c33e98 100644 --- a/scripts/docker/jderobot/oficial/README.md +++ b/scripts/docker/jderobot/official/README.md @@ -1,4 +1,4 @@ -JdeRobot Oficial Image +JdeRobot Official Image ======== This is the official Docker image of [JdeRobot project](http://jderobot.org), a software framework for developing applications in robotics, computer vision. diff --git a/scripts/docker/jderobot/oficial/bin/kobukiviewerjs b/scripts/docker/jderobot/official/bin/kobukiviewerjs similarity index 100% rename from scripts/docker/jderobot/oficial/bin/kobukiviewerjs rename to scripts/docker/jderobot/official/bin/kobukiviewerjs diff --git a/scripts/docker/jderobot/oficial/bin/lsworlds b/scripts/docker/jderobot/official/bin/lsworlds similarity index 100% rename from scripts/docker/jderobot/oficial/bin/lsworlds rename to scripts/docker/jderobot/official/bin/lsworlds diff --git a/scripts/docker/jderobot/oficial/bin/rungzserver b/scripts/docker/jderobot/official/bin/rungzserver similarity index 100% rename from scripts/docker/jderobot/oficial/bin/rungzserver rename to scripts/docker/jderobot/official/bin/rungzserver diff --git a/scripts/docker/jderobot/oficial/bin/rungzweb b/scripts/docker/jderobot/official/bin/rungzweb similarity index 100% rename from scripts/docker/jderobot/oficial/bin/rungzweb rename to scripts/docker/jderobot/official/bin/rungzweb diff --git a/scripts/docker/jderobot/oficial/cfg/drone1 b/scripts/docker/jderobot/official/cfg/drone1 similarity index 100% rename from scripts/docker/jderobot/oficial/cfg/drone1 rename to scripts/docker/jderobot/official/cfg/drone1 diff --git a/scripts/docker/jderobot/oficial/cfg/drone2 b/scripts/docker/jderobot/official/cfg/drone2 similarity index 100% rename from scripts/docker/jderobot/oficial/cfg/drone2 rename to scripts/docker/jderobot/official/cfg/drone2 diff --git a/scripts/docker/jderobot/oficial/cfg/pelota_roja b/scripts/docker/jderobot/official/cfg/pelota_roja similarity index 100% rename from scripts/docker/jderobot/oficial/cfg/pelota_roja rename to scripts/docker/jderobot/official/cfg/pelota_roja diff --git a/scripts/docker/jderobot/oficial/cfg/pelotas_roja_azul b/scripts/docker/jderobot/official/cfg/pelotas_roja_azul similarity index 100% rename from scripts/docker/jderobot/oficial/cfg/pelotas_roja_azul rename to scripts/docker/jderobot/official/cfg/pelotas_roja_azul diff --git a/scripts/docker/jderobot/oficial/installGzweb.sh b/scripts/docker/jderobot/official/installGzweb.sh similarity index 100% rename from scripts/docker/jderobot/oficial/installGzweb.sh rename to scripts/docker/jderobot/official/installGzweb.sh diff --git a/scripts/docker/jderobot/oficial/jderobot_entrypoint.sh b/scripts/docker/jderobot/official/jderobot_entrypoint.sh similarity index 100% rename from scripts/docker/jderobot/oficial/jderobot_entrypoint.sh rename to scripts/docker/jderobot/official/jderobot_entrypoint.sh diff --git a/scripts/docker/jderobot/oficial/turtlebotplugin.cfg b/scripts/docker/jderobot/official/turtlebotplugin.cfg similarity index 100% rename from scripts/docker/jderobot/oficial/turtlebotplugin.cfg rename to scripts/docker/jderobot/official/turtlebotplugin.cfg diff --git a/scripts/docker/ubuntu/xenial/base/Dockerfile b/scripts/docker/ubuntu/xenial/base/Dockerfile new file mode 100644 index 000000000..198798c96 --- /dev/null +++ b/scripts/docker/ubuntu/xenial/base/Dockerfile @@ -0,0 +1,33 @@ +# Own Ubuntu base +FROM ubuntu:xenial + +LABEL manteiner Aitor Martínez Fernández+aitor-martinez.fernandez@gmail.com + + +# install basic packages +RUN apt update && apt install -q -y \ + wget \ + sudo \ + nano \ + bash-completion \ + && rm -rf /var/lib/apt/lists/* + +# install graphics packages +RUN apt update && apt install -q -y \ + binutils \ + mesa-utils \ + module-init-tools \ + x-window-system\ + && rm -rf /var/lib/apt/lists/* + +# install sublime +RUN wget https://download.sublimetext.com/sublime-text_build-3126_amd64.deb \ + && dpkg -i sublime-text_build-3126_amd64.deb \ + && rm sublime-text_build-3126_amd64.deb + +# Enabling bash-completion +COPY ./completion /tmp/ + +RUN cat /tmp/completion >> /etc/bash.bashrc + + diff --git a/scripts/docker/ubuntu/xenial/base/README.md b/scripts/docker/ubuntu/xenial/base/README.md new file mode 100644 index 000000000..e15c34e38 --- /dev/null +++ b/scripts/docker/ubuntu/xenial/base/README.md @@ -0,0 +1,25 @@ +JdeRobot Ubuntu Image +======== + +This is a image of Ubuntu with basic packages, can be used to try JdeRobot package installation. This image depends on [Ubuntu official image](https://hub.docker.com/_/ubuntu/) + +It contains: +* wget, sudo, bash-completion packages +* binutils, mesa-utils, module-init-tools, x-window-system graphics packages +* Nano and sublime TextEditors installed ... + +# Usage +* Download: +```sh +docker pull jderobot/ubuntu:base +``` +* run without GUI: +```sh +docker run -ti jderobot/ubuntu:base bash +``` +* run with GUI: +```sh +xhost +local:root +docker run -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" jderobot/ubuntu:base bash +``` + diff --git a/scripts/docker/ubuntu/xenial/base/completion b/scripts/docker/ubuntu/xenial/base/completion new file mode 100644 index 000000000..99da0f576 --- /dev/null +++ b/scripts/docker/ubuntu/xenial/base/completion @@ -0,0 +1,7 @@ +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi