-# 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
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 \
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 /
#!/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 .