]>
Commit | Line | Data |
---|---|---|
e3f80e1e CF |
1 | # This stage builds a dist tarball from the source |
2 | FROM alpine:edge as source-builder | |
e3f80e1e CF |
3 | |
4 | RUN mkdir -p /src/alpine | |
5 | COPY alpine/APKBUILD.in /src/alpine | |
6 | RUN source /src/alpine/APKBUILD.in \ | |
7 | && echo 'http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories \ | |
8 | && apk add \ | |
9 | --no-cache \ | |
10 | --update-cache \ | |
11 | $makedepends \ | |
12 | gzip | |
13 | ||
14 | COPY . /src | |
eab6daa2 | 15 | ARG PKGVER |
e3f80e1e CF |
16 | RUN cd /src \ |
17 | && ./bootstrap.sh \ | |
18 | && ./configure \ | |
79bb4564 | 19 | --enable-numeric-version \ |
eab6daa2 | 20 | --with-pkg-extra-version="_git$PKGVER" \ |
e3f80e1e CF |
21 | && make dist |
22 | ||
23 | # This stage builds an apk from the dist tarball | |
24 | FROM alpine:edge as alpine-builder | |
25 | # Don't use nocache here so that abuild can use the cache | |
26 | RUN echo 'http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories \ | |
27 | && apk add \ | |
28 | --update-cache \ | |
29 | abuild \ | |
30 | alpine-conf \ | |
31 | alpine-sdk \ | |
32 | && setup-apkcache /var/cache/apk \ | |
33 | && mkdir -p /pkgs/apk \ | |
34 | && echo 'builder ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers | |
35 | ||
36 | COPY --from=source-builder /src/frr-*.tar.gz /src/alpine/* /dist/ | |
79bb4564 AJ |
37 | RUN adduser -D -G abuild builder && chown -R builder /dist /pkgs |
38 | USER builder | |
e3f80e1e CF |
39 | RUN cd /dist \ |
40 | && abuild-keygen -a -n \ | |
41 | && abuild checksum \ | |
42 | && abuild -r -P /pkgs/apk | |
43 | ||
44 | # This stage installs frr from the apk | |
45 | FROM alpine:edge | |
19e622d5 AJ |
46 | RUN mkdir -p /pkgs/apk |
47 | COPY --from=alpine-builder /pkgs/apk/ /pkgs/apk/ | |
e3f80e1e CF |
48 | RUN echo 'http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories \ |
49 | && apk add \ | |
50 | --no-cache \ | |
51 | --update-cache \ | |
52 | tini \ | |
53 | && apk add \ | |
54 | --no-cache \ | |
eab6daa2 CF |
55 | --allow-untrusted /pkgs/apk/*/*.apk \ |
56 | && rm -rf /pkgs | |
727aebd6 | 57 | COPY docker/alpine/docker-start /usr/lib/frr/docker-start |
915c81b3 | 58 | ENTRYPOINT [ "/sbin/tini", "--", "/usr/lib/frr/docker-start" ] |