diff options
author | Elan Ruusamäe | 2021-08-29 12:41:42 (GMT) |
---|---|---|
committer | Elan Ruusamäe | 2021-08-29 12:41:42 (GMT) |
commit | 2801d0f4e321a65b416e20025399ede0bf7aa987 (patch) | |
tree | cf03434f5a661499a28c6a39de5665519102bcc7 | |
parent | 67ce0dc70cb305803fe34e2999dcdc99a407c23d (diff) | |
download | cleanbuild-2801d0f4e321a65b416e20025399ede0bf7aa987.zip cleanbuild-2801d0f4e321a65b416e20025399ede0bf7aa987.tar.gz |
Use build cache to speedup local docker image rebuilds
-rw-r--r-- | docker/Dockerfile | 22 | ||||
-rwxr-xr-x | docker/build-docker.sh | 12 |
2 files changed, 23 insertions, 11 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile index 49733ef..75b54da 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,11 @@ -# create base image for cleanbuild +# syntax = docker/dockerfile:experimental +# +# Requires Docker v18.06 or later and BuildKit mode to use cache mount +# Docker v18.06 also requires the daemon to be running in experimental mode. +# +# $ DOCKER_BUILDKIT=1 docker build . +# +# See https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/syntax.md FROM registry.gitlab.com/pld-linux/pld AS base @@ -15,9 +22,12 @@ COPY sudoers ./etc/sudoers.d/builder RUN chmod -R a+rX,og-w . FROM base -RUN set -x \ +RUN --mount=type=cache,id=poldek,target=/var/cache/poldek \ + set -x \ + # enable to preserve downloaded packages + && poldek-config keep_downloads yes \ # first upgrade to latest - && poldek --upgrade-dist \ + && poldek --up --upgrade-dist \ # install build deps && poldek -u \ binutils \ @@ -34,11 +44,9 @@ RUN set -x \ util-linux \ # this will setup builder user && poldek -u pld-builder-chroot \ - # configures empty dir + # useless, as it configures empty dir && rm /etc/poldek/repos.d/pld-builder.conf \ - # preserve downloaded packages - && poldek-config keep_downloads yes \ - && poldek --clean-whole + && exit 0 COPY --from=dist /dist / diff --git a/docker/build-docker.sh b/docker/build-docker.sh index ebfc503..bba83dc 100755 --- a/docker/build-docker.sh +++ b/docker/build-docker.sh @@ -1,8 +1,12 @@ #!/bin/sh -# use this script to build the image locally -set -e - -export DOCKER_BUILDKIT=${DOCKER_BUILDKIT:-1} +# Use this script to build the image locally +set -eu image=registry.gitlab.com/pld-linux/cleanbuild + +script=$(readlink -f "$0") +dir=$(dirname "$0") +cd "$dir" + +export DOCKER_BUILDKIT=1 docker build --pull -t $image . |