summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/alpine/Dockerfile9
-rwxr-xr-xdocker/alpine/libyang/APKBUILD2
-rw-r--r--docker/ubi8-minimal/Dockerfile5
-rw-r--r--docker/ubuntu-ci/Dockerfile29
-rw-r--r--docker/ubuntu20-ci/README.md8
-rw-r--r--docker/ubuntu22-ci/README.md14
6 files changed, 36 insertions, 31 deletions
diff --git a/docker/alpine/Dockerfile b/docker/alpine/Dockerfile
index 98e8407..1cff06f 100644
--- a/docker/alpine/Dockerfile
+++ b/docker/alpine/Dockerfile
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1
# Create a basic stage set up to build APKs
-FROM alpine:3.18 as alpine-builder
+FROM alpine:3.19 as alpine-builder
RUN apk add \
--update-cache \
abuild \
@@ -24,7 +24,7 @@ RUN cd /src/libyang \
&& abuild -r -P /pkgs/apk
# This stage builds a dist tarball from the source
-FROM alpine:3.18 as source-builder
+FROM alpine:3.19 as source-builder
RUN mkdir -p /src/alpine /pkgs/apk
COPY alpine/APKBUILD.in /src/alpine
COPY --from=alpine-apk-builder-libyang /pkgs/apk/src /pkgs/apk
@@ -33,8 +33,7 @@ RUN source /src/alpine/APKBUILD.in \
&& apk add \
--no-cache \
--update-cache \
- $makedepends \
- && pip install pytest
+ $makedepends
COPY . /src
ARG PKGVER
RUN cd /src \
@@ -58,7 +57,7 @@ RUN cd /dist \
&& abuild -r -P /pkgs/apk
# This stage installs frr from the apk
-FROM alpine:3.18
+FROM alpine:3.19
RUN mkdir -p /pkgs/apk
COPY --from=alpine-apk-builder /pkgs/apk/ /pkgs/apk/
RUN apk add \
diff --git a/docker/alpine/libyang/APKBUILD b/docker/alpine/libyang/APKBUILD
index 04e943f..6973fd6 100755
--- a/docker/alpine/libyang/APKBUILD
+++ b/docker/alpine/libyang/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Christian Franke <nobody@nowhere.ws>
pkgname=libyang
-pkgver=2.1.80
+pkgver=2.1.128
pkgrel=0
pkgdesc="YANG data modelling language parser and toolkit"
url="https://github.com/CESNET/libyang"
diff --git a/docker/ubi8-minimal/Dockerfile b/docker/ubi8-minimal/Dockerfile
index 53f8d25..14a5cdd 100644
--- a/docker/ubi8-minimal/Dockerfile
+++ b/docker/ubi8-minimal/Dockerfile
@@ -10,6 +10,7 @@ ADD docker/ubi8-minimal/almalinux.repo /etc/yum.repos.d/almalinux.repo
# and later reinstall it again: https://bugzilla.redhat.com/show_bug.cgi?id=1668185
RUN rpm --quiet -e --nodeps tzdata >/dev/null 2>&1
+# Keep the list of dependencies alphabetically sorted for easier maintenance
RUN microdnf --disableplugin=subscription-manager --setopt=install_weak_deps=0 install \
autoconf \
automake \
@@ -29,6 +30,7 @@ RUN microdnf --disableplugin=subscription-manager --setopt=install_weak_deps=0 i
pcre-devel \
pkgconfig \
platform-python-devel \
+ protobuf-c-devel \
python3-devel \
python3-pytest \
python3-sphinx \
@@ -37,7 +39,6 @@ RUN microdnf --disableplugin=subscription-manager --setopt=install_weak_deps=0 i
systemd-devel \
texinfo \
tzdata \
- protobuf-c-devel \
&& microdnf --disableplugin=subscription-manager clean all
RUN curl -sSL -o /tmp/libyang2.rpm https://ci1.netdef.org/artifact/LIBYANG-LIBYANG2/shared/build-181/RedHat-8-x86_64-Packages/libyang-2.1.80-1.el8.x86_64.rpm \
@@ -92,12 +93,14 @@ ADD docker/ubi8-minimal/almalinux.repo /etc/yum.repos.d/almalinux.repo
RUN rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux-8
+# Keep the list of dependencies alphabetically sorted for easier maintenance
RUN microdnf --disableplugin=subscription-manager --setopt=install_weak_deps=0 install \
c-ares \
initscripts \
net-snmp-agent-libs \
net-snmp-libs \
openssl \
+ protobuf-c \
python3 \
shadow-utils \
systemd \
diff --git a/docker/ubuntu-ci/Dockerfile b/docker/ubuntu-ci/Dockerfile
index 939a43e..5a49806 100644
--- a/docker/ubuntu-ci/Dockerfile
+++ b/docker/ubuntu-ci/Dockerfile
@@ -41,17 +41,24 @@ RUN apt update && apt upgrade -y && \
cmake \
libpcre2-dev \
&& \
+ # GRPC extra build requirements
+ apt-get install -y \
+ libgrpc-dev \
+ libgrpc++-dev \
+ protobuf-compiler-grpc \
+ && \
# Runtime/triage/testing requirements
apt-get install -y \
curl \
gdb \
+ kmod \
iproute2 \
iputils-ping \
liblua5.3-dev \
libssl-dev \
lua5.3 \
net-tools \
- python2 \
+ python3 \
python3-pip \
snmp \
snmp-mibs-downloader \
@@ -66,17 +73,12 @@ RUN apt update && apt upgrade -y && \
wget https://raw.githubusercontent.com/FRRouting/frr-mibs/main/iana/IANA-IPPM-METRICS-REGISTRY-MIB -O /usr/share/snmp/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB && \
wget https://raw.githubusercontent.com/FRRouting/frr-mibs/main/ietf/SNMPv2-PDU -O /usr/share/snmp/mibs/ietf/SNMPv2-PDU && \
wget https://raw.githubusercontent.com/FRRouting/frr-mibs/main/ietf/IPATM-IPMC-MIB -O /usr/share/snmp/mibs/ietf/IPATM-IPMC-MIB && \
- curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output /tmp/get-pip.py && \
- python2 /tmp/get-pip.py && \
- rm -f /tmp/get-pip.py && \
python3 -m pip install wheel && \
- python3 -m pip install pytest && \
- python3 -m pip install pytest-sugar && \
- python3 -m pip install pytest-xdist && \
- python3 -m pip install "scapy>=2.4.2" && \
+ python3 -m pip install 'protobuf<4' grpcio grpcio-tools && \
+ python3 -m pip install 'pytest>=6.2.4' 'pytest-xdist>=2.3.0' && \
+ python3 -m pip install 'scapy>=2.4.5' && \
python3 -m pip install xmltodict && \
- python3 -m pip install grpcio grpcio-tools && \
- python2 -m pip install 'exabgp<4.0.0'
+ python3 -m pip install git+https://github.com/Exa-Networks/exabgp@0659057837cd6c6351579e9f0fa47e9fb7de7311
RUN groupadd -r -g 92 frr && \
groupadd -r -g 85 frrvty && \
@@ -93,7 +95,7 @@ USER frr:frr
RUN cd && pwd && ls -al && \
git clone https://github.com/CESNET/libyang.git && \
cd libyang && \
- git checkout v2.1.80 && \
+ git checkout v2.1.128 && \
mkdir build; cd build && \
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE:String="Release" .. && \
@@ -106,14 +108,15 @@ RUN cd ~/frr && \
./bootstrap.sh && \
./configure \
--prefix=/usr \
- --localstatedir=/var/run/frr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
--sbindir=/usr/lib/frr \
- --sysconfdir=/etc/frr \
--enable-sharpd \
--enable-multipath=64 \
--enable-user=frr \
--enable-group=frr \
--enable-config-rollbacks \
+ --enable-grpc \
--enable-vty-group=frrvty \
--enable-snmp=agentx \
--enable-scripting \
diff --git a/docker/ubuntu20-ci/README.md b/docker/ubuntu20-ci/README.md
index 536f8e2..6c0ff44 100644
--- a/docker/ubuntu20-ci/README.md
+++ b/docker/ubuntu20-ci/README.md
@@ -11,13 +11,13 @@ docker build -t frr-ubuntu20:latest --build-arg=UBUNTU_VERSION=20.04 -f docker/u
# Running Full Topotest
```
-docker run --init -it --privileged --name frr -v /lib/modules:/lib/modules frr-ubuntu22:latest bash -c 'cd ~/frr/tests/topotests ; sudo pytest -nauto --dist=loadfile'
+docker run --init -it --privileged --name frr-ubuntu20 -v /lib/modules:/lib/modules frr-ubuntu20:latest bash -c 'cd ~/frr/tests/topotests ; sudo pytest -nauto --dist=loadfile'
```
# Extract results from the above run into `run-results` dir and analyze
```
-tests/topotest/analyze.py -C frr -Ar run-results
+tests/topotests/analyze.py -C frr-ubuntu20 -Ar run-results
```
# Running
@@ -41,13 +41,13 @@ docker exec -it frr-ubuntu20 bash
# topotest -- when Host O/S is Ubuntu only
```
-docker exec frr-ubuntu20 bash -c 'cd ~/frr/tests/topotests/ospf-topo1 ; sudo pytest test_ospf_topo1.py'
+docker exec frr-ubuntu20 bash -c 'cd ~/frr/tests/topotests/ospf_topo1 ; sudo pytest test_ospf_topo1.py'
```
# stop & remove container
```
-docker stop frr-ubuntu20 ; docker rm frr-ubuntu18
+docker stop frr-ubuntu20 ; docker rm frr-ubuntu20
```
# remove image
diff --git a/docker/ubuntu22-ci/README.md b/docker/ubuntu22-ci/README.md
index 403abbf..73f4a10 100644
--- a/docker/ubuntu22-ci/README.md
+++ b/docker/ubuntu22-ci/README.md
@@ -11,43 +11,43 @@ docker build -t frr-ubuntu22:latest -f docker/ubuntu-ci/Dockerfile .
# Running Full Topotest
```
-docker run --init -it --privileged --name frr -v /lib/modules:/lib/modules frr-ubuntu22:latest bash -c 'cd ~/frr/tests/topotests ; sudo pytest -nauto --dist=loadfile'
+docker run --init -it --privileged --name frr-ubuntu22 -v /lib/modules:/lib/modules frr-ubuntu22:latest bash -c 'cd ~/frr/tests/topotests ; sudo pytest -nauto --dist=loadfile'
```
# Extract results from the above run into `run-results` dir and analyze
```
-tests/topotest/analyze.py -C frr -Ar run-results
+tests/topotests/analyze.py -C frr-ubuntu22 -Ar run-results
```
# Running
```
-docker run -d --init --privileged --name frr --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu22:latest
+docker run -d --init --privileged --name frr-ubuntu22 --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu22:latest
```
# make check
```
-docker exec frr bash -c 'cd ~/frr ; make check'
+docker exec frr-ubuntu22 bash -c 'cd ~/frr ; make check'
```
# interactive bash
```
-docker exec -it frr bash
+docker exec -it frr-ubuntu22 bash
```
# topotest -- when Host O/S is Ubuntu only
```
-docker exec frr bash -c 'cd ~/frr/tests/topotests/ospf-topo1 ; sudo pytest test_ospf_topo1.py'
+docker exec frr-ubuntu22 bash -c 'cd ~/frr/tests/topotests/ospf_topo1 ; sudo pytest test_ospf_topo1.py'
```
# stop & remove container
```
-docker stop frr ; docker rm frr
+docker stop frr-ubuntu22 ; docker rm frr-ubuntu22
```
# remove image