]> git.proxmox.com Git - mirror_frr.git/blame - docker/alpine/Dockerfile
docker/alpine: Update buildscript to keep the docker image around
[mirror_frr.git] / docker / alpine / Dockerfile
CommitLineData
e3f80e1e
CF
1# This stage builds a dist tarball from the source
2FROM alpine:edge as source-builder
e3f80e1e
CF
3
4RUN mkdir -p /src/alpine
5COPY alpine/APKBUILD.in /src/alpine
6RUN 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
14COPY . /src
eab6daa2 15ARG PKGVER
e3f80e1e
CF
16RUN 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
24FROM alpine:edge as alpine-builder
25# Don't use nocache here so that abuild can use the cache
26RUN 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
36COPY --from=source-builder /src/frr-*.tar.gz /src/alpine/* /dist/
79bb4564
AJ
37RUN adduser -D -G abuild builder && chown -R builder /dist /pkgs
38USER builder
e3f80e1e
CF
39RUN 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
45FROM alpine:edge
19e622d5
AJ
46RUN mkdir -p /pkgs/apk
47COPY --from=alpine-builder /pkgs/apk/ /pkgs/apk/
e3f80e1e
CF
48RUN 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 57COPY docker/alpine/docker-start /usr/lib/frr/docker-start
915c81b3 58ENTRYPOINT [ "/sbin/tini", "--", "/usr/lib/frr/docker-start" ]