From e352f0c8e4e37a1cf854a6a04e62c3f31d1a1b55 Mon Sep 17 00:00:00 2001 From: ruffsl Date: Wed, 27 Jun 2018 17:21:46 -0700 Subject: [PATCH] Adding nvidia-docker2 env to desktop libglvnd0 seems to already be installed from ros-robot --- ros/.config/{ => v1}/Makefile.em | 0 ros/.config/{ => v1}/images.yaml.em | 0 ros/.config/{ => v1}/platform.yaml.em | 0 ros/.config/v2/Makefile.em | 34 +++++++++++ ros/.config/v2/images.yaml.em | 56 +++++++++++++++++++ ros/.config/v2/platform.yaml.em | 13 +++++ ros/manifest.yaml | 34 ++++++----- ros/melodic/debian/stretch/desktop/Dockerfile | 3 + ros/melodic/debian/stretch/images.yaml.em | 3 + ros/melodic/ubuntu/bionic/desktop/Dockerfile | 3 + ros/melodic/ubuntu/bionic/images.yaml.em | 3 + 11 files changed, 135 insertions(+), 14 deletions(-) rename ros/.config/{ => v1}/Makefile.em (100%) rename ros/.config/{ => v1}/images.yaml.em (100%) rename ros/.config/{ => v1}/platform.yaml.em (100%) create mode 100644 ros/.config/v2/Makefile.em create mode 100644 ros/.config/v2/images.yaml.em create mode 100644 ros/.config/v2/platform.yaml.em diff --git a/ros/.config/Makefile.em b/ros/.config/v1/Makefile.em similarity index 100% rename from ros/.config/Makefile.em rename to ros/.config/v1/Makefile.em diff --git a/ros/.config/images.yaml.em b/ros/.config/v1/images.yaml.em similarity index 100% rename from ros/.config/images.yaml.em rename to ros/.config/v1/images.yaml.em diff --git a/ros/.config/platform.yaml.em b/ros/.config/v1/platform.yaml.em similarity index 100% rename from ros/.config/platform.yaml.em rename to ros/.config/v1/platform.yaml.em diff --git a/ros/.config/v2/Makefile.em b/ros/.config/v2/Makefile.em new file mode 100644 index 000000000..db4e752bd --- /dev/null +++ b/ros/.config/v2/Makefile.em @@ -0,0 +1,34 @@ +all: help + +help: + @echo "" + @echo "-- Help Menu" + @echo "" + @echo " 1. make build - build all images" + @echo " 2. make pull - pull all images" + @echo " 3. make clean - remove all images" + @echo "" + +build: + @docker build --tag=ros:$release_name-ros-core-$os_code_name ros-core/. + @docker build --tag=ros:$release_name-ros-base-$os_code_name ros-base/. + @docker build --tag=ros:$release_name-robot-$os_code_name robot/. + @docker build --tag=ros:$release_name-perception-$os_code_name perception/. + # @docker build --tag=osrf/ros:$release_name-desktop-$os_code_name desktop/. + # @docker build --tag=osrf/ros:$release_name-desktop-full-$os_code_name desktop-full/. + +pull: + @docker pull ros:$release_name-ros-core-$os_code_name + @docker pull ros:$release_name-ros-base-$os_code_name + @docker pull ros:$release_name-robot-$os_code_name + @docker pull ros:$release_name-perception-$os_code_name + # @docker pull osrf/ros:$release_name-desktop-$os_code_name + # @docker pull osrf/ros:$release_name-desktop-full-$os_code_name + +clean: + @docker rmi -f ros:$release_name-ros-core-$os_code_name + @docker rmi -f ros:$release_name-ros-base-$os_code_name + @docker rmi -f ros:$release_name-robot-$os_code_name + @docker rmi -f ros:$release_name-perception-$os_code_name + # @docker rmi -f osrf/ros:$release_name-desktop-$os_code_name + # @docker rmi -f osrf/ros:$release_name-desktop-full-$os_code_name diff --git a/ros/.config/v2/images.yaml.em b/ros/.config/v2/images.yaml.em new file mode 100644 index 000000000..559c1e7c8 --- /dev/null +++ b/ros/.config/v2/images.yaml.em @@ -0,0 +1,56 @@ +%YAML 1.1 +# ROS Dockerfile database +--- +images: + ros-core: + base_image: @(os_name):@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images/create_ros_core_image.Dockerfile.em + entrypoint_name: docker_images/ros_entrypoint.sh + template_packages: + - docker_templates + ros_packages: + - ros-core + ros-base: + base_image: @(user_name):@(rosdistro_name)-ros-core-@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images/create_ros_image.Dockerfile.em + template_packages: + - docker_templates + ros_packages: + - ros-base + robot: + base_image: @(user_name):@(rosdistro_name)-ros-base-@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images/create_ros_image.Dockerfile.em + template_packages: + - docker_templates + ros_packages: + - robot + perception: + base_image: @(user_name):@(rosdistro_name)-ros-base-@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images/create_ros_image.Dockerfile.em + template_packages: + - docker_templates + ros_packages: + - perception + desktop: + base_image: @(user_name):@(rosdistro_name)-robot-@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images/create_ros_image.Dockerfile.em + template_packages: + - docker_templates + ros_packages: + - desktop + post_env: + NVIDIA_VISIBLE_DEVICES: "${NVIDIA_VISIBLE_DEVICES:-all}" + NVIDIA_DRIVER_CAPABILITIES: "${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics" + desktop-full: + base_image: osrf/@(user_name):@(rosdistro_name)-desktop-@(os_code_name) + maintainer_name: @(maintainer_name) + template_name: docker_images/create_ros_image.Dockerfile.em + template_packages: + - docker_templates + ros_packages: + - desktop-full diff --git a/ros/.config/v2/platform.yaml.em b/ros/.config/v2/platform.yaml.em new file mode 100644 index 000000000..f0b18016e --- /dev/null +++ b/ros/.config/v2/platform.yaml.em @@ -0,0 +1,13 @@ +%YAML 1.1 +# ROS Dockerfile database +--- +platform: + os_name: $os_name + os_code_name: $os_code_name + rosdistro_name: $release_name + user_name: ros + maintainer_name: + arch: amd64 + type: distribution + version: + release: ros diff --git a/ros/manifest.yaml b/ros/manifest.yaml index 37eeed8a4..fc9c50a63 100644 --- a/ros/manifest.yaml +++ b/ros/manifest.yaml @@ -11,11 +11,17 @@ defaults: hook_names: post_push: .hooks/legacy/post_push.em - default: &DEFAULT - templates: &DEFAULT_TEMPLATES - images: .config/images.yaml.em - makefile: .config/Makefile.em - platform: .config/platform.yaml.em + default: &DEFAULT_V1 + templates: &DEFAULT_TEMPLATES_V1 + images: .config/v1/images.yaml.em + makefile: .config/v1/Makefile.em + platform: .config/v1/platform.yaml.em + + default: &DEFAULT_V2 + templates: &DEFAULT_TEMPLATES_V2 + images: .config/v2/images.yaml.em + makefile: .config/v2/Makefile.em + platform: .config/v2/platform.yaml.em default: &DEFAULT_LEGACY templates: &DEFAULT_TEMPLATES_LEGACY @@ -100,7 +106,7 @@ release_names: ubuntu: os_code_names: trusty: - <<: *DEFAULT + <<: *DEFAULT_V1 archs: - amd64 - arm32v7 @@ -128,7 +134,7 @@ release_names: ubuntu: os_code_names: trusty: - <<: *DEFAULT + <<: *DEFAULT_V1 archs: - amd64 - arm32v7 @@ -157,7 +163,7 @@ release_names: ubuntu: os_code_names: xenial: - <<: *DEFAULT + <<: *DEFAULT_V1 archs: - amd64 - arm32v7 @@ -183,7 +189,7 @@ release_names: debian: os_code_names: jessie: - <<: *DEFAULT + <<: *DEFAULT_V1 archs: - amd64 - arm64v8 @@ -207,7 +213,7 @@ release_names: ubuntu: os_code_names: xenial: - <<: *DEFAULT + <<: *DEFAULT_V1 archs: - amd64 - arm32v7 @@ -231,7 +237,7 @@ release_names: - "$release_name-perception" - "$release_name-perception-$os_code_name" zesty: - <<: *DEFAULT + <<: *DEFAULT_V1 archs: - amd64 tag_names: @@ -251,7 +257,7 @@ release_names: debian: os_code_names: stretch: - <<: *DEFAULT + <<: *DEFAULT_V1 archs: - amd64 - arm64v8 @@ -274,7 +280,7 @@ release_names: ubuntu: os_code_names: bionic: - <<: *DEFAULT + <<: *DEFAULT_V2 archs: - amd64 - arm32v7 @@ -301,7 +307,7 @@ release_names: debian: os_code_names: stretch: - <<: *DEFAULT + <<: *DEFAULT_V2 archs: - amd64 - arm64v8 diff --git a/ros/melodic/debian/stretch/desktop/Dockerfile b/ros/melodic/debian/stretch/desktop/Dockerfile index fa0f6fd8b..2098325fd 100644 --- a/ros/melodic/debian/stretch/desktop/Dockerfile +++ b/ros/melodic/debian/stretch/desktop/Dockerfile @@ -7,3 +7,6 @@ RUN apt-get update && apt-get install -y \ ros-melodic-desktop=1.4.1-0* \ && rm -rf /var/lib/apt/lists/* +# set environment variables +ENV NVIDIA_VISIBLE_DEVICES ${NVIDIA_VISIBLE_DEVICES:-all} +ENV NVIDIA_DRIVER_CAPABILITIES ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics diff --git a/ros/melodic/debian/stretch/images.yaml.em b/ros/melodic/debian/stretch/images.yaml.em index 52229a1ec..559c1e7c8 100644 --- a/ros/melodic/debian/stretch/images.yaml.em +++ b/ros/melodic/debian/stretch/images.yaml.em @@ -43,6 +43,9 @@ images: - docker_templates ros_packages: - desktop + post_env: + NVIDIA_VISIBLE_DEVICES: "${NVIDIA_VISIBLE_DEVICES:-all}" + NVIDIA_DRIVER_CAPABILITIES: "${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics" desktop-full: base_image: osrf/@(user_name):@(rosdistro_name)-desktop-@(os_code_name) maintainer_name: @(maintainer_name) diff --git a/ros/melodic/ubuntu/bionic/desktop/Dockerfile b/ros/melodic/ubuntu/bionic/desktop/Dockerfile index cd539bb1f..7a6bf3303 100644 --- a/ros/melodic/ubuntu/bionic/desktop/Dockerfile +++ b/ros/melodic/ubuntu/bionic/desktop/Dockerfile @@ -7,3 +7,6 @@ RUN apt-get update && apt-get install -y \ ros-melodic-desktop=1.4.1-0* \ && rm -rf /var/lib/apt/lists/* +# set environment variables +ENV NVIDIA_VISIBLE_DEVICES ${NVIDIA_VISIBLE_DEVICES:-all} +ENV NVIDIA_DRIVER_CAPABILITIES ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics diff --git a/ros/melodic/ubuntu/bionic/images.yaml.em b/ros/melodic/ubuntu/bionic/images.yaml.em index 52229a1ec..559c1e7c8 100644 --- a/ros/melodic/ubuntu/bionic/images.yaml.em +++ b/ros/melodic/ubuntu/bionic/images.yaml.em @@ -43,6 +43,9 @@ images: - docker_templates ros_packages: - desktop + post_env: + NVIDIA_VISIBLE_DEVICES: "${NVIDIA_VISIBLE_DEVICES:-all}" + NVIDIA_DRIVER_CAPABILITIES: "${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics" desktop-full: base_image: osrf/@(user_name):@(rosdistro_name)-desktop-@(os_code_name) maintainer_name: @(maintainer_name)