From 78f7bfe0a8c36ebf9b605c77e0523f57f03551d6 Mon Sep 17 00:00:00 2001
From: Guilhem Saurel <guilhem.saurel@laas.fr>
Date: Fri, 3 Apr 2020 21:41:11 +0200
Subject: [PATCH] playing with experimental & buildkit

- without cache:       [+] Building 559.6s (12/12) FINISHED
- with ccache:         [+] Building 30.7s (12/12) FINISHED
- with docker cache:   [+] Building 3.4s (12/12) FINISHED
---
 docker/eigenpy/Dockerfile.experimental | 34 ++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 docker/eigenpy/Dockerfile.experimental

diff --git a/docker/eigenpy/Dockerfile.experimental b/docker/eigenpy/Dockerfile.experimental
new file mode 100644
index 0000000..c333646
--- /dev/null
+++ b/docker/eigenpy/Dockerfile.experimental
@@ -0,0 +1,34 @@
+# syntax=docker/dockerfile:experimental
+ARG UBUNTU=bionic
+FROM ubuntu:$UBUNTU
+
+ENV DEBIAN_FRONTEND=noninteractive CTEST_OUTPUT_ON_FAILURE=true
+
+RUN rm -f /etc/apt/apt.conf.d/docker-clean \
+ && echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
+
+# check ccache vs docker cache hits with "docker build --build-arg EPOCH=$(date +%s) -f Dockerfile.experimental ."
+ARG EPOCH=1
+ENV EPOCH=${EPOCH}
+
+RUN --mount=type=cache,target=/var/cache/apt --mount=type=cache,target=/var/lib/apt \
+    apt-get update -y \
+ && apt-get install -y \
+    build-essential \
+    ccache \
+    cmake \
+    git \
+    libboost-all-dev \
+    libeigen3-dev \
+    python3-numpy
+
+RUN git clone --recursive -b devel https://github.com/stack-of-tasks/eigenpy.git \
+ && mkdir /eigenpy/build
+
+WORKDIR /eigenpy/build
+
+ENV CXX="/usr/lib/ccache/g++" CC="/usr/lib/ccache/gcc"
+
+RUN cmake -DPYTHON_EXECUTABLE=/usr/bin/python3 ..
+
+RUN --mount=type=cache,target=/root/.ccache make -s
-- 
GitLab