From 9c342ee6dcd4edbd723bc609f50734668643d905 Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Thu, 29 Apr 2021 19:43:14 +0900 Subject: [PATCH 1/2] ubuntu 14.04 need Python >= 2.7.9 to run pip --- docker/Dockerfile.ros-ubuntu:14.04 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile.ros-ubuntu:14.04 b/docker/Dockerfile.ros-ubuntu:14.04 index a307067..ff3ed5c 100644 --- a/docker/Dockerfile.ros-ubuntu:14.04 +++ b/docker/Dockerfile.ros-ubuntu:14.04 @@ -13,7 +13,13 @@ RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y python-vtk tcl-vtk RUN apt-get update && apt-get install -y python-pip -RUN pip install -U dlib +# Install pip +# See https://github.com/pypa/pip/issues/4805 for detail. +# https://github.com/pypa/pypi-support/issues/978 requires Python >= 2.7.9 +RUN apt-get update && sudo apt-get install -y software-properties-common +RUN add-apt-repository -y ppa:longsleep/python2.7-backports +RUN apt-get update && sudo apt-get dist-upgrade -y +RUN pip install -U dlib==19.21.1 RUN apt-get update && apt-get install -y curl git wget sudo lsb-release ccache apt-cacher-ng patch man-db RUN apt-get update && apt-get install -y mesa-utils From 39728b900974aae92162fcb2db9dbfd931e9999f Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Thu, 29 Apr 2021 19:44:37 +0900 Subject: [PATCH 2/2] use INCLUDE+ syntax, to run docker build within same directory, without using built images: see https://stackoverflow.com/a/65567427 --- docker/Dockerfile.ros-ubuntu:12.04-base | 4 ++- docker/Dockerfile.ros-ubuntu:14.04-base | 4 ++- docker/Dockerfile.ros-ubuntu:14.04-pcl | 4 ++- docker/Dockerfile.ros-ubuntu:14.04-pcl1.8 | 4 ++- docker/Dockerfile.ros-ubuntu:16.04-base | 4 ++- docker/Dockerfile.ros-ubuntu:16.04-pcl | 4 ++- docker/Dockerfile.ros-ubuntu:18.04-base | 4 ++- docker/Dockerfile.ros-ubuntu:18.04-pcl | 4 ++- docker/Dockerfile.ros-ubuntu:20.04-base | 4 ++- docker/Dockerfile.ros-ubuntu:20.04-pcl | 4 ++- docker/Makefile | 30 +++++++++++------------ 11 files changed, 45 insertions(+), 25 deletions(-) diff --git a/docker/Dockerfile.ros-ubuntu:12.04-base b/docker/Dockerfile.ros-ubuntu:12.04-base index 9b6996f..b435ded 100644 --- a/docker/Dockerfile.ros-ubuntu:12.04-base +++ b/docker/Dockerfile.ros-ubuntu:12.04-base @@ -1,3 +1,5 @@ -FROM ros-ubuntu:12.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:12.04 RUN sudo apt-get update && sudo apt-get dist-upgrade -y diff --git a/docker/Dockerfile.ros-ubuntu:14.04-base b/docker/Dockerfile.ros-ubuntu:14.04-base index b38b149..110ea9b 100644 --- a/docker/Dockerfile.ros-ubuntu:14.04-base +++ b/docker/Dockerfile.ros-ubuntu:14.04-base @@ -1,3 +1,5 @@ -FROM ros-ubuntu:14.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:14.04 RUN sudo apt-get update && sudo apt-get dist-upgrade -y diff --git a/docker/Dockerfile.ros-ubuntu:14.04-pcl b/docker/Dockerfile.ros-ubuntu:14.04-pcl index 4058d0e..24583c5 100644 --- a/docker/Dockerfile.ros-ubuntu:14.04-pcl +++ b/docker/Dockerfile.ros-ubuntu:14.04-pcl @@ -1,4 +1,6 @@ -FROM ros-ubuntu:14.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:14.04 RUN sudo apt-get update RUN sudo apt-get install -y python-vtk tcl-vtk diff --git a/docker/Dockerfile.ros-ubuntu:14.04-pcl1.8 b/docker/Dockerfile.ros-ubuntu:14.04-pcl1.8 index bc79dd3..48d1b4a 100644 --- a/docker/Dockerfile.ros-ubuntu:14.04-pcl1.8 +++ b/docker/Dockerfile.ros-ubuntu:14.04-pcl1.8 @@ -1,4 +1,6 @@ -FROM ros-ubuntu:14.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:14.04 RUN cd ~ && \ wget -q https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0rc2.tar.gz && \ diff --git a/docker/Dockerfile.ros-ubuntu:16.04-base b/docker/Dockerfile.ros-ubuntu:16.04-base index 00bad00..005d9c8 100644 --- a/docker/Dockerfile.ros-ubuntu:16.04-base +++ b/docker/Dockerfile.ros-ubuntu:16.04-base @@ -1,3 +1,5 @@ -FROM ros-ubuntu:16.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:16.04 RUN sudo apt-get update && sudo apt-get dist-upgrade -y diff --git a/docker/Dockerfile.ros-ubuntu:16.04-pcl b/docker/Dockerfile.ros-ubuntu:16.04-pcl index fcd4cea..8706d26 100644 --- a/docker/Dockerfile.ros-ubuntu:16.04-pcl +++ b/docker/Dockerfile.ros-ubuntu:16.04-pcl @@ -1,4 +1,6 @@ -FROM ros-ubuntu:16.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:16.04 RUN sudo apt-get update RUN sudo apt-get install -y ros-kinetic-pcl-conversions ros-kinetic-pcl-ros ros-kinetic-octomap-server diff --git a/docker/Dockerfile.ros-ubuntu:18.04-base b/docker/Dockerfile.ros-ubuntu:18.04-base index 6c3986f..d4794c9 100644 --- a/docker/Dockerfile.ros-ubuntu:18.04-base +++ b/docker/Dockerfile.ros-ubuntu:18.04-base @@ -1,3 +1,5 @@ -FROM ros-ubuntu:18.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:18.04 RUN sudo apt-get update && sudo apt-get dist-upgrade -y diff --git a/docker/Dockerfile.ros-ubuntu:18.04-pcl b/docker/Dockerfile.ros-ubuntu:18.04-pcl index 05bc178..a952f6c 100644 --- a/docker/Dockerfile.ros-ubuntu:18.04-pcl +++ b/docker/Dockerfile.ros-ubuntu:18.04-pcl @@ -1,4 +1,6 @@ -FROM ros-ubuntu:18.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:18.04 RUN sudo apt-get update RUN sudo apt-get install -y ros-melodic-pcl-conversions ros-melodic-pcl-ros ros-melodic-octomap-server diff --git a/docker/Dockerfile.ros-ubuntu:20.04-base b/docker/Dockerfile.ros-ubuntu:20.04-base index 1bc6146..c784869 100644 --- a/docker/Dockerfile.ros-ubuntu:20.04-base +++ b/docker/Dockerfile.ros-ubuntu:20.04-base @@ -1,3 +1,5 @@ -FROM ros-ubuntu:20.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:20.04 RUN sudo apt-get update && sudo apt-get dist-upgrade -y diff --git a/docker/Dockerfile.ros-ubuntu:20.04-pcl b/docker/Dockerfile.ros-ubuntu:20.04-pcl index ff4f298..a09e096 100644 --- a/docker/Dockerfile.ros-ubuntu:20.04-pcl +++ b/docker/Dockerfile.ros-ubuntu:20.04-pcl @@ -1,4 +1,6 @@ -FROM ros-ubuntu:20.04 +# syntax = edrevo/dockerfile-plus + +INCLUDE+ Dockerfile.ros-ubuntu:20.04 RUN sudo apt-get update RUN sudo apt-get install -y ros-noetic-pcl-conversions ros-noetic-pcl-ros ros-noetic-octomap-server diff --git a/docker/Makefile b/docker/Makefile index ec08b7c..84e69fa 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -6,63 +6,63 @@ all: 12.04-base 14.04-base 14.04-base 18.04-base 20.04-base \ 12.04-base: 12.04 Dockerfile.ros-ubuntu\:12.04-base echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 12.04: Dockerfile.ros-ubuntu\:12.04 echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 14.04-pcl1.8: 14.04 Dockerfile.ros-ubuntu\:14.04-pcl1.8 echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 14.04-pcl: 14.04 Dockerfile.ros-ubuntu\:14.04-pcl echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 14.04-base: 14.04 Dockerfile.ros-ubuntu\:14.04-base echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 14.04: Dockerfile.ros-ubuntu\:14.04 echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 16.04-pcl: 16.04 Dockerfile.ros-ubuntu\:16.04-pcl echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 16.04-base: 16.04 Dockerfile.ros-ubuntu\:16.04-base echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 16.04: Dockerfile.ros-ubuntu\:16.04 echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 18.04-pcl: 18.04 Dockerfile.ros-ubuntu\:18.04-pcl echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 18.04-base: 18.04 Dockerfile.ros-ubuntu\:18.04-base echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 18.04: Dockerfile.ros-ubuntu\:18.04 echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 20.04-pcl: 20.04 Dockerfile.ros-ubuntu\:20.04-pcl echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 20.04-base: 20.04 Dockerfile.ros-ubuntu\:20.04-base echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . 20.04: Dockerfile.ros-ubuntu\:20.04 echo "Building $@" - docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . + DOCKER_BUILDKIT=1 docker build -t ros-ubuntu:$@ $(DOCKER_BUILD_ARGS) -f Dockerfile.ros-ubuntu:$@ . .PHONY: Dockerfile.ros-ubuntu\:12.04 Dockerfile.ros-ubuntu\:12.04-base \ Dockerfile.ros-ubuntu\:14.04 Dockerfile.ros-ubuntu\:14.04-base Dockerfile.ros-ubuntu\:14.04-pcl Dockerfile.ros-ubuntu\:14.04-pcl1.8 \