summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2022-09-20 22:23:55 +0200
committerDonatas Abraitis <donatas@opensourcerouting.org>2022-09-20 22:23:55 +0200
commit7be59f7b7ccde921d9f063a87cb10342425c7a24 (patch)
tree97cac945964ab4a3df01aae46d6bf72c30f9f54f
parentMerge pull request #11972 from pguibert6WIND/mpls_te_on (diff)
downloadfrr-7be59f7b7ccde921d9f063a87cb10342425c7a24.tar.xz
frr-7be59f7b7ccde921d9f063a87cb10342425c7a24.zip
docker: Keep and copy .apk files after they are built
For debugging purposes and/or to distribute them somewhere else. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
-rw-r--r--docker/alpine/Dockerfile26
-rwxr-xr-xdocker/alpine/build.sh12
2 files changed, 13 insertions, 25 deletions
diff --git a/docker/alpine/Dockerfile b/docker/alpine/Dockerfile
index 187b52852..b9278dbb8 100644
--- a/docker/alpine/Dockerfile
+++ b/docker/alpine/Dockerfile
@@ -12,16 +12,6 @@ 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 a libyang APK from source
-FROM alpine-builder as libyang-builder
-RUN mkdir -p /libyang && chown -R builder /pkgs /libyang
-# -- Not currently needed - libyang currently available in Alpine upstream
-# COPY docker/alpine/libyang/ /libyang
-# USER builder
-# RUN cd /libyang \
-# && abuild checksum \
-# && abuild -r -P /pkgs/apk
-
# This stage builds a dist tarball from the source
FROM alpine:3.15 as source-builder
@@ -36,14 +26,7 @@ RUN source /src/alpine/APKBUILD.in \
py-pip \
rtrlib \
&& pip install pytest
-
RUN mkdir -p /pkgs/apk
-# -- Not needed while libyang is not built
-# COPY --from=libyang-builder /pkgs/apk/ /pkgs/apk/
-# RUN apk add \
-# --no-cache \
-# --allow-untrusted /pkgs/apk/*/*.apk \
-
COPY . /src
ARG PKGVER
RUN cd /src \
@@ -54,12 +37,7 @@ RUN cd /src \
&& make dist
# This stage builds an APK from the dist tarball
-FROM alpine-builder as frr-apk-builder
-# -- Not needed while libyang is not built
-# COPY --from=libyang-builder /pkgs/apk/ /pkgs/apk/
-# RUN apk add \
-# --no-cache \
-# --allow-untrusted /pkgs/apk/*/*.apk
+FROM alpine-builder as alpine-apk-builder
COPY --from=source-builder /src/frr-*.tar.gz /src/alpine/* /dist/
RUN find /pkgs/apk -type f -name APKINDEX.tar.gz -delete
RUN chown -R builder /dist /pkgs
@@ -72,7 +50,7 @@ RUN cd /dist \
# This stage installs frr from the apk
FROM alpine:3.15
RUN mkdir -p /pkgs/apk
-COPY --from=frr-apk-builder /pkgs/apk/ /pkgs/apk/
+COPY --from=alpine-apk-builder /pkgs/apk/ /pkgs/apk/
RUN apk add \
--no-cache \
--update-cache \
diff --git a/docker/alpine/build.sh b/docker/alpine/build.sh
index 3132feb9f..80ee81c82 100755
--- a/docker/alpine/build.sh
+++ b/docker/alpine/build.sh
@@ -25,7 +25,16 @@ docker build \
--target=alpine-builder \
.
-CONTAINER_ID="$(docker create "frr:alpine-builder-$GITREV")"
+# Keep .apk files for debugging purposes, docker image as well.
+docker build \
+ --pull \
+ --file=docker/alpine/Dockerfile \
+ --build-arg="PKGVER=$PKGVER" \
+ --tag="frr:alpine-apk-builder-$GITREV" \
+ --target=alpine-apk-builder \
+ .
+
+CONTAINER_ID="$(docker create "frr:alpine-apk-builder-$GITREV")"
docker cp "${CONTAINER_ID}:/pkgs/" docker/alpine
docker rm "${CONTAINER_ID}"
@@ -36,3 +45,4 @@ docker build \
.
docker rmi "frr:alpine-builder-$GITREV"
+docker rmi "frr:alpine-apk-builder-$GITREV"