From 3a78245306f8daf8c46d0958065223c39e932804 Mon Sep 17 00:00:00 2001 From: Esteve Fernandez Date: Fri, 23 Nov 2018 15:40:30 +0100 Subject: [PATCH] Update Docker image to use automotive-platform-msgs as a Debian package --- .gitlab-ci.yml | 3 +- .travis.yml | 2 +- .../crossbuild/Dockerfile.kinetic-crossbuild | 1 + .../Dockerfile.kinetic-crossbuild-driveworks | 2 +- docker/crossbuild/build_cross_image.sh | 5 +- docker/generic/Dockerfile.indigo | 68 ++++++++++++++--- docker/generic/Dockerfile.kinetic | 74 +++++++++++++++---- docker/generic/build.sh | 4 +- ros/catkin_make_release_cross | 4 +- 9 files changed, 132 insertions(+), 31 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0ac796fc4d4..20d35948282 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -86,6 +86,7 @@ build_cross: - docker:dind variables: ROS_DISTRO: kinetic + AUTOWARE_DOCKER_DATE: 20181123 AUTOWARE_HOME: $CI_PROJECT_DIR AUTOWARE_TARGET_ARCH: aarch64 AUTOWARE_TARGET_PLATFORM: generic-aarch64 @@ -99,7 +100,7 @@ build_cross: --rm -v ${AUTOWARE_HOME}:${AUTOWARE_HOME} -w ${AUTOWARE_HOME}/ros - autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-20180809 + autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-${AUTOWARE_DOCKER_DATE} bash -c "source /opt/ros/kinetic/setup.bash && catkin_make diff --git a/.travis.yml b/.travis.yml index 7e568187ee5..5310c8d0355 100644 --- a/.travis.yml +++ b/.travis.yml @@ -78,7 +78,7 @@ script: --rm -v ${AUTOWARE_HOME}:${AUTOWARE_HOME} -w ${AUTOWARE_HOME}/ros - autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-20180809 + autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-20181123 bash -c "source /opt/ros/kinetic/setup.bash && catkin_make diff --git a/docker/crossbuild/Dockerfile.kinetic-crossbuild b/docker/crossbuild/Dockerfile.kinetic-crossbuild index 4f7b8084ad6..c55f7b74fee 100644 --- a/docker/crossbuild/Dockerfile.kinetic-crossbuild +++ b/docker/crossbuild/Dockerfile.kinetic-crossbuild @@ -49,6 +49,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ python-serial \ qtbase5-dev \ ros-kinetic-angles \ + ros-kinetic-automotive-platform-msgs \ ros-kinetic-camera-info-manager \ ros-kinetic-catkin \ ros-kinetic-cmake-modules \ diff --git a/docker/crossbuild/Dockerfile.kinetic-crossbuild-driveworks b/docker/crossbuild/Dockerfile.kinetic-crossbuild-driveworks index 3b47104f087..9c31ebe9d7f 100644 --- a/docker/crossbuild/Dockerfile.kinetic-crossbuild-driveworks +++ b/docker/crossbuild/Dockerfile.kinetic-crossbuild-driveworks @@ -1,7 +1,7 @@ ARG AUTOWARE_DOCKER_ARCH ARG AUTOWARE_TARGET_ARCH ARG AUTOWARE_TARGET_PLATFORM -FROM autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-20180809 +FROM autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-20181123 RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential COPY files/FindCUDA.cmake /usr/share/cmake-3.5/Modules/FindCUDA.cmake diff --git a/docker/crossbuild/build_cross_image.sh b/docker/crossbuild/build_cross_image.sh index cc3764f9169..329f881f848 100755 --- a/docker/crossbuild/build_cross_image.sh +++ b/docker/crossbuild/build_cross_image.sh @@ -5,6 +5,7 @@ if [ "$1" = "synquacer" ] || [ "$1" = "driveworks" ] || [ "$1" = "generic-aarch6 then # Once we support for targets, change this to the appropriate Docker image AUTOWARE_DOCKER_ARCH=arm64v8 + AUTOWARE_DOCKER_DATE=20181123 AUTOWARE_TARGET_ARCH=aarch64 AUTOWARE_TARGET_PLATFORM=$1 @@ -17,7 +18,7 @@ then --build-arg AUTOWARE_DOCKER_ARCH=${AUTOWARE_DOCKER_ARCH} \ --build-arg AUTOWARE_TARGET_ARCH=${AUTOWARE_TARGET_ARCH} \ --build-arg AUTOWARE_TARGET_PLATFORM=${AUTOWARE_TARGET_PLATFORM} \ - -t autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-20180809 \ + -t autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-${AUTOWARE_DOCKER_DATE} \ -f Dockerfile.kinetic-crossbuild . if [ "$AUTOWARE_TARGET_PLATFORM" = "driveworks" ] then @@ -25,7 +26,7 @@ then --build-arg AUTOWARE_DOCKER_ARCH=${AUTOWARE_DOCKER_ARCH} \ --build-arg AUTOWARE_TARGET_ARCH=${AUTOWARE_TARGET_ARCH} \ --build-arg AUTOWARE_TARGET_PLATFORM=${AUTOWARE_TARGET_PLATFORM} \ - -t autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-20180809 \ + -t autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-${AUTOWARE_DOCKER_DATE} \ -f Dockerfile.kinetic-crossbuild-driveworks . fi diff --git a/docker/generic/Dockerfile.indigo b/docker/generic/Dockerfile.indigo index e475e78985d..8d7d978d33e 100644 --- a/docker/generic/Dockerfile.indigo +++ b/docker/generic/Dockerfile.indigo @@ -3,14 +3,48 @@ MAINTAINER Yuki Iida RUN apt-get update && apt-get install -y \ software-properties-common \ - wget curl git cmake cmake-curses-gui + wget \ + curl \ + git \ + cmake \ + cmake-curses-gui # Install ROS RUN wget http://packages.ros.org/ros.key -O - | apt-key add - RUN echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list -RUN apt-get update && apt-get install -y ros-indigo-desktop-full ros-indigo-nmea-msgs ros-indigo-nmea-navsat-driver ros-indigo-sound-play ros-indigo-jsk-visualization ros-indigo-grid-map ros-indigo-gps-common -RUN apt-get update && apt-get install -y ros-indigo-controller-manager ros-indigo-ros-control ros-indigo-ros-controllers ros-indigo-gazebo-ros-control ros-indigo-sicktoolbox ros-indigo-sicktoolbox-wrapper ros-indigo-joystick-drivers ros-indigo-novatel-span-driver -RUN apt-get update && apt-get install -y libnlopt-dev freeglut3-dev qtbase5-dev libqt5opengl5-dev libssh2-1-dev libarmadillo-dev libpcap-dev gksu libgl1-mesa-dev libglew-dev software-properties-common libyaml-cpp-dev python-flask python-requests +RUN apt-get update && apt-get install -y \ + ros-indigo-desktop-full \ + ros-indigo-gps-common \ + ros-indigo-grid-map \ + ros-indigo-jsk-visualization \ + ros-indigo-nmea-msgs \ + ros-indigo-nmea-navsat-driver \ + ros-indigo-sound-play +RUN apt-get update && apt-get install -y \ + ros-indigo-automotive-platform-msgs \ + ros-indigo-controller-manager \ + ros-indigo-gazebo-ros-control \ + ros-indigo-joystick-drivers \ + ros-indigo-novatel-span-driver \ + ros-indigo-ros-control \ + ros-indigo-ros-controllers \ + ros-indigo-sicktoolbox \ + ros-indigo-sicktoolbox-wrapper +RUN apt-get update && apt-get install -y \ + freeglut3-dev \ + gksu \ + libarmadillo-dev \ + libgl1-mesa-dev \ + libglew-dev \ + libnlopt-dev \ + libpcap-dev \ + libqt5opengl5-dev \ + libssh2-1-dev \ + libyaml-cpp-dev \ + python-flask \ + python-requests \ + qtbase5-dev \ + software-properties-common RUN add-apt-repository ppa:mosquitto-dev/mosquitto-ppa RUN apt-get update && apt-get install -y libmosquitto-dev @@ -28,12 +62,26 @@ RUN apt-get install -y \ # Install some basic GUI and sound libs RUN apt-get install -y \ - xz-utils file locales dbus-x11 pulseaudio dmz-cursor-theme \ - fonts-dejavu fonts-liberation hicolor-icon-theme \ - libcanberra-gtk3-0 libcanberra-gtk-module libcanberra-gtk3-module \ - libasound2 libgtk2.0-0 libdbus-glib-1-2 libxt6 libexif12 \ - libgl1-mesa-glx libgl1-mesa-dri \ - && update-locale LANG=C.UTF-8 LC_MESSAGES=POSIX + dbus-x11 \ + dmz-cursor-theme \ + file \ + fonts-dejavu \ + fonts-liberation \ + hicolor-icon-theme \ + libasound2 \ + libcanberra-gtk-module \ + libcanberra-gtk3-0 \ + libcanberra-gtk3-module \ + libdbus-glib-1-2 \ + libexif12 \ + libgl1-mesa-dri \ + libgl1-mesa-glx \ + libgtk2.0-0 \ + libxt6 \ + locales \ + pulseaudio \ + xz-utils +RUN update-locale LANG=C.UTF-8 LC_MESSAGES=POSIX # Install some basic GUI tools RUN apt-get install -y \ diff --git a/docker/generic/Dockerfile.kinetic b/docker/generic/Dockerfile.kinetic index 0904da458b0..751f1c49f35 100644 --- a/docker/generic/Dockerfile.kinetic +++ b/docker/generic/Dockerfile.kinetic @@ -3,22 +3,41 @@ MAINTAINER Yuki Iida # Develop RUN apt-get update && apt-get install -y \ - software-properties-common \ - wget curl git cmake cmake-curses-gui \ + cmake \ + cmake-curses-gui \ + curl \ + git \ libboost-all-dev \ + libeigen3-dev \ libflann-dev \ - libgsl0-dev \ libgoogle-perftools-dev \ - libeigen3-dev + libgsl0-dev \ + software-properties-common \ + wget # Intall some basic GUI and sound libs RUN apt-get update && apt-get install -y \ - xz-utils file locales dbus-x11 pulseaudio dmz-cursor-theme \ - fonts-dejavu fonts-liberation hicolor-icon-theme \ - libcanberra-gtk3-0 libcanberra-gtk-module libcanberra-gtk3-module \ - libasound2 libgtk2.0-0 libdbus-glib-1-2 libxt6 libexif12 \ - libgl1-mesa-glx libgl1-mesa-dri language-pack-en \ - && update-locale LANG=en_US.UTF-8 LC_MESSAGES=POSIX + dbus-x11 \ + dmz-cursor-theme \ + file \ + fonts-dejavu \ + fonts-liberation \ + hicolor-icon-theme \ + language-pack-en \ + libasound2 \ + libcanberra-gtk-module \ + libcanberra-gtk3-0 \ + libcanberra-gtk3-module \ + libdbus-glib-1-2 \ + libexif12 \ + libgl1-mesa-dri \ + libgl1-mesa-glx \ + libgtk2.0-0 \ + libxt6 \ + locales \ + pulseaudio \ + xz-utils +RUN update-locale LANG=en_US.UTF-8 LC_MESSAGES=POSIX # Intall some basic GUI tools RUN apt-get update && apt-get install -y \ @@ -28,9 +47,38 @@ RUN apt-get update && apt-get install -y \ # Intall ROS RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' RUN apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 -RUN apt-get update && apt-get install -y ros-kinetic-desktop-full ros-kinetic-nmea-msgs ros-kinetic-nmea-navsat-driver ros-kinetic-sound-play ros-kinetic-jsk-visualization ros-kinetic-grid-map ros-kinetic-gps-common -RUN apt-get update && apt-get install -y ros-kinetic-controller-manager ros-kinetic-ros-control ros-kinetic-ros-controllers ros-kinetic-gazebo-ros-control ros-kinetic-joystick-drivers -RUN apt-get update && apt-get install -y libnlopt-dev freeglut3-dev qtbase5-dev libqt5opengl5-dev libssh2-1-dev libarmadillo-dev libpcap-dev gksu libgl1-mesa-dev libglew-dev python-wxgtk3.0 software-properties-common libmosquitto-dev libyaml-cpp-dev python-flask python-requests +RUN apt-get update && apt-get install -y \ + ros-kinetic-desktop-full \ + ros-kinetic-gps-common \ + ros-kinetic-grid-map \ + ros-kinetic-jsk-visualization \ + ros-kinetic-nmea-msgs \ + ros-kinetic-nmea-navsat-driver \ + ros-kinetic-sound-play +RUN apt-get update && apt-get install -y \ + ros-kinetic-automotive-platform-msgs \ + ros-kinetic-controller-manager \ + ros-kinetic-gazebo-ros-control \ + ros-kinetic-joystick-drivers \ + ros-kinetic-ros-control \ + ros-kinetic-ros-controllers +RUN apt-get update && apt-get install -y \ + freeglut3-dev \ + gksu \ + libarmadillo-dev \ + libgl1-mesa-dev \ + libglew-dev \ + libmosquitto-dev \ + libnlopt-dev \ + libpcap-dev \ + libqt5opengl5-dev \ + libssh2-1-dev \ + libyaml-cpp-dev \ + python-flask \ + python-requests \ + python-wxgtk3.0 \ + qtbase5-dev \ + software-properties-common # Add basic user ENV USERNAME autoware diff --git a/docker/generic/build.sh b/docker/generic/build.sh index 144c8526c19..2b7b0e9b4e4 100755 --- a/docker/generic/build.sh +++ b/docker/generic/build.sh @@ -4,11 +4,11 @@ if [ "$1" = "kinetic" ] then echo "Use $1" - nvidia-docker build -t autoware-$1 -f Dockerfile.$1 ./../.. --no-cache + docker build -t autoware-$1 -f Dockerfile.$1 ./../.. --no-cache elif [ "$1" = "indigo" ] then echo "Indigo is deprecated and will be removed in a future release, please use Kinetic instead" - nvidia-docker build -t autoware-$1 -f Dockerfile.$1 ./../.. --no-cache + docker build -t autoware-$1 -f Dockerfile.$1 ./../.. --no-cache else echo "Select distribution, kinetic|indigo" fi diff --git a/ros/catkin_make_release_cross b/ros/catkin_make_release_cross index c053fa69b68..70bbbea7ccd 100755 --- a/ros/catkin_make_release_cross +++ b/ros/catkin_make_release_cross @@ -50,6 +50,8 @@ END echo "Using toolchain file: '${AUTOWARE_TOOLCHAIN_FILE_PATH}''" AUTOWARE_SYSROOT=/sysroot/${AUTOWARE_TARGET_PLATFORM} + AUTOWARE_DOCKER_DATE=20181123 + docker container run \ -it \ --rm \ @@ -58,7 +60,7 @@ END -v ${PWD}/../:${AUTOWARE_HOME} \ -w ${AUTOWARE_HOME}/ros \ -u ${UID}:${UID} \ - autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-20180809 \ + autoware/build:${AUTOWARE_TARGET_PLATFORM}-kinetic-${AUTOWARE_DOCKER_DATE} \ bash \ -c "\ source /opt/ros/kinetic/setup.bash && \