]> git.pld-linux.org Git - projects/cleanbuild.git/commitdiff
Use build cache to speedup local docker image rebuilds
authorElan Ruusamäe <glen@delfi.ee>
Sun, 29 Aug 2021 12:41:42 +0000 (15:41 +0300)
committerElan Ruusamäe <glen@delfi.ee>
Sun, 29 Aug 2021 12:41:42 +0000 (15:41 +0300)
docker/Dockerfile
docker/build-docker.sh

index 49733effa8dbc18fc9afc1dc1ebc5f1ed2e7d4fd..75b54dae3b1027e080908923f643cb50fbea94f7 100644 (file)
@@ -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 /
 
index ebfc503f8a8db9840f244d9a57eb8db8b40bab73..bba83dcfd929cb49157c073e5f3cd706b450b4de 100755 (executable)
@@ -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 .
This page took 0.162542 seconds and 4 git commands to generate.