diff options
author | Matthew Giassa <mgiassa@cisco.com> | 2021-11-19 17:06:11 +0000 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2021-12-01 18:41:20 +0000 |
commit | 4a0dd383cf363ba7df105b87838435ef1cfa4fd7 (patch) | |
tree | b6f7701433601af5fc3c44ce3b815efc668be0d9 /docs/usecases/vpp_testbench/src/Dockerfile.vpp_testbench | |
parent | 342a5d472fe8f9aafd7ff50521d94c39a112c961 (diff) |
docs: add VPP Container Testbench example and lab
Adding a "VPP container testbench" (pair of Docker containers plus
helper scripts to test Linux and VPP interfaces). Will be part of a
larger set of labs/exercises/tutorials. Putting this baseline setup up
for review first to see if the community sees use/value in it. If so,
additional exercises using the testbench will be added gradually.
Type: improvement
Signed-off-by: Matthew Giassa <mgiassa@cisco.com>
Change-Id: I582310f7355419e907d575f640482ca49cbb282f
Diffstat (limited to 'docs/usecases/vpp_testbench/src/Dockerfile.vpp_testbench')
-rw-r--r-- | docs/usecases/vpp_testbench/src/Dockerfile.vpp_testbench | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/docs/usecases/vpp_testbench/src/Dockerfile.vpp_testbench b/docs/usecases/vpp_testbench/src/Dockerfile.vpp_testbench new file mode 100644 index 00000000000..f7e19feebbf --- /dev/null +++ b/docs/usecases/vpp_testbench/src/Dockerfile.vpp_testbench @@ -0,0 +1,82 @@ +#------------------------------------------------------------------------------# +# @brief: Dockerfile for building the VPP testbench project. +# @author: Matthew Giassa <mgiassa@cisco.com> +# @copyright: (C) Cisco 2021. +#------------------------------------------------------------------------------# +# Baseline image both client and server inherit from. +FROM ubuntu:focal as baseline + +# System packages. +RUN apt update -y && \ + DEBIAN_FRONTEND="noninteractive" apt install -y tzdata termshark && \ + apt install -y \ + apt-transport-https \ + axel \ + bash \ + binutils \ + bridge-utils \ + ca-certificates \ + coreutils \ + curl \ + gnupg \ + htop \ + iftop \ + iproute2 \ + iptables \ + iputils-ping \ + netcat \ + net-tools \ + nload \ + nmap \ + procps \ + python3 \ + python3-dev \ + python3-pip \ + sudo \ + wget \ + tcpdump \ + vim \ + && \ + apt clean -y +# Python packages. +RUN python3 -m pip install \ + scapy + +# VPP. +RUN bash -c "curl -L https://packagecloud.io/fdio/master/gpgkey | apt-key add -" && \ + bash -c "echo \"deb [trusted=yes] https://packagecloud.io/fdio/release/ubuntu focal main\" >> /etc/apt/sources.list.d/99fd.io.list" && \ + apt update && \ + apt install -y \ + vpp \ + vpp-plugin-core \ + vpp-plugin-dpdk \ + && \ + apt clean -y + +# Used by client/server entrypoint scripts. +ADD vpp_testbench_helpers.sh / + + +#------------------------------------------------------------------------------# +# Client image. +FROM baseline as client_img +# Enable a health probe. +ARG HEALTHCHECK_PORT=8080 +ENV HEALTHCHECK_PORT_RUNTIME="${HEALTHCHECK_PORT}" +HEALTHCHECK CMD curl --fail "http://localhost:$HEALTHCHECK_PORT_RUNTIME" || exit 1 +# Image-specific overrides. +ADD ./entrypoint_client.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] + + +#------------------------------------------------------------------------------# +# Server image. +FROM baseline as server_img +# Enable a health probe. +ARG HEALTHCHECK_PORT=8080 +ENV HEALTHCHECK_PORT_RUNTIME="${HEALTHCHECK_PORT}" +HEALTHCHECK CMD curl --fail "http://localhost:$HEALTHCHECK_PORT_RUNTIME" || exit 1 +# Image-specific overrides. +ADD ./entrypoint_server.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] + |