]>
Commit | Line | Data |
---|---|---|
2801d0f4 ER |
1 | # syntax = docker/dockerfile:experimental |
2 | # | |
3 | # Requires Docker v18.06 or later and BuildKit mode to use cache mount | |
4 | # Docker v18.06 also requires the daemon to be running in experimental mode. | |
5 | # | |
6 | # $ DOCKER_BUILDKIT=1 docker build . | |
7 | # | |
8 | # See https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/syntax.md | |
06459a6a | 9 | |
d27cf819 | 10 | FROM registry.gitlab.com/pld-linux/pld AS base |
06459a6a | 11 | |
d27cf819 ER |
12 | FROM base AS dist |
13 | WORKDIR /dist | |
14 | ||
15 | COPY rpmmacros ./home/builder/.rpmmacros | |
16 | # overwrite with our config (it defines same path, but disabled) | |
17 | COPY localrpms.conf ./etc/poldek/source.conf | |
1deb546f | 18 | COPY sudoers ./etc/sudoers.d/builder |
d27cf819 ER |
19 | |
20 | # use sane permissions until solved upstream | |
21 | # https://gitlab.com/gitlab-org/gitlab-runner/issues/1736 | |
22 | RUN chmod -R a+rX,og-w . | |
23 | ||
24 | FROM base | |
2801d0f4 ER |
25 | RUN --mount=type=cache,id=poldek,target=/var/cache/poldek \ |
26 | set -x \ | |
27 | # enable to preserve downloaded packages | |
28 | && poldek-config keep_downloads yes \ | |
3c96e420 ER |
29 | # disable mixed php versions |
30 | # remove current php flavor from exclude list | |
31 | && PHP_VERSION=5.3 \ | |
32 | && IGNORE_PACKAGES="systemd-init *php4* *php52* *php53* *php54* *php55* *php56* *php70* *php71* *php72* *php73* *php74* *php80* *php81* *php82**" \ | |
33 | && IGNORE_PACKAGES=$(echo "$IGNORE_PACKAGES" | sed -e "s/ \*php${PHP_VERSION/./}\*//") \ | |
34 | && poldek-config ignore "$IGNORE_PACKAGES" \ | |
06459a6a | 35 | # first upgrade to latest |
2801d0f4 | 36 | && poldek --up --upgrade-dist \ |
06459a6a | 37 | # install build deps |
6cf60de2 | 38 | && poldek -u \ |
8101613d | 39 | binutils \ |
67ce0dc7 | 40 | ca-certificates \ |
6cf60de2 ER |
41 | ccache-wrapper \ |
42 | coreutils \ | |
57e5f5ad | 43 | findutils \ |
6cf60de2 ER |
44 | gawk \ |
45 | git-core \ | |
46 | perl-modules \ | |
47 | rpm-build \ | |
e7779c16 | 48 | rpm-getdeps \ |
6cf60de2 ER |
49 | sudo \ |
50 | util-linux \ | |
06459a6a ER |
51 | # this will setup builder user |
52 | && poldek -u pld-builder-chroot \ | |
2801d0f4 | 53 | # useless, as it configures empty dir |
54efabeb | 54 | && rm /etc/poldek/repos.d/pld-builder.conf \ |
2801d0f4 | 55 | && exit 0 |
06459a6a | 56 | |
d27cf819 | 57 | COPY --from=dist /dist / |
e0f7de47 | 58 | |
06459a6a ER |
59 | # switch user |
60 | USER builder | |
d27cf819 | 61 | WORKDIR /home/builder |
73d3710b | 62 | |
06459a6a ER |
63 | # Use sleep to run forever |
64 | CMD ["sleep", "infinity"] |