From 01a9fa13cd483e24912af9906e4a3dd0d0e7ad57 Mon Sep 17 00:00:00 2001 From: Dave Wallace Date: Mon, 27 Apr 2020 15:54:28 -0400 Subject: Import VPP docker files from github - These Dockerfiles were originally created by Ed Kern for the Nomad container proof of concept build infrastructure for the VPP project. The original source files and commit history can be found in the respective repositories at https://github.com/snergfdio Change-Id: I6c32cb013cbfad33c41d99992e5f97e0264b625a Signed-off-by: Dave Wallace --- docker/vpp/vpp-ubuntu20/Dockerfile | 339 +++++++++++++++++++++++++++++++++++++ 1 file changed, 339 insertions(+) create mode 100644 docker/vpp/vpp-ubuntu20/Dockerfile (limited to 'docker/vpp/vpp-ubuntu20') diff --git a/docker/vpp/vpp-ubuntu20/Dockerfile b/docker/vpp/vpp-ubuntu20/Dockerfile new file mode 100644 index 000000000..5cf5d487c --- /dev/null +++ b/docker/vpp/vpp-ubuntu20/Dockerfile @@ -0,0 +1,339 @@ +FROM ubuntu:focal +MAINTAINER Ed Kern +LABEL Description="VPP ubuntu 20 baseline" +LABEL Vendor="cisco.com" +LABEL Version="0.01" + + +# Setup the environment +ENV DEBIAN_FRONTEND=noninteractive +ENV MAKE_PARALLEL_FLAGS -j 4 +ENV DOCKER_TEST=True +ENV VPP_ZOMBIE_NOCHECK=1 +ENV DPDK_DOWNLOAD_DIR=/w/Downloads +ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python + +RUN apt-get -q update && \ + apt-get install -y -qq \ + bash \ + bash-completion \ + bc \ +# biosdevname \ + ca-certificates \ + cloud-init \ + cron \ + curl \ + libcurl3-gnutls \ + dbus \ + dstat \ + ethstatus \ + file \ + fio \ + htop \ + ifenslave \ + ioping \ + iotop \ + iperf \ + iptables \ + iputils-ping \ + less \ + locate \ + lsb-release \ + lsof \ + make \ + man-db \ + mdadm \ + mg \ + mosh \ + mtr \ + multipath-tools \ + nano \ + net-tools \ + netcat \ + nmap \ + ntp \ + ntpdate \ + open-iscsi \ + rsync \ + rsyslog \ + screen \ + shunit2 \ + socat \ + software-properties-common \ + ssh \ + sshpass \ + sudo \ + sysstat \ + tar \ + tcpdump \ + tmux \ + traceroute \ + unattended-upgrades \ + uuid-runtime \ + vim \ + wget \ + apt-transport-https \ + chrpath \ + nasm \ + dtach \ + && rm -rf /var/lib/apt/lists/* + +#RUN add-apt-repository -y ppa:openjdk-r/ppa + +RUN apt-get -q update && \ + apt-get install -y -qq \ + unzip \ + xz-utils \ + puppet \ + git \ + git-review \ + libxml-xpath-perl \ + make \ + wget \ + openjdk-8-jdk \ + openjdk-11-jdk \ + jq \ + libffi-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN apt-get -q update && \ + apt-get install -y -qq \ + autoconf \ + automake \ + autotools-dev \ + bison \ + ccache \ + cscope \ + debhelper \ + dh-apparmor \ + dh-systemd \ + dkms \ + ed \ + exuberant-ctags \ + gettext \ + gettext-base \ + intltool-debian \ + indent \ + lcov \ + libapr1 \ + libapr1-dev \ + libasprintf-dev \ + libbison-dev \ + libconfuse-doc \ + libconfuse-dev \ + libcroco3 \ + libexpat1-dev \ + libganglia1 \ + libganglia1-dev \ + libgd-gd2-perl \ + libgettextpo-dev \ + libgettextpo0 \ + libltdl-dev \ + libmail-sendmail-perl \ + libmbedtls-dev \ +# libpython2-dev \ + libpython2.7-dev \ + libsctp-dev \ + libsigsegv2 \ + libssl-dev \ + libssl-doc \ + libsys-hostname-long-perl \ + libtool \ + m4 \ + pkg-config \ + po-debconf \ + uuid-dev \ + zlib1g-dev \ + locales \ + llvm \ + clang \ + clang-format \ + libboost-all-dev \ + ruby-dev \ + zile \ + check \ + libsubunit-dev \ + libsubunit0 \ + emacs \ + gdb \ + libpcap-dev \ + iperf3 \ + libibverbs-dev \ + apt-utils \ + python-all \ + python-apt \ + python-cffi \ + python-cffi-backend \ +# python-dev \ + python-enum34 \ + python-pip \ + python-ply \ + python-setuptools \ + python-virtualenv \ + python-yaml \ + python3-all \ + python3-apt \ + python3-cffi \ + python3-cffi-backend \ + python3-dev \ + python3-pip \ + python3-ply \ + python3-setuptools \ + python3-virtualenv \ + python3-venv \ + && rm -rf /var/lib/apt/lists/* + +# For the docs +RUN apt-get -q update && \ + apt-get install -y -qq \ + python-markupsafe \ + python-jinja2 \ + python-pyparsing \ + doxygen \ + graphviz \ + && rm -rf /var/lib/apt/lists/* + +RUN apt-get -q update && \ + apt-get install -y -qq \ + cmake \ + cmake-data \ + libarchive13 \ + liblzo2-2 \ + librhash0 \ + libuv1 \ + ninja-build \ + cmake-doc \ + lrzip \ + xmlstarlet \ + g++-8 \ + gcc-8 \ + yamllint \ + && rm -rf /var/lib/apt/lists/* + +# Configure locales +RUN locale-gen en_US.UTF-8 && \ + dpkg-reconfigure locales + +# Fix permissions +RUN chown root:syslog /var/log \ + && chmod 755 /etc/default + +RUN mkdir /tmp/dumps +RUN mkdir /workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache +ENV CCACHE_DIR=/var/ccache +ENV CCACHE_READONLY=true + +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' +#RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7 && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8 + +RUN curl -L https://packagecloud.io/fdio/master/gpgkey |sudo apt-key add - +#ADD files/99fd.io.list /etc/apt/sources.list.d/99fd.io.list +#ADD files/fdio_master.list /etc/apt/sources.list.d/fdio_master.list + +#RUN apt update && apt install -y vpp-dpdk-dev vpp-dpdk-dkms || true +#RUN mkdir -p /w/dpdk && cd /w/dpdk; apt-get download vpp-dpdk-dkms || true + +#RUN mkdir -p /w/workspace/vpp-verify-master-ubuntu1804 && mkdir -p /home/jenkins +RUN mkdir -p /w/workspace && mkdir -p /home/jenkins +#RUN apt-get purge -y default-jre-headless openjdk-9-jdk-headless openjdk-9-jre-headless || true + +#ADD files/default-jdk-headless_1.8-59ubuntu2_amd64.deb /tmp/default-jdk-headless_1.8-59ubuntu2_amd64.deb +#ADD files/default-jre-headless_1.8-59ubuntu2_amd64.deb /tmp/default-jre-headless_1.8-59ubuntu2_amd64.deb + +#RUN apt-get install -y /tmp/default-jre-headless_1.8-59ubuntu2_amd64.deb /tmp/default-jdk-headless_1.8-59ubuntu2_amd64.deb +#ADD files/jre /etc/apt/preferences.d/jre +ADD files/pc_push /usr/local/bin/pc_push +ADD files/packagecloud /root/.packagecloud +ADD files/packagecloud_api /root/packagecloud_api +ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives +RUN chmod 755 /usr/local/bin/lf-update-java-alternatives +RUN gem install rake +RUN gem install package_cloud + +# VPP PIP pre-cahce +RUN pip install \ + six \ + scapy==2.3.3 \ + pyexpect \ + subprocess32 \ + cffi \ + git+https://github.com/klement/py-lispnetworking@setup \ + pycodestyle + +# CSIT PIP pre-cache +RUN pip3 install \ + ecdsa==0.13.3 \ + paramiko==2.6.0 \ + pycrypto==2.6.1 \ + pypcap==1.2.3 \ + PyYAML==5.1.1 \ + requests==2.22.0 \ + robotframework==3.1.2 \ + scapy==2.4.3 \ + scp==0.13.2 \ + ansible==2.7.8 \ + dill==0.2.8.2 \ + numpy==1.17.3 \ + hdrhistogram==0.6.1 \ + pandas==0.25.3 \ + plotly==4.1.1 \ + PTable==0.9.2 \ + Sphinx==2.2.1 \ + sphinx-rtd-theme==0.4.0 \ + sphinxcontrib-programoutput==0.15 \ + sphinxcontrib-robotdoc==0.11.0 \ + alabaster==0.7.12 \ + Babel==2.7.0 \ + bcrypt==3.1.7 \ + certifi==2019.9.11 \ + cffi==1.13.2 \ + chardet==3.0.4 \ + cryptography==2.8 \ + docutils==0.15.2 \ + future==0.18.2 \ + idna==2.8 \ + imagesize==1.1.0 \ + Jinja2==2.10.3 \ + MarkupSafe==1.1.1 \ + packaging==19.2 \ + pbr==5.4.3 \ + ply==3.11 \ + pycparser==2.19 \ + Pygments==2.4.2 \ + PyNaCl==1.3.0 \ + pyparsing==2.4.4 \ + python-dateutil==2.8.1 \ + pytz==2019.3 \ + retrying==1.3.3 \ + six==1.13.0 \ + snowballstemmer==2.0.0 \ + sphinxcontrib-applehelp==1.0.1 \ + sphinxcontrib-devhelp==1.0.1 \ + sphinxcontrib-htmlhelp==1.0.2 \ + sphinxcontrib-jsmath==1.0.1 \ + sphinxcontrib-qthelp==1.0.2 \ + sphinxcontrib-serializinghtml==1.1.3 \ + urllib3==1.25.6 + +# CSIT PIP pre-cache - ARM workaround +RUN pip3 install scipy==1.1.0 + +RUN mkdir -p /var/cache/vpp/python +RUN mkdir -p /w/Downloads +RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://dpdk.org/browse/dpdk-stable/snapshot/dpdk-stable-18.02.1.tar.xz +RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.05.tar.xz +RUN wget -O /w/Downloads/dpdk-18.08.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.08.tar.xz +RUN wget -O /w/Downloads/v0.47.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.47.tar.gz +RUN wget -O /w/Downloads/v0.48.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.48.tar.gz +RUN wget -O /w/Downloads/v0.49.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.49.tar.gz +#RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash + +#bad and open ssh keys for csit +ADD files/sshconfig /root/.ssh/config +ADD files/badkey /root/.ssh/id_rsa +RUN chmod 600 /root/.ssh/id_rsa + +# for lftools +RUN rm -rf /home/jenkins && useradd -ms /bin/bash jenkins && chown -R jenkins /w && chown -R jenkins /var/ccache && chown -R jenkins /var/cache/vpp && mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar +ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH} + -- cgit 1.2.3-korg