diff options
| author | Christian Hopps <chopps@labn.net> | 2025-01-12 02:30:08 +0000 | 
|---|---|---|
| committer | Christian Hopps <chopps@labn.net> | 2025-01-12 02:48:29 +0000 | 
| commit | 1cfccbf10377d6e7997e4a2f61d1f921a5b56c2b (patch) | |
| tree | ce8fd2e96161276d43715d80b4df09ef25db5b47 /docker | |
| parent | 901d05961473d48398eb1166dd6530b2b7651922 (diff) | |
docker: add ubuntu24-ci docker image support
Signed-off-by: Christian Hopps <chopps@labn.net>
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/ubuntu-ci/Dockerfile | 6 | ||||
| -rw-r--r-- | docker/ubuntu22-ci/README.md | 2 | ||||
| -rw-r--r-- | docker/ubuntu24-ci/README.md | 66 | 
3 files changed, 70 insertions, 4 deletions
diff --git a/docker/ubuntu-ci/Dockerfile b/docker/ubuntu-ci/Dockerfile index aaad3bc172..0bfcb51878 100644 --- a/docker/ubuntu-ci/Dockerfile +++ b/docker/ubuntu-ci/Dockerfile @@ -2,7 +2,6 @@ ARG UBUNTU_VERSION=22.04  FROM ubuntu:$UBUNTU_VERSION  ARG DEBIAN_FRONTEND=noninteractive -ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn  # Update and install build requirements.  RUN apt update && apt upgrade -y && \ @@ -77,14 +76,15 @@ 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 && \ +    rm -f /usr/lib/python3.*/EXTERNALLY-MANAGED && \      python3 -m pip install wheel && \ -    python3 -m pip install 'protobuf<4' grpcio grpcio-tools && \ +    python3 -m pip install protobuf 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 git+https://github.com/Exa-Networks/exabgp@0659057837cd6c6351579e9f0fa47e9fb7de7311 -ARG UID=1000 +ARG UID=1010  RUN groupadd -r -g 92 frr && \        groupadd -r -g 85 frrvty && \        adduser --system --ingroup frr --home /home/frr \ diff --git a/docker/ubuntu22-ci/README.md b/docker/ubuntu22-ci/README.md index 617192eb71..116b3c0e4a 100644 --- a/docker/ubuntu22-ci/README.md +++ b/docker/ubuntu22-ci/README.md @@ -5,7 +5,7 @@ This builds an ubuntu 22.04 container for dev / test  # Build  ``` -docker build -t frr-ubuntu22:latest -f docker/ubuntu-ci/Dockerfile . +docker build -t frr-ubuntu22:latest --build-arg=UBUNTU_VERSION=22.04 -f docker/ubuntu-ci/Dockerfile .  ```  # Run diff --git a/docker/ubuntu24-ci/README.md b/docker/ubuntu24-ci/README.md new file mode 100644 index 0000000000..38ba0ee171 --- /dev/null +++ b/docker/ubuntu24-ci/README.md @@ -0,0 +1,66 @@ +# Ubuntu 24.04 + +This builds an ubuntu 24.04 container for dev / test + +# Build + +``` +docker build -t frr-ubuntu24:latest --build-arg=UBUNTU_VERSION=24.04 -f docker/ubuntu-ci/Dockerfile . +``` + +# Run + +``` +docker run -d --init --privileged --name frr-ubuntu24 --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu24:latest +``` + +# Running full topotest (container stops at end) + +``` +docker run --init -it --privileged --name frr-ubuntu24 \ +    -v /lib/modules:/lib/modules frr-ubuntu24:latest \ +    bash -c 'cd /home/frr/frr/tests/topotests; sudo pytest -nauto --dist=loadfile' +``` + +# Extract results from the above run into `run-results` dir and analyze + +``` +tests/topotests/analyze.py -C frr-ubuntu24 -Ar run-results +``` + +# Extract coverage from a stopped container into host FRR source tree + +``` +docker export frr-ubuntu24 | tar --strip=3 --wildcards -vx '*.gc??' +lcov -b $(pwd) --capture --directory . --output-file=coverage.info +``` + +# make check + +``` +docker exec frr-ubuntu24 bash -c 'cd ~/frr ; make check' +``` + +# interactive bash + +``` +docker exec -it frr-ubuntu24 bash +``` + +# Run a specific topotest + +``` +docker exec frr-ubuntu24 bash -c 'cd ~/frr/tests/topotests ; sudo pytest ospf_topo1/test_ospf_topo1.py' +``` + +# stop & remove container + +``` +docker stop frr-ubuntu24 ; docker rm frr-ubuntu24 +``` + +# remove image + +``` +docker rmi frr-ubuntu24:latest +```  | 
