diff options
Diffstat (limited to 'docker/vpp/vpp-ubuntu20/Dockerfile')
-rw-r--r-- | docker/vpp/vpp-ubuntu20/Dockerfile | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/docker/vpp/vpp-ubuntu20/Dockerfile b/docker/vpp/vpp-ubuntu20/Dockerfile new file mode 100644 index 00000000..5cf5d487 --- /dev/null +++ b/docker/vpp/vpp-ubuntu20/Dockerfile @@ -0,0 +1,339 @@ +FROM ubuntu:focal +MAINTAINER Ed Kern <ejk@cisco.com> +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} + |