diff options
| author | Lou Berger <lberger@labn.net> | 2021-03-27 21:24:07 -0400 | 
|---|---|---|
| committer | Lou Berger <lberger@labn.net> | 2021-04-12 16:56:38 -0400 | 
| commit | cd18e08a013e39c3d687941dcd6068832dba0fd7 (patch) | |
| tree | 285e4efb06c409f9e2d80d9cc310cfd3dc12cf42 /docker | |
| parent | 53c42c82deb8e5ee882726c97e62b21e25b03b15 (diff) | |
ubuntu18-ci: create a docker 18.04 container for dev / test / ci
Signed-off-by: Lou Berger <lberger@labn.net>
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/ubuntu18-ci/Dockerfile | 71 | ||||
| -rw-r--r-- | docker/ubuntu18-ci/README.md | 44 | ||||
| -rwxr-xr-x | docker/ubuntu18-ci/docker-start | 8 | 
3 files changed, 123 insertions, 0 deletions
diff --git a/docker/ubuntu18-ci/Dockerfile b/docker/ubuntu18-ci/Dockerfile new file mode 100644 index 0000000000..ac745c60a8 --- /dev/null +++ b/docker/ubuntu18-ci/Dockerfile @@ -0,0 +1,71 @@ +FROM ubuntu:18.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 \ +      libelf-dev \ +      sudo gdb iputils-ping time \ +      mininet python-pip iproute2 iperf && \ +      pip install ipaddr && \ +      pip install "pytest<5" && \ +      pip install "scapy>=2.4.2" && \ +      pip 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/ubuntu18-ci/docker-start /usr/sbin/docker-start +ENTRYPOINT ["/usr/sbin/docker-start"] diff --git a/docker/ubuntu18-ci/README.md b/docker/ubuntu18-ci/README.md new file mode 100644 index 0000000000..4e8ab891e6 --- /dev/null +++ b/docker/ubuntu18-ci/README.md @@ -0,0 +1,44 @@ +# Ubuntu 18.04 + +This builds an ubuntu 18.04 container for dev / test + +# Build + +``` +docker build -t frr-ubuntu18:latest  -f docker/ubuntu18-ci/Dockerfile . +``` + +# Running + +``` +docker run -d --privileged --name frr-ubuntu18 --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu18:latest +``` + +# make check + +``` +docker exec frr-ubuntu18 bash -c 'cd ~/frr ; make check' +``` + +# interactive bash +``` +docker exec -it frr-ubuntu18 bash +``` + +# topotest -- when Host O/S is Ubuntu only + +``` +docker exec frr-ubuntu18 bash -c 'cd ~/frr/tests/topotests/ospf-topo1 ; sudo pytest test_ospf_topo1.py' +``` + +# stop & remove container + +``` +docker stop frr-ubuntu18 ; docker rm frr-ubuntu18 +``` + +# remove image + +``` +docker rmi frr-ubuntu18:latest +``` diff --git a/docker/ubuntu18-ci/docker-start b/docker/ubuntu18-ci/docker-start new file mode 100755 index 0000000000..9a45c722f1 --- /dev/null +++ b/docker/ubuntu18-ci/docker-start @@ -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  | 
