diff options
Diffstat (limited to 'docker')
-rw-r--r-- | docker/vpp/README | 18 | ||||
-rw-r--r-- | docker/vpp/vpp-arm-centos8/Dockerfile | 367 | ||||
-rw-r--r-- | docker/vpp/vpp-arm-ubuntu16/Dockerfile | 179 | ||||
-rw-r--r-- | docker/vpp/vpp-arm-ubuntu18/Dockerfile | 325 | ||||
-rw-r--r-- | docker/vpp/vpp-centos/Dockerfile | 367 | ||||
-rw-r--r-- | docker/vpp/vpp-centos8/Dockerfile | 387 | ||||
-rw-r--r-- | docker/vpp/vpp-ubuntu16/Dockerfile | 248 | ||||
-rw-r--r-- | docker/vpp/vpp-ubuntu18/Dockerfile | 342 | ||||
-rw-r--r-- | docker/vpp/vpp-ubuntu20/Dockerfile | 339 |
9 files changed, 2572 insertions, 0 deletions
diff --git a/docker/vpp/README b/docker/vpp/README new file mode 100644 index 000000000..2975df13a --- /dev/null +++ b/docker/vpp/README @@ -0,0 +1,18 @@ +This directory contains the docker image definitions for the +VPP build images which are run on the Nomad cluster in the +FD.io lab. + +The following 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: + +vpp-arm-centos8/Dockerfile +vpp-arm-ubuntu16/Dockerfile +vpp-arm-ubuntu18/Dockerfile +vpp-centos8/Dockerfile +vpp-centos/Dockerfile +vpp-ubuntu16/Dockerfile +vpp-ubuntu18/Dockerfile +vpp-ubuntu20/Dockerfile diff --git a/docker/vpp/vpp-arm-centos8/Dockerfile b/docker/vpp/vpp-arm-centos8/Dockerfile new file mode 100644 index 000000000..5f1036a50 --- /dev/null +++ b/docker/vpp/vpp-arm-centos8/Dockerfile @@ -0,0 +1,367 @@ +FROM centos:8 +MAINTAINER Ed Kern <ejk@cisco.com> +LABEL Description="VPP centos8 OS build image" +LABEL Vendor="cisco.com" +LABEL Version="0.01" + +# Setup the environment + +RUN mkdir /workspace && mkdir -p /etc/ssh && mkdir -p /var/ccache + +ENV CCACHE_DIR=/var/ccache +ENV MAKE_PARALLEL_FLAGS -j 4 +ENV VPP_ZOMBIE_NOCHECK=1 +ENV DPDK_DOWNLOAD_DIR=/w/Downloads +ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' +ENV NOTVISIBLE "in users profile" + +#SSH timeout +#RUN touch /etc/ssh/ssh_config +RUN echo "TCPKeepAlive true" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1 +RUN echo "ServerAliveCountMax 30" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1 +RUN echo "ServerAliveInterval 10" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1 + +# Configure locales +#RUN localectl set-locale "en_US.UTF-8" \ +# && localectl status + +#module +RUN echo uio_pci_generic >> /etc/modules + + +#RUN yum update -y && yum install -y deltarpm && yum clean all +#RUN yum update -y && yum install -y @base https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && yum clean all +RUN yum update -y && yum install -y epel-release && yum clean all +RUN yum update -y && yum install -y --enablerepo=epel \ + chrpath \ + git \ +# git-review \ + java-*-openjdk-devel \ + jq \ +# lcov \ + make \ +# nasm \ + sudo \ + unzip \ + xz \ + wget \ + && yum clean all + +#packer install +#RUN wget https://releases.hashicorp.com/packer/1.1.3/packer_1.1.3_linux_amd64.zip && unzip packer_1.1.3_linux_amd64.zip -d /usr/local/bin/ && mv /usr/local/bin/packer /usr/local/bin/packer.io + + +RUN yum update -y && yum install -y --enablerepo=epel \ + asciidoc \ + apr-devel \ + cpp \ +# c++ \ + cmake \ +# dblatex \ +# doxygen \ + epel-rpm-macros \ + gcc \ + graphviz \ + indent \ + kernel-devel \ + libxml2 \ + libffi-devel \ + make \ + openssl-devel \ + python2-devel \ + python2-virtualenv \ + python2-setuptools \ +# python2-cffi \ + python2-pip \ + python2-jinja2 \ + # python2-sphinx \ + source-highlight \ + rpm \ + valgrind \ + yum-utils \ + && yum clean all + +RUN yum update -y && yum install -y --enablerepo=epel \ +# ganglia-devel \ + libconfuse-devel \ + mock \ + && yum clean all + +#RUN alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java +#RUN alternatives --set java_sdk_openjdk /usr/lib/jvm/java-1.7.0-openjdk.x86_64 + +RUN pip2 install --upgrade pip +RUN pip2 install pycap scapy + +RUN yum update -y && yum install -y --enablerepo=epel \ + autoconf \ + automake \ + bison \ + ccache \ + cscope \ + curl \ + dkms \ + git \ +# git-review \ + libtool \ +# libconfuse-dev \ +# libpcap-devel \ + libcap-devel \ + scapy \ + && yum clean all + +#puppet +RUN yum update -y && yum install -y --enablerepo=epel \ + libxml2-devel \ + libxslt-devel \ + ruby-devel \ + zlib-devel \ + gcc-c++ \ + && yum clean all + +#outdated ruby pos +RUN yum update -y && yum install -y --enablerepo=epel \ + git-core \ + zlib \ + zlib-devel \ + gcc-c++ \ + patch \ + readline \ + readline-devel \ +# libyaml-devel \ + libffi-devel \ + openssl-devel \ + make \ + bzip2 \ + autoconf \ + automake \ + libtool \ + bison \ + curl \ + sqlite-devel \ + && yum clean all + +ENV PATH="/root/.rbenv/bin:${PATH}" +ENV PATH="/root/.rbenv/shims:${PATH}" + +RUN curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash - +RUN rbenv init - +RUN rbenv install 2.5.1 && rbenv global 2.5.1 +#&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(rbenv init -)"' >> ~/.bashrc && + + +RUN gem install rake +RUN gem install package_cloud + +RUN yum update -y && yum install -y --enablerepo=epel \ + apr-util \ + byacc \ + diffstat \ + dwz \ + flex \ + gcc-gfortran \ + gettext-devel \ +# glibc-static \ + intltool \ +# nasm \ + patchutils \ +# rcs \ + redhat-lsb \ + redhat-rpm-config \ + rpm-build \ + rpm-sign \ + subversion \ + swig \ + systemtap \ + && yum clean all + +#RUN yum update -y && yum install -y --enablerepo=epel-debuginfo --enablerepo=base-debuginfo \ +# RUN yum update -y && yum install -y --enablerepo=epel-debuginfo \ +# e2fsprogs-debuginfo \ +# glibc-debuginfo \ +# krb5-debuginfo \ +# nss-softokn-debuginfo \ +# openssl-debuginfo \ +# yum-plugin-auto-update-debug-info \ +# zlib-debuginfo \ +# glibc-debuginfo-common \ +# && yum clean all + +RUN yum update -y && yum groupinstall -y "development tools" \ + && yum clean all +# Libraries needed during compilation to enable all features of Python: +RUN yum update -y \ + && yum install -y --enablerepo=epel \ + zlib-devel \ + bzip2-devel \ + openssl-devel \ + ncurses-devel \ + sqlite-devel \ + readline-devel \ + tk-devel \ + gdbm-devel \ +# db4-devel \ +# libpcap-devel \ + xz-devel \ + expat-devel \ + wget \ + clang \ + llvm \ + numactl-devel \ + check-devel \ + check \ + boost \ + boost-devel \ + mbedtls-devel \ + xmlstarlet \ + # centos-release-scl \ + yamllint \ + && yum clean all + +# Python 2.7.13: +# RUN wget http://python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz \ +# && tar xf Python-2.7.13.tar.xz \ +# && cd Python-2.7.13 \ +# && ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" \ +# && make \ +# && make install \ +# && strip /usr/local/lib/libpython2.7.so.1.0 \ +# && cd .. \ +# && rm -rf Python* \ +# && wget https://bootstrap.pypa.io/get-pip.py \ +# && /usr/local/bin/python get-pip.py + +RUN pip2 install six scapy==2.3.3 pyexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup ply +RUN mkdir -p /w/workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache +ENV CCACHE_DIR=/var/ccache +ENV CCACHE_READONLY=true +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/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 + +ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives +RUN chmod 755 /usr/local/bin/lf-update-java-alternatives +RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.rpm.sh | sudo bash + + +#include bits from csit-sut +RUN yum install -y --enablerepo=epel \ + # general tools +# bridge-utils \ + cloud-init \ + net-tools \ + openssh-server \ + pciutils \ + rsyslog \ +# ssh \ + sudo \ + supervisor \ + tar \ + vim \ + wget \ +# python-devel \ + openssh-clients \ + # csit requirements + gcc \ + cmake3 \ +# docker-1.13 \ +# libpcap-devel \ +# libpython-devel-2.7 \ +# libpython-devel \ +# openjdk-8-jdk-headless \ +# python-pip \ +# python-devel-2.7 \ +# python-virtualenv \ + socat \ + strongswan \ + unzip \ + tcpdump \ + zlib-devel \ + # vpp requirements +# ca-certificates-2018 \ +# libapr1 \ + mbedtls \ + mbedtls-devel \ +# libnuma1 \ +# python-cffi \ +# python36-cffi \ +# python-enum34 \ + git \ + sshpass \ +# facter \ +# devtoolset-7 \ +# ninja-build \ + python3-devel \ +# python36-jsonschema \ + selinux-policy \ + selinux-policy-devel \ +# mbedtls-debuginfo \ + && yum clean all + +# Configure locales +#RUN localectl set-locale "en_US.UTF-8" \ +# && localectl status + +# Fix permissions +# RUN chown root:syslog /var/log \ +# && chmod 755 /etc/default + +# Create directory structure +RUN mkdir -p /tmp/dumps \ + && mkdir -p /var/cache/vpp/python \ + && mkdir -p /var/run/sshd + +# CSIT PIP pre-cache +RUN pip install \ + docopt==0.6.2 \ + ecdsa==0.13 \ + enum34==1.1.2 \ + ipaddress==1.0.16 \ + paramiko==1.16.0 \ + pexpect==4.6.0 \ + ptyprocess==0.6.0 \ + pycrypto==2.6.1 \ + pykwalify==1.5.0 \ +# pypcap==1.1.5 \ + python-dateutil==2.4.2 \ + PyYAML==3.11 \ + requests==2.9.1 \ + robotframework==2.9.2 \ + scapy==2.3.3 \ + scp==0.10.2 \ + six==1.12.0 \ + dill==0.2.8.2 \ + numpy==1.14.5 \ + scipy==1.1.0 + +# VPP PIP pre-cache +RUN pip install \ + aenum + +# SSH settings +RUN echo 'root:Csit1234' | chpasswd \ + && sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config \ + && sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd \ + && echo "export VISIBLE=now" >> /etc/profile + +ADD files/sshconfig /root/.ssh/config +ADD files/badkey /root/.ssh/id_rsa +RUN chmod 600 /root/.ssh/id_rsa +#RUN mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar +RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' + +#include bits from registry image +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 +ADD files/jenkins /etc/sudoers.d/jenkins +ADD files/supervisord.conf /etc/supervisord/supervisord.conf +ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH} + +#csit-sut ssh bits for the end +EXPOSE 22 + +CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisord/supervisord.conf; /usr/sbin/sshd -D"] diff --git a/docker/vpp/vpp-arm-ubuntu16/Dockerfile b/docker/vpp/vpp-arm-ubuntu16/Dockerfile new file mode 100644 index 000000000..0e0a4e09e --- /dev/null +++ b/docker/vpp/vpp-arm-ubuntu16/Dockerfile @@ -0,0 +1,179 @@ +FROM arm64v8/ubuntu:16.04 +MAINTAINER Ed Kern <ejk@cisco.com> +LABEL Description="arm VPP ubuntu 16 baseline" +LABEL Vendor="cisco.com" +LABEL Version="3.0" + + +# Setup the environment +ENV DEBIAN_FRONTEND=noninteractive +CMD [] +RUN echo 'foo' || true +RUN apt-get update || true +RUN echo 'bar' +RUN apt-get install -y -qq \ + bash \ + bash-completion \ + bc \ + biosdevname \ + ca-certificates \ + cloud-init \ + cron \ + curl \ + 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 \ + # python-apt \ + # python-pip \ + # python-yaml \ + # rsync \ + # rsyslog \ + # screen \ + # shunit2 \ + # socat \ + # software-properties-common \ + # ssh \ + # sudo \ + # sysstat \ + # tar \ + # tcpdump \ + # tmux \ + # traceroute \ + # unattended-upgrades \ + # uuid-runtime \ + # vim \ + # wget \ + # apt-transport-https \ + # default-jre-headless \ + # chrpath \ + # nasm \ + # && 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 \ + jq \ + libffi-dev \ + python-all \ + && 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-common \ + libconfuse-dev \ + libconfuse0 \ + libcroco3 \ + libexpat1-dev \ + libganglia1 \ + libganglia1-dev \ + libgd-gd2-perl \ + libgettextpo-dev \ + libgettextpo0 \ + libltdl-dev \ + libmail-sendmail-perl \ + libpython-dev \ + libpython2.7-dev \ + libsctp-dev \ + libsigsegv2 \ + libssl-dev \ + libssl-doc \ + libsys-hostname-long-perl \ + libtool \ + libunistring0 \ + m4 \ + pkg-config \ + po-debconf \ + python-dev \ + python-virtualenv \ + python2.7-dev \ + uuid-dev \ + zlib1g-dev \ + locales \ + llvm \ + clang \ + clang-format \ + libboost-all-dev \ + ruby-dev \ + xmlstarlet \ + && 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 /workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache +ENV CCACHE_DIR=/var/ccache +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' + +RUN gem install rake +RUN gem install package_cloud +RUN pip install scapy +RUN git clone https://gerrit.fd.io/r/vpp /workspace/ubuntu16 && cd /workspace/ubuntu16; make UNATTENDED=yes install-dep && rm -rf /workspace/ubuntu16 && rm -rf /var/lib/apt/lists/* + + + + diff --git a/docker/vpp/vpp-arm-ubuntu18/Dockerfile b/docker/vpp/vpp-arm-ubuntu18/Dockerfile new file mode 100644 index 000000000..28f5b505d --- /dev/null +++ b/docker/vpp/vpp-arm-ubuntu18/Dockerfile @@ -0,0 +1,325 @@ +FROM arm64v8/ubuntu:18.04 +MAINTAINER Ed Kern <ejk@cisco.com> +LABEL Description="arm VPP ubuntu 18 baseline" +LABEL Vendor="arm.com" +LABEL Version="1.1" + +# Setup the environment +ENV DEBIAN_FRONTEND=noninteractive +ENV DOCKER_TEST=True +ENV DPDK_DOWNLOAD_DIR=/w/Downloads +ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python +ENV VPP_ZOMBIE_NOCHECK=1 + +ADD files/sshconfig /root/.ssh/config +ADD files/badkey /root/.ssh/id_rsa +RUN chmod 600 /root/.ssh/id_rsa + +RUN apt-get update && apt-get install -y -qq \ + bash \ + bash-completion \ + bc \ +# biosdevname \ + ca-certificates \ + cloud-init \ + cron \ + curl \ + 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 \ + # python-apt \ + python-pip \ + # python-yaml \ + # 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 \ + # default-jre-headless \ + # chrpath \ + # nasm \ + && 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 \ + gfortran \ + gettext \ + gettext-base \ + intltool-debian \ + indent \ + lcov \ + libapr1 \ + libapr1-dev \ + libasprintf-dev \ + libatlas-base-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 \ + libpcap-dev \ + libpython-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 \ + clang-5.0 \ + libboost-all-dev \ + ruby-dev \ + gdb \ + iperf3 \ + cmake \ + cmake-data \ + libarchive13 \ + liblzo2-2 \ + librhash0 \ + libuv1 \ + ninja-build \ + cmake-doc \ + lrzip \ + xmlstarlet \ + g++-8 \ + gcc-8 \ + libsubunit-dev \ + libsubunit0 \ + yamllint \ + 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 \ + # docs + python-markupsafe \ + python-jinja2 \ + python-pyparsing \ + doxygen \ + graphviz \ + && rm -rf /var/lib/apt/lists/* + +#Repoint clang +RUN update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-5.0 1000 && update-alternatives --install /usr/bin/clang clang /usr/bin/clang-5.0 1000 +RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8 + +# 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 \ + && mkdir /workspace \ + && mkdir -p /w/workspace \ + && mkdir -p /var/ccache \ + && ln -s /var/ccache /tmp/ccache \ + && mkdir /home/jenkins \ + && mkdir -p /var/cache/vpp/python + +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' + +# packagecloud +RUN curl -L https://packagecloud.io/fdio/master/gpgkey |sudo apt-key add - +RUN gem install rake +RUN gem install package_cloud +RUN gem install facter +ADD files/pc_push /usr/local/bin/pc_push +ADD files/packagecloud /root/.packagecloud +ADD files/packagecloud_api /root/packagecloud_api + +RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash + +# 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 /w/Downloads +#RUN wget -O /w/Downloads/nasm-2.13.01.tar.xz http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.xz +RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://fast.dpdk.org/rel/dpdk-18.02.1.tar.xz +#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://fast.dpdk.org/rel/dpdk-18.05.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-17.11.tar.xz http://fast.dpdk.org/rel/dpdk-17.11.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 + +# 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 +ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH} diff --git a/docker/vpp/vpp-centos/Dockerfile b/docker/vpp/vpp-centos/Dockerfile new file mode 100644 index 000000000..8fdfe5b1c --- /dev/null +++ b/docker/vpp/vpp-centos/Dockerfile @@ -0,0 +1,367 @@ +FROM centos:7.6.1810 +MAINTAINER Ed Kern <ejk@cisco.com> +LABEL Description="VPP centos OS build image" +LABEL Vendor="cisco.com" +LABEL Version="2.0" + +# Setup the environment + +RUN mkdir /workspace && mkdir -p /etc/ssh && mkdir -p /var/ccache + +ENV CCACHE_DIR=/var/ccache +ENV MAKE_PARALLEL_FLAGS -j 4 +ENV VPP_ZOMBIE_NOCHECK=1 +ENV DPDK_DOWNLOAD_DIR=/w/Downloads +ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' +ENV NOTVISIBLE "in users profile" + +#SSH timeout +#RUN touch /etc/ssh/ssh_config +RUN echo "TCPKeepAlive true" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1 +RUN echo "ServerAliveCountMax 30" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1 +RUN echo "ServerAliveInterval 10" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1 + +# Configure locales +#RUN localectl set-locale "en_US.UTF-8" \ +# && localectl status + +#module +RUN echo uio_pci_generic >> /etc/modules + + +#RUN yum update -y && yum install -y deltarpm && yum clean all +RUN yum update -y && yum install -y @base https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && yum clean all +RUN yum update -y && yum install -y --enablerepo=epel \ + chrpath \ + git \ + git-review \ + java-*-openjdk-devel \ + jq \ + lcov \ + make \ + nasm \ +# perl-XML-XPath \ +# puppet \ + sudo \ + unzip \ + xz \ + wget \ + && yum clean all + +#packer install +#RUN wget https://releases.hashicorp.com/packer/1.1.3/packer_1.1.3_linux_amd64.zip && unzip packer_1.1.3_linux_amd64.zip -d /usr/local/bin/ && mv /usr/local/bin/packer /usr/local/bin/packer.io + + +RUN yum update -y && yum install -y --enablerepo=epel \ + asciidoc \ + apr-devel \ + cpp \ + c++ \ + cmake \ + dblatex \ + doxygen \ + epel-rpm-macros \ + gcc \ + graphviz \ + indent \ + kernel-devel \ + libxml2 \ + libffi-devel \ + make \ + openssl-devel \ + python-devel \ + python-virtualenv \ + python-setuptools \ + python-cffi \ + python-pip \ + python-jinja2 \ + python-sphinx \ + source-highlight \ + rpm \ + valgrind \ + yum-utils \ + && yum clean all + +RUN yum update -y && yum install -y --enablerepo=epel \ + ganglia-devel \ + libconfuse-devel \ + mock \ + && yum clean all + +#RUN alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java +#RUN alternatives --set java_sdk_openjdk /usr/lib/jvm/java-1.7.0-openjdk.x86_64 + +RUN pip install --upgrade pip +RUN pip install pycap scapy + +RUN yum update -y && yum install -y --enablerepo=epel \ + autoconf \ + automake \ + bison \ + ccache \ + cscope \ + curl \ + dkms \ + git \ + git-review \ + libtool \ + libconfuse-dev \ + libpcap-devel \ + libcap-devel \ + scapy \ + && yum clean all + +#puppet +RUN yum update -y && yum install -y --enablerepo=epel \ + libxml2-devel \ + libxslt-devel \ + ruby-devel \ + zlib-devel \ + gcc-c++ \ + && yum clean all + +#outdated ruby pos +RUN yum update -y && yum install -y --enablerepo=epel \ + git-core \ + zlib \ + zlib-devel \ + gcc-c++ \ + patch \ + readline \ + readline-devel \ + libyaml-devel \ + libffi-devel \ + openssl-devel \ + make \ + bzip2 \ + autoconf \ + automake \ + libtool \ + bison \ + curl \ + sqlite-devel \ + && yum clean all + +ENV PATH="/root/.rbenv/bin:${PATH}" +ENV PATH="/root/.rbenv/shims:${PATH}" + +RUN curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash - +RUN rbenv init - +RUN rbenv install 2.5.1 && rbenv global 2.5.1 +#&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(rbenv init -)"' >> ~/.bashrc && + + +RUN gem install rake +RUN gem install package_cloud + +RUN yum update -y && yum install -y --enablerepo=epel \ + apr-util \ + byacc \ + diffstat \ + dwz \ + flex \ + gcc-gfortran \ + gettext-devel \ + glibc-static \ + intltool \ + nasm \ + patchutils \ + rcs \ + redhat-lsb \ + redhat-rpm-config \ + rpm-build \ + rpm-sign \ + subversion \ + swig \ + systemtap \ + && yum clean all + +RUN yum update -y && yum install -y --enablerepo=epel-debuginfo --enablerepo=base-debuginfo \ + e2fsprogs-debuginfo \ + glibc-debuginfo \ + krb5-debuginfo \ + nss-softokn-debuginfo \ + openssl-debuginfo \ + yum-plugin-auto-update-debug-info \ + zlib-debuginfo \ + glibc-debuginfo-common \ + && yum clean all + +RUN yum update -y && yum groupinstall -y "development tools" \ + && yum clean all +# Libraries needed during compilation to enable all features of Python: +RUN yum update -y \ + && yum install -y --enablerepo=epel \ + zlib-devel \ + bzip2-devel \ + openssl-devel \ + ncurses-devel \ + sqlite-devel \ + readline-devel \ + tk-devel \ + gdbm-devel \ + db4-devel \ + libpcap-devel \ + xz-devel \ + expat-devel \ + wget \ + clang \ + llvm \ + numactl-devel \ + check-devel \ + check \ + boost \ + boost-devel \ + mbedtls-devel \ + xmlstarlet \ + centos-release-scl \ + yamllint \ + && yum clean all + +# Python 2.7.13: +RUN wget http://python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz \ + && tar xf Python-2.7.13.tar.xz \ + && cd Python-2.7.13 \ + && ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" \ + && make \ + && make install \ + && strip /usr/local/lib/libpython2.7.so.1.0 \ + && cd .. \ + && rm -rf Python* \ + && wget https://bootstrap.pypa.io/get-pip.py \ + && /usr/local/bin/python get-pip.py + +RUN pip install six scapy==2.3.3 pyexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup ply +RUN mkdir -p /w/workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache +ENV CCACHE_DIR=/var/ccache +ENV CCACHE_READONLY=true +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/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 + +ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives +RUN chmod 755 /usr/local/bin/lf-update-java-alternatives +RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.rpm.sh | sudo bash + + +#include bits from csit-sut +RUN yum install -y \ + # general tools + bridge-utils \ + cloud-init \ + net-tools \ + openssh-server \ + pciutils \ + rsyslog \ + ssh \ + sudo \ + supervisor \ + tar \ + vim \ + wget \ + python-devel \ + openssh-clients \ + # csit requirements + gcc \ + cmake3 \ + docker-1.13 \ + libpcap-devel \ + libpython-devel-2.7 \ + libpython-devel \ + openjdk-8-jdk-headless \ + python-pip \ + python-devel-2.7 \ + python-virtualenv \ + socat \ + strongswan \ + unzip \ + tcpdump \ + zlib-devel \ + # vpp requirements + ca-certificates-2018 \ + libapr1 \ + mbedtls \ + mbedtls-devel \ + libnuma1 \ + python-cffi \ + python36-cffi \ + python-enum34 \ + git \ + sshpass \ + facter \ + devtoolset-7 \ + ninja-build \ + python3-devel \ + python36-jsonschema \ + selinux-policy \ + selinux-policy-devel \ + mbedtls-debuginfo \ + && yum clean all + +# Configure locales +#RUN localectl set-locale "en_US.UTF-8" \ +# && localectl status + +# Fix permissions +# RUN chown root:syslog /var/log \ +# && chmod 755 /etc/default + +# Create directory structure +RUN mkdir -p /tmp/dumps \ + && mkdir -p /var/cache/vpp/python \ + && mkdir -p /var/run/sshd + +# CSIT PIP pre-cache +RUN pip install \ + docopt==0.6.2 \ + ecdsa==0.13 \ + enum34==1.1.2 \ + ipaddress==1.0.16 \ + paramiko==1.16.0 \ + pexpect==4.6.0 \ + ptyprocess==0.6.0 \ + pycrypto==2.6.1 \ + pykwalify==1.5.0 \ + pypcap==1.1.5 \ + python-dateutil==2.4.2 \ + PyYAML==3.11 \ + requests==2.9.1 \ + robotframework==2.9.2 \ + scapy==2.3.3 \ + scp==0.10.2 \ + six==1.12.0 \ + dill==0.2.8.2 \ + numpy==1.14.5 \ + scipy==1.1.0 + +# VPP PIP pre-cache +RUN pip install \ + aenum + +# SSH settings +RUN echo 'root:Csit1234' | chpasswd \ + && sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config \ + && sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd \ + && echo "export VISIBLE=now" >> /etc/profile + +ADD files/sshconfig /root/.ssh/config +ADD files/badkey /root/.ssh/id_rsa +RUN chmod 600 /root/.ssh/id_rsa +RUN mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar +RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' + +#include bits from registry image +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 +ADD files/jenkins /etc/sudoers.d/jenkins +ADD files/supervisord.conf /etc/supervisord/supervisord.conf +ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH} + +#csit-sut ssh bits for the end +EXPOSE 22 + +CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisord/supervisord.conf; /usr/sbin/sshd -D"] diff --git a/docker/vpp/vpp-centos8/Dockerfile b/docker/vpp/vpp-centos8/Dockerfile new file mode 100644 index 000000000..ea671452c --- /dev/null +++ b/docker/vpp/vpp-centos8/Dockerfile @@ -0,0 +1,387 @@ +FROM centos:8 +MAINTAINER Ed Kern <ejk@cisco.com> +LABEL Description="VPP centos8 OS build image" +LABEL Vendor="cisco.com" +LABEL Version="0.02" + +# Setup the environment + +RUN mkdir /workspace && mkdir -p /etc/ssh && mkdir -p /var/ccache + +ENV CCACHE_DIR=/var/ccache +ENV MAKE_PARALLEL_FLAGS -j 4 +ENV VPP_ZOMBIE_NOCHECK=1 +ENV DPDK_DOWNLOAD_DIR=/w/Downloads +ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' +ENV NOTVISIBLE "in users profile" + +#SSH timeout +#RUN touch /etc/ssh/ssh_config +RUN echo "TCPKeepAlive true" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1 +RUN echo "ServerAliveCountMax 30" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1 +RUN echo "ServerAliveInterval 10" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1 + +# Configure locales +#RUN localectl set-locale "en_US.UTF-8" \ +# && localectl status + +#module +RUN echo uio_pci_generic >> /etc/modules + +ADD files/CentOS-AppStream.repo /etc/yum.repos.d/CentOS-AppStream.repo +ADD files/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo + +#RUN yum update -y && yum install -y deltarpm && yum clean all +#RUN yum update -y && yum install -y @base https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && yum clean all +RUN yum update -y && yum install -y epel-release && yum clean all +ADD files/epel.repo /etc/yum.repos.d/epel.repo + +RUN yum update -y && yum install -y --enablerepo=epel \ + chrpath \ + git \ +# git-review \ + java-*-openjdk-devel \ + jq \ +# lcov \ + make \ +# nasm \ + sudo \ + unzip \ + xz \ + wget \ + nano \ + && yum clean all + +#packer install +#RUN wget https://releases.hashicorp.com/packer/1.1.3/packer_1.1.3_linux_amd64.zip && unzip packer_1.1.3_linux_amd64.zip -d /usr/local/bin/ && mv /usr/local/bin/packer /usr/local/bin/packer.io + + +RUN yum update -y && yum install -y --enablerepo=epel \ + asciidoc \ + apr-devel \ + cpp \ +# c++ \ + cmake \ +# dblatex \ +# doxygen \ + epel-rpm-macros \ + gcc \ + graphviz \ + indent \ + kernel-devel \ + libxml2 \ + libffi-devel \ + make \ + openssl-devel \ + python2-devel \ + python2-virtualenv \ + python2-setuptools \ +# python2-cffi \ + python2-pip \ + python2-jinja2 \ +# python2-sphinx \ + source-highlight \ + rpm \ + valgrind \ + yum-utils \ + && yum clean all + +RUN yum update -y && yum install -y \ +# ganglia-devel \ + libconfuse-devel \ + mock \ + && yum clean all + +#RUN alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java +#RUN alternatives --set java_sdk_openjdk /usr/lib/jvm/java-1.7.0-openjdk.x86_64 + +RUN pip2 install --upgrade pip +RUN pip2 install pycap scapy + +RUN yum update -y && yum install -y --enablerepo=epel \ + autoconf \ + automake \ + bison \ + ccache \ + cscope \ + curl \ + dkms \ + git \ +# git-review \ + libtool \ +# libconfuse-dev \ +# libpcap-devel \ + libcap-devel \ + scapy \ + && yum clean all + +#puppet +RUN yum update -y && yum install -y --enablerepo=epel \ + libxml2-devel \ + libxslt-devel \ + ruby-devel \ + zlib-devel \ + gcc-c++ \ + && yum clean all + +#outdated ruby pos +RUN yum update -y && yum install -y --enablerepo=epel \ + git-core \ + zlib \ + zlib-devel \ + gcc-c++ \ + patch \ + readline \ + readline-devel \ +# libyaml-devel \ + libffi-devel \ + openssl-devel \ + make \ + bzip2 \ + autoconf \ + automake \ + libtool \ + bison \ + curl \ + sqlite-devel \ + && yum clean all + +ENV PATH="/root/.rbenv/bin:${PATH}" +ENV PATH="/root/.rbenv/shims:${PATH}" + +RUN curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash - +RUN rbenv init - +RUN rbenv install 2.5.1 && rbenv global 2.5.1 +#&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(rbenv init -)"' >> ~/.bashrc && + + +RUN gem install rake +RUN gem install package_cloud + +RUN yum update -y && yum install -y --enablerepo=epel \ + apr-util \ + byacc \ + diffstat \ + dwz \ + flex \ + gcc-gfortran \ + gettext-devel \ + glibc \ + glibc-langpack-en \ + intltool \ +# nasm \ + patchutils \ +# rcs \ + redhat-lsb \ + redhat-rpm-config \ + rpm-build \ + rpm-sign \ + subversion \ + swig \ + systemtap \ + && yum clean all + +#RUN yum update -y && yum install -y --enablerepo=epel-debuginfo --enablerepo=base-debuginfo \ +# RUN yum update -y && yum install -y --enablerepo=epel-debuginfo \ +# e2fsprogs-debuginfo \ +# glibc-debuginfo \ +# krb5-debuginfo \ +# nss-softokn-debuginfo \ +# openssl-debuginfo \ +# yum-plugin-auto-update-debug-info \ +# zlib-debuginfo \ +# glibc-debuginfo-common \ +# && yum clean all + +RUN yum update -y && yum groupinstall -y "development tools" \ + && yum clean all +# Libraries needed during compilation to enable all features of Python: +RUN yum update -y \ + && yum install -y --enablerepo=epel \ + zlib-devel \ + bzip2-devel \ + openssl-devel \ + ncurses-devel \ + sqlite-devel \ + readline-devel \ + tk-devel \ + gdbm-devel \ +# db4-devel \ +# libpcap-devel \ + xz-devel \ + expat-devel \ + wget \ + clang \ + llvm \ + numactl-devel \ + check-devel \ + check \ + boost \ + boost-devel \ + mbedtls-devel \ + xmlstarlet \ +# centos-release-scl \ + yamllint \ + && yum clean all + +#centos8 +RUN dnf config-manager --set-enabled PowerTools \ + && yum install -y --enablerepo=epel \ + compat-openssl10 \ + python3-jsonschema \ + selinux-policy \ + selinux-policy-devel \ + glibc-static \ + ninja-build \ + && yum clean all + +# Python 2.7.13: +# RUN wget http://python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz \ +# && tar xf Python-2.7.13.tar.xz \ +# && cd Python-2.7.13 \ +# && ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" \ +# && make \ +# && make install \ +# && strip /usr/local/lib/libpython2.7.so.1.0 \ +# && cd .. \ +# && rm -rf Python* \ +# && wget https://bootstrap.pypa.io/get-pip.py \ +# && /usr/local/bin/python get-pip.py + +RUN pip2 install six scapy==2.3.3 pyexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup ply +RUN mkdir -p /w/workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache +ENV CCACHE_DIR=/var/ccache +ENV CCACHE_READONLY=true +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/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 + +ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives +RUN chmod 755 /usr/local/bin/lf-update-java-alternatives +#RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.rpm.sh | sudo bash + +# CSIT requirements +RUN dnf config-manager --set-enabled PowerTools \ + && yum install -y --enablerepo=epel \ + curl \ + git \ + libpcap-devel \ + openssh-clients \ + openssh-server \ + net-tools \ + pciutils \ + python3-cffi \ + python3-pip \ + python3-setuptools \ + socat \ + sshpass \ + strongswan \ + sudo \ + supervisor \ + tar \ + tcpdump \ + unzip \ + vim \ + virtualenv \ + wget \ + zlib-devel \ + && yum clean all + +# 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 \ + ply==3.11 \ + 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 \ + 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 ARM workaround +RUN pip3 install scipy==1.1.0 + +# Configure locales +#RUN localectl set-locale "en_US.UTF-8" \ +# && localectl status + +# Fix permissions +# RUN chown root:syslog /var/log \ +# && chmod 755 /etc/default + +# Create directory structure +RUN mkdir -p /tmp/dumps \ + && mkdir -p /var/cache/vpp/python \ + && mkdir -p /var/run/sshd + +# SSH settings +RUN echo 'root:Csit1234' | chpasswd \ + && sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config \ + && sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd \ + && echo "export VISIBLE=now" >> /etc/profile + +ADD files/sshconfig /root/.ssh/config +ADD files/badkey /root/.ssh/id_rsa +RUN chmod 600 /root/.ssh/id_rsa +#RUN mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar +RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' + +#include bits from registry image +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 +ADD files/jenkins /etc/sudoers.d/jenkins +ADD files/supervisord.conf /etc/supervisord/supervisord.conf +ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH} + +#csit-sut ssh bits for the end +EXPOSE 22 + +CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisord/supervisord.conf; /usr/sbin/sshd -D"] diff --git a/docker/vpp/vpp-ubuntu16/Dockerfile b/docker/vpp/vpp-ubuntu16/Dockerfile new file mode 100644 index 000000000..589e0a9c5 --- /dev/null +++ b/docker/vpp/vpp-ubuntu16/Dockerfile @@ -0,0 +1,248 @@ +FROM ubuntu:16.04 +MAINTAINER Ed Kern <ejk@cisco.com> +LABEL Description="VPP ubuntu 16 baseline" +LABEL Vendor="cisco.com" +LABEL Version="3.1" + + +# 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 \ + python-apt \ + python-pip \ + python-yaml \ + rsync \ + rsyslog \ + screen \ + shunit2 \ + socat \ + software-properties-common \ + ssh \ + sudo \ + sysstat \ + tar \ + tcpdump \ + tmux \ + traceroute \ + unattended-upgrades \ + uuid-runtime \ + vim \ + wget \ + apt-transport-https \ + default-jre-headless \ + chrpath \ + nasm \ + && 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 \ + python-all \ + && 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-common \ + libconfuse-dev \ + libconfuse0 \ + libcroco3 \ + libexpat1-dev \ + libganglia1 \ + libganglia1-dev \ + libgd-gd2-perl \ + libgettextpo-dev \ + libgettextpo0 \ + libltdl-dev \ + libmail-sendmail-perl \ + libmbedtls-dev \ + libpython-dev \ + libpython2.7-dev \ + libsctp-dev \ + libsigsegv2 \ + libssl-dev \ + libssl-doc \ + libsys-hostname-long-perl \ + libtool \ + libunistring0 \ + m4 \ + pkg-config \ + po-debconf \ + python-dev \ + python-virtualenv \ + python2.7-dev \ + uuid-dev \ + zlib1g-dev \ + locales \ + llvm \ + clang \ + clang-format \ + clang-5.0 \ + libboost-all-dev \ + ruby-dev \ + zile \ + default-jdk-headless \ + check \ + libsubunit-dev \ + libsubunit0 \ + emacs \ + gdb \ + libpcap-dev \ + python-ply \ + iperf3 \ + libibverbs-dev \ + dtach \ + cmake \ + cmake-data \ + libarchive13 \ + libcurl3 \ + liblzo2-2 \ + ninja-build \ + && rm -rf /var/lib/apt/lists/* + +#Repoint clang +RUN update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-5.0 1000 && update-alternatives --install /usr/bin/clang clang /usr/bin/clang-5.0 1000 + +# For the docs +RUN apt-get -q update && \ + apt-get install -y -qq \ + python-markupsafe \ + python-jinja2 \ + python-pyparsing \ + doxygen \ + graphviz \ + xmlstarlet \ + && 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 gem install rake +RUN gem install package_cloud +RUN pip install six scapy==2.3.3 pyexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup pycodestyle +#Below are requirements for csit +RUN pip install robotframework==2.9.2 paramiko==1.16.0 scp==0.10.2 ipaddress==1.0.16 interruptingcow==0.6 PyYAML==3.12 pykwalify==1.5.0 \ + enum34==1.1.2 requests==2.9.1 ecdsa==0.13 pycrypto==2.6.1 pypcap==1.1.5 psutil + +RUN mkdir -p /var/cache/vpp/python +RUN mkdir -p /w/Downloads +RUN wget -O /w/Downloads/nasm-2.13.01.tar.xz http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.xz +RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://fast.dpdk.org/rel/dpdk-18.02.1.tar.xz +#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://fast.dpdk.org/rel/dpdk-18.05.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-17.11.tar.xz http://fast.dpdk.org/rel/dpdk-17.11.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 git clone https://gerrit.fd.io/r/vpp /workspace/ubuntu16 && cd /workspace/ubuntu16; make UNATTENDED=yes install-dep && rm -rf /workspace/ubuntu16 && rm -rf /var/lib/apt/lists/* +#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 + +ADD files/sshconfig /root/.ssh/config +ADD files/badkey /root/.ssh/id_rsa +ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives +RUN chmod 755 /usr/local/bin/lf-update-java-alternatives +RUN chmod 600 /root/.ssh/id_rsa +RUN curl -L https://packagecloud.io/fdio/master/gpgkey |sudo apt-key add - + +RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash + +#RUN apt update && apt install -y vpp-dpdk-dev vpp-dpdk-dkms +RUN mkdir -p /w/workspace && mkdir -p /home/jenkins && mkdir -p /run/shm + + + + diff --git a/docker/vpp/vpp-ubuntu18/Dockerfile b/docker/vpp/vpp-ubuntu18/Dockerfile new file mode 100644 index 000000000..85abf6228 --- /dev/null +++ b/docker/vpp/vpp-ubuntu18/Dockerfile @@ -0,0 +1,342 @@ +FROM ubuntu:18.04 +MAINTAINER Ed Kern <ejk@cisco.com> +LABEL Description="VPP ubuntu 18 baseline" +LABEL Vendor="cisco.com" +LABEL Version="1.1" + + +# 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 \ + libpython-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/nasm-2.13.01.tar.xz http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.xz +#RUN wget -O /w/Downloads/dpdk-18.02.tar.xz http://fast.dpdk.org/rel/dpdk-18.02.tar.xz +#RUN wget -O /w/Downloads/dpdk-17.11.tar.xz http://fast.dpdk.org/rel/dpdk-17.11.tar.xz +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} + 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 <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} + |