forked from Mirror/frr
docker: add ubuntu24-ci docker image support
Signed-off-by: Christian Hopps <chopps@labn.net>
This commit is contained in:
parent
901d059614
commit
1cfccbf103
|
@ -2,7 +2,6 @@ ARG UBUNTU_VERSION=22.04
|
||||||
FROM ubuntu:$UBUNTU_VERSION
|
FROM ubuntu:$UBUNTU_VERSION
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
|
|
||||||
|
|
||||||
# Update and install build requirements.
|
# Update and install build requirements.
|
||||||
RUN apt update && apt upgrade -y && \
|
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/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/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 && \
|
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 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 'pytest>=6.2.4' 'pytest-xdist>=2.3.0' && \
|
||||||
python3 -m pip install 'scapy>=2.4.5' && \
|
python3 -m pip install 'scapy>=2.4.5' && \
|
||||||
python3 -m pip install xmltodict && \
|
python3 -m pip install xmltodict && \
|
||||||
python3 -m pip install git+https://github.com/Exa-Networks/exabgp@0659057837cd6c6351579e9f0fa47e9fb7de7311
|
python3 -m pip install git+https://github.com/Exa-Networks/exabgp@0659057837cd6c6351579e9f0fa47e9fb7de7311
|
||||||
|
|
||||||
ARG UID=1000
|
ARG UID=1010
|
||||||
RUN groupadd -r -g 92 frr && \
|
RUN groupadd -r -g 92 frr && \
|
||||||
groupadd -r -g 85 frrvty && \
|
groupadd -r -g 85 frrvty && \
|
||||||
adduser --system --ingroup frr --home /home/frr \
|
adduser --system --ingroup frr --home /home/frr \
|
||||||
|
|
|
@ -5,7 +5,7 @@ This builds an ubuntu 22.04 container for dev / test
|
||||||
# Build
|
# 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
|
# Run
|
||||||
|
|
66
docker/ubuntu24-ci/README.md
Normal file
66
docker/ubuntu24-ci/README.md
Normal file
|
@ -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
|
||||||
|
```
|
Loading…
Reference in a new issue