Skip to content

Instantly share code, notes, and snippets.

@Shikugawa
Created December 29, 2022 12:46
Show Gist options
  • Save Shikugawa/8037c71dbfd209b419b75fdee40b7897 to your computer and use it in GitHub Desktop.
Save Shikugawa/8037c71dbfd209b419b75fdee40b7897 to your computer and use it in GitHub Desktop.
dockerfile for frr development
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-pip \
libc-ares-dev python3-dev python3-sphinx \
install-info build-essential libsnmp-dev perl libcap-dev \
libelf-dev \
sudo gdb iputils-ping time \
python-pip net-tools iproute2 && \
python3 -m pip install wheel && \
python3 -m pip install pytest && \
python3 -m pip install pytest-xdist && \
python3 -m pip install "scapy>=2.4.2" && \
python3 -m pip install xmltodict && \
python2 -m pip install 'exabgp<4.0.0'
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 2
RUN apt-get install -y cmake libpcre2-dev
# build and install libyang2
RUN cd && pwd && ls -al && \
git clone https://github.com/CESNET/libyang.git && \
cd libyang && \
git checkout v2.0.0 && \
mkdir build; cd build && \
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE:String="Release" .. && \
make -j $(nproc) && \
sudo make install
RUN echo "alias buildfrr=\"./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\"" >> ~/.bashrc
COPY docker/ubuntu18-ci/docker-start /usr/sbin/docker-start
CMD ["/usr/sbin/docker-start"]
# docker run -d --privileged --name frr-develop --mount type=bind,source=/lib/modules,target=/lib/modules --mount type=bind,source=$(pwd),target=/home/frr/frr ayamaruyama/frr-develop:latest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment