aboutsummaryrefslogtreecommitdiffstats
path: root/tools/docker/test-containers/trafficgen-pods/trex/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'tools/docker/test-containers/trafficgen-pods/trex/Dockerfile')
-rw-r--r--tools/docker/test-containers/trafficgen-pods/trex/Dockerfile46
1 files changed, 46 insertions, 0 deletions
diff --git a/tools/docker/test-containers/trafficgen-pods/trex/Dockerfile b/tools/docker/test-containers/trafficgen-pods/trex/Dockerfile
new file mode 100644
index 00000000..7258533a
--- /dev/null
+++ b/tools/docker/test-containers/trafficgen-pods/trex/Dockerfile
@@ -0,0 +1,46 @@
+##########################################################
+# Build app-netutil components in separate builder image #
+##########################################################
+FROM centos:7 as builder
+
+RUN rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO && curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
+RUN yum groupinstall -y "Development Tools"
+RUN yum install -y wget numactl-devel git golang make; yum clean all
+
+##
+## Download and Build APP-NetUtil
+##
+WORKDIR /root/go/src/
+RUN mkdir github.com && cd github.com && mkdir openshift && cd openshift && git clone https://github.com/openshift/app-netutil
+WORKDIR /root/go/src/github.com/openshift/app-netutil
+RUN make c_sample
+
+#############################
+# Create slim runtime image #
+#############################
+FROM centos:7
+
+ARG BUILD_DIR=/root
+
+COPY ./deploycentostools.sh ${BUILD_DIR}/
+COPY --from=builder /root/go/src/github.com/openshift/app-netutil/bin/c_sample /usr/bin/c_sample
+COPY --from=builder /root/go/src/github.com/openshift/app-netutil/bin/libnetutil_api.so /lib64/libnetutil_api.so
+COPY --from=builder /root/go/src/github.com/openshift/app-netutil/bin/libnetutil_api.h /usr/include/libnetutil_api.h
+
+RUN chmod a+rwx ${BUILD_DIR} && chmod +x ${BUILD_DIR}/deploycentostools.sh \
+ && ${BUILD_DIR}/deploycentostools.sh
+
+WORKDIR /root
+COPY trex_cfg.yaml.j2 /root/trex_cfg.yaml.j2
+COPY vppconf.py /root/vppconf.py
+RUN wget --no-check-certificate https://trex-tgn.cisco.com/trex/release/latest; tar -xzvf latest; rm latest
+
+# Expose SSH
+EXPOSE 22
+
+# Copy SSH keys
+COPY ./rapid_rsa_key.pub /home/centos/.ssh/authorized_keys
+COPY ./rapid_rsa_key.pub /root/.ssh/authorized_keys
+
+RUN yum -y install python3 python3-pip; yum clean all
+RUN pip3 install jinja2