docker: Use libyang 2.1.80 for Alpine builds

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
Donatas Abraitis 2023-07-20 23:16:38 +03:00
parent 27083f7885
commit 8456322835
2 changed files with 17 additions and 4 deletions

View file

@ -18,7 +18,7 @@ makedepends="ncurses-dev net-snmp-dev gawk texinfo perl
ncurses-libs ncurses-terminfo ncurses-terminfo-base patch pax-utils pcre2
perl pkgconf python3 python3-dev readline readline-dev sqlite-libs pcre2-dev
squashfs-tools sudo tar texinfo xorriso xz-libs py-pip rtrlib rtrlib-dev
py3-sphinx elfutils elfutils-dev libyang-dev protobuf-c-compiler protobuf-c-dev
py3-sphinx elfutils elfutils-dev protobuf-c-compiler protobuf-c-dev
lua5.3-dev lua5.3 gzip"
checkdepends="pytest py-setuptools"
install="$pkgname.pre-install $pkgname.pre-deinstall $pkgname.post-deinstall"

View file

@ -12,18 +12,29 @@ RUN apk add \
&& echo 'builder ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
RUN adduser -D -G abuild builder && su builder -c 'abuild-keygen -a -n'
# This stage builds an APK for libyang
FROM alpine-builder as alpine-apk-builder-libyang
RUN mkdir -p /src/libyang
COPY docker/alpine/libyang/APKBUILD /src/libyang
RUN chown -R builder /pkgs /src
USER builder
RUN cd /src/libyang \
&& abuild checksum \
&& git init \
&& abuild -r -P /pkgs/apk
# This stage builds a dist tarball from the source
FROM alpine:3.18 as source-builder
RUN mkdir -p /src/alpine
RUN mkdir -p /src/alpine /pkgs/apk
COPY alpine/APKBUILD.in /src/alpine
COPY --from=alpine-apk-builder-libyang /pkgs/apk/src /pkgs/apk
RUN cd /pkgs/apk/x86_64 && apk add --allow-untrusted *.apk
RUN source /src/alpine/APKBUILD.in \
&& apk add \
--no-cache \
--update-cache \
$makedepends \
&& pip install pytest
RUN mkdir -p /pkgs/apk
COPY . /src
ARG PKGVER
RUN cd /src \
@ -36,6 +47,8 @@ RUN cd /src \
# This stage builds an APK from the dist tarball
FROM alpine-builder as alpine-apk-builder
COPY --from=source-builder /src/frr-*.tar.gz /src/alpine/* /dist/
COPY --from=alpine-apk-builder-libyang /pkgs/apk/src /pkgs/apk
RUN cd /pkgs/apk/x86_64 && apk add --allow-untrusted *.apk
RUN find /pkgs/apk -type f -name APKINDEX.tar.gz -delete
RUN chown -R builder /dist /pkgs
USER builder