From 20e6574c8c138482d69b5ce9a75bfb79def3413c Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Sun, 3 May 2020 13:11:29 +0200 Subject: [PATCH 1/2] Use pre-compiled CMake. --- docker/cmake.sh | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/docker/cmake.sh b/docker/cmake.sh index 8aa097543..6c2ef8f01 100755 --- a/docker/cmake.sh +++ b/docker/cmake.sh @@ -4,21 +4,15 @@ set -x set -euo pipefail main() { - local version=3.16.5 + local version=3.17.2 - local dependencies=( - curl - g++ - libssl-dev - make - zlib1g-dev - ) + local dependencies=(curl) apt-get update local purge_list=() for dep in ${dependencies[@]}; do if ! dpkg -L $dep; then - apt-get install --no-install-recommends --assume-yes $dep + apt-get install --assume-yes --no-install-recommends $dep purge_list+=( $dep ) fi done @@ -27,21 +21,17 @@ main() { pushd $td - curl https://cmake.org/files/v${version%.*}/cmake-$version.tar.gz | \ - tar --strip-components 1 -xz + curl -sSfL "https://github.com/Kitware/CMake/releases/download/v${version}/cmake-${version}-Linux-x86_64.sh" -o cmake.sh + sh cmake.sh --skip-license --prefix=/usr/local - ./bootstrap - make -j$(nproc) - make install - - # clean up popd if (( ${#purge_list[@]} )); then - apt-get purge --auto-remove -y ${purge_list[@]} + apt-get purge --assume-yes --auto-remove ${purge_list[@]} fi rm -rf $td + rm -rf /var/lib/apt/lists/* rm $0 } From a4c1f45b2c56290b24c1cf51c5cc4c889bb45ae2 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Sun, 3 May 2020 13:12:27 +0200 Subject: [PATCH 2/2] Only use `--cache-from` if image was pulled. --- build-docker-image.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/build-docker-image.sh b/build-docker-image.sh index 2d1a95b69..7d43eeccb 100755 --- a/build-docker-image.sh +++ b/build-docker-image.sh @@ -10,8 +10,10 @@ run() { local image_name="rustembedded/cross:${1}" local cache_from_args= - if docker image inspect "${image_name}" &>/dev/null || docker pull "${image_name}"; then - cache_from_args=(--cache-from "${image_name}") + if ! docker image inspect "${image_name}" &>/dev/null; then + if docker pull "${image_name}"; then + cache_from_args=(--cache-from "${image_name}") + fi fi docker build ${cache_from_args[@]} --pull -t "${image_name}" -f "${dockerfile}" .