forked from FRRouting/frr
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ubuntu20-ci: create a docker 20.04 container for dev / test / ci
Signed-off-by: Lou Berger <lberger@labn.net>
- Loading branch information
Showing
3 changed files
with
127 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
FROM ubuntu:20.04 | ||
|
||
ARG DEBIAN_FRONTEND=noninteractive | ||
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn | ||
# Update Ubuntu Software repository | ||
RUN apt update && \ | ||
apt-get install -y \ | ||
git autoconf automake libtool make libreadline-dev texinfo \ | ||
pkg-config libpam0g-dev libjson-c-dev bison flex python3-pytest \ | ||
libc-ares-dev python3-dev libsystemd-dev python-ipaddress python3-sphinx \ | ||
install-info build-essential libsystemd-dev libsnmp-dev perl \ | ||
libcap-dev python2 libelf-dev \ | ||
sudo gdb curl iputils-ping time \ | ||
mininet iproute2 iperf && \ | ||
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 && \ | ||
pip2 install ipaddr && \ | ||
pip2 install "pytest<5" && \ | ||
pip2 install "scapy>=2.4.2" && \ | ||
pip2 install exabgp==3.4.17 | ||
|
||
RUN groupadd -r -g 92 frr && \ | ||
groupadd -r -g 85 frrvty && \ | ||
adduser --system --ingroup frr --home /home/frr \ | ||
--gecos "FRR suite" --shell /bin/bash frr && \ | ||
usermod -a -G frrvty frr && \ | ||
useradd -d /var/run/exabgp/ -s /bin/false exabgp && \ | ||
echo 'frr ALL = NOPASSWD: ALL' | tee /etc/sudoers.d/frr && \ | ||
mkdir -p /home/frr && chown frr.frr /home/frr | ||
|
||
#for libyang 1 | ||
RUN apt-get install -y cmake libpcre3-dev | ||
|
||
USER frr:frr | ||
|
||
# build and install libyang1 | ||
RUN cd && pwd && ls -al && \ | ||
git clone https://github.com/CESNET/libyang.git && \ | ||
cd libyang && \ | ||
git checkout v1.0.225 && \ | ||
mkdir build; cd build && \ | ||
cmake -DENABLE_LYD_PRIV=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr \ | ||
-D CMAKE_BUILD_TYPE:String="Release" .. && \ | ||
make -j $(nproc) && \ | ||
sudo make install | ||
|
||
COPY --chown=frr:frr . /home/frr/frr/ | ||
|
||
RUN cd && ls -al && ls -al frr | ||
|
||
RUN cd ~/frr && \ | ||
./bootstrap.sh && \ | ||
./configure \ | ||
--prefix=/usr \ | ||
--localstatedir=/var/run/frr \ | ||
--sbindir=/usr/lib/frr \ | ||
--sysconfdir=/etc/frr \ | ||
--enable-vtysh \ | ||
--enable-pimd \ | ||
--enable-sharpd \ | ||
--enable-multipath=64 \ | ||
--enable-user=frr \ | ||
--enable-group=frr \ | ||
--enable-vty-group=frrvty \ | ||
--enable-snmp=agentx \ | ||
--with-pkg-extra-version=-my-manual-build && \ | ||
make -j $(nproc) && \ | ||
sudo make install | ||
|
||
RUN cd ~/frr && make check || true | ||
|
||
COPY docker/ubuntu20-ci/docker-start /usr/sbin/docker-start | ||
ENTRYPOINT ["/usr/sbin/docker-start"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Ubuntu 20.04 | ||
|
||
This builds an ubuntu 20.04 container for dev / test | ||
|
||
# Build | ||
|
||
``` | ||
docker build -t frr-ubuntu20:latest -f docker/ubuntu20-ci/Dockerfile . | ||
``` | ||
|
||
# Running | ||
|
||
``` | ||
docker run -d --privileged --name frr-ubuntu20 --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu20:latest | ||
``` | ||
|
||
# make check | ||
|
||
``` | ||
docker exec frr-ubuntu20 bash -c 'cd ~/frr ; make check' | ||
``` | ||
|
||
# interactive bash | ||
|
||
``` | ||
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' | ||
``` | ||
|
||
# stop & remove container | ||
|
||
``` | ||
docker stop frr-ubuntu20 ; docker rm frr-ubuntu18 | ||
``` | ||
|
||
# remove image | ||
|
||
``` | ||
docker rmi frr-ubuntu20:latest | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
if [ $(uname -a | grep -ci Ubuntu) -ge 1 ]; then | ||
#for topotests under ubuntu host | ||
sudo modprobe mpls-router mpls-iptunnel | ||
sudo /etc/init.d/openvswitch-switch start | ||
fi | ||
while true ; do sleep 365d ; done |