mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 03:28:31 +00:00
docker: update docker reference to follow latest docs
Signed-off-by: Christian Hopps <chopps@labn.net>
This commit is contained in:
parent
cdc964c233
commit
854caad3ea
@ -23,13 +23,17 @@ RUN apt update && apt upgrade -y && \
|
|||||||
libreadline-dev \
|
libreadline-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libsqlite3-dev \
|
libsqlite3-dev \
|
||||||
|
lsb-release \
|
||||||
libtool \
|
libtool \
|
||||||
|
lcov \
|
||||||
make \
|
make \
|
||||||
perl \
|
perl \
|
||||||
pkg-config \
|
pkg-config \
|
||||||
python3-dev \
|
python3-dev \
|
||||||
python3-sphinx \
|
python3-sphinx \
|
||||||
|
screen \
|
||||||
texinfo \
|
texinfo \
|
||||||
|
tmux \
|
||||||
&& \
|
&& \
|
||||||
# Protobuf build requirements
|
# Protobuf build requirements
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
@ -89,18 +93,14 @@ RUN groupadd -r -g 92 frr && \
|
|||||||
echo 'frr ALL = NOPASSWD: ALL' | tee /etc/sudoers.d/frr && \
|
echo 'frr ALL = NOPASSWD: ALL' | tee /etc/sudoers.d/frr && \
|
||||||
mkdir -p /home/frr && chown frr.frr /home/frr
|
mkdir -p /home/frr && chown frr.frr /home/frr
|
||||||
|
|
||||||
USER frr:frr
|
# Install FRR built packages
|
||||||
|
RUN mkdir -p /etc/apt/keyrings && \
|
||||||
|
curl -s -o /etc/apt/keyrings/frrouting.gpg https://deb.frrouting.org/frr/keys.gpg && \
|
||||||
|
echo deb '[signed-by=/etc/apt/keyrings/frrouting.gpg]' https://deb.frrouting.org/frr \
|
||||||
|
$(lsb_release -s -c) "frr-stable" > /etc/apt/sources.list.d/frr.list && \
|
||||||
|
apt-get update && apt-get install -y librtr-dev libyang2-dev libyang2-tools
|
||||||
|
|
||||||
# build and install libyang2
|
USER frr:frr
|
||||||
RUN cd && pwd && ls -al && \
|
|
||||||
git clone https://github.com/CESNET/libyang.git && \
|
|
||||||
cd libyang && \
|
|
||||||
git checkout v2.1.128 && \
|
|
||||||
mkdir build; cd build && \
|
|
||||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \
|
|
||||||
-DCMAKE_BUILD_TYPE:String="Release" .. && \
|
|
||||||
make -j $(nproc) && \
|
|
||||||
sudo make install
|
|
||||||
|
|
||||||
COPY --chown=frr:frr . /home/frr/frr/
|
COPY --chown=frr:frr . /home/frr/frr/
|
||||||
|
|
||||||
@ -111,6 +111,10 @@ RUN cd ~/frr && \
|
|||||||
--sysconfdir=/etc \
|
--sysconfdir=/etc \
|
||||||
--localstatedir=/var \
|
--localstatedir=/var \
|
||||||
--sbindir=/usr/lib/frr \
|
--sbindir=/usr/lib/frr \
|
||||||
|
--enable-gcov \
|
||||||
|
--enable-dev-build \
|
||||||
|
--enable-mgmtd-test-be-client \
|
||||||
|
--enable-rpki \
|
||||||
--enable-sharpd \
|
--enable-sharpd \
|
||||||
--enable-multipath=64 \
|
--enable-multipath=64 \
|
||||||
--enable-user=frr \
|
--enable-user=frr \
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ $(uname -a | grep -ci Ubuntu) -ge 1 ]; then
|
if [ $(uname -a | grep -ci Ubuntu) -ge 1 ]; then
|
||||||
#for topotests under ubuntu host
|
sudo modprobe mpls-router mpls-iptunnel vrf
|
||||||
sudo modprobe mpls-router mpls-iptunnel
|
|
||||||
sudo /etc/init.d/openvswitch-switch start
|
|
||||||
fi
|
fi
|
||||||
while true ; do sleep 365d ; done
|
while true ; do sleep 365d ; done
|
||||||
|
@ -8,10 +8,18 @@ This builds an ubuntu 22.04 container for dev / test
|
|||||||
docker build -t frr-ubuntu22:latest -f docker/ubuntu-ci/Dockerfile .
|
docker build -t frr-ubuntu22:latest -f docker/ubuntu-ci/Dockerfile .
|
||||||
```
|
```
|
||||||
|
|
||||||
# Running Full Topotest
|
# Run
|
||||||
|
|
||||||
```
|
```
|
||||||
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'
|
docker run -d --init --privileged --name frr-ubuntu22 --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu22:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
# Running full topotest (container stops at end)
|
||||||
|
|
||||||
|
```
|
||||||
|
docker run --init -it --privileged --name frr-ubuntu22 \
|
||||||
|
-v /lib/modules:/lib/modules frr-ubuntu22: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
|
# Extract results from the above run into `run-results` dir and analyze
|
||||||
@ -20,10 +28,11 @@ docker run --init -it --privileged --name frr-ubuntu22 -v /lib/modules:/lib/modu
|
|||||||
tests/topotests/analyze.py -C frr-ubuntu22 -Ar run-results
|
tests/topotests/analyze.py -C frr-ubuntu22 -Ar run-results
|
||||||
```
|
```
|
||||||
|
|
||||||
# Running
|
# Extract coverage from a stopped container into host FRR source tree
|
||||||
|
|
||||||
```
|
```
|
||||||
docker run -d --init --privileged --name frr-ubuntu22 --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu22:latest
|
docker export frr-ubuntu22 | tar --strip=3 --wildcards -vx '*.gc??'
|
||||||
|
lcov -b $(pwd) --capture --directory . --output-file=coverage.info
|
||||||
```
|
```
|
||||||
|
|
||||||
# make check
|
# make check
|
||||||
@ -38,10 +47,10 @@ docker exec frr-ubuntu22 bash -c 'cd ~/frr ; make check'
|
|||||||
docker exec -it frr-ubuntu22 bash
|
docker exec -it frr-ubuntu22 bash
|
||||||
```
|
```
|
||||||
|
|
||||||
# topotest -- when Host O/S is Ubuntu only
|
# Run a specific topotest
|
||||||
|
|
||||||
```
|
```
|
||||||
docker exec frr-ubuntu22 bash -c 'cd ~/frr/tests/topotests/ospf_topo1 ; sudo pytest test_ospf_topo1.py'
|
docker exec frr-ubuntu22 bash -c 'cd ~/frr/tests/topotests ; sudo pytest ospf_topo1/test_ospf_topo1.py'
|
||||||
```
|
```
|
||||||
|
|
||||||
# stop & remove container
|
# stop & remove container
|
||||||
|
Loading…
Reference in New Issue
Block a user