aboutsummaryrefslogtreecommitdiffstats
path: root/tools/docker/test-containers/trafficgen-pods/trex/Dockerfile
blob: 7258533ace0a7e0023e0f55227aed9b3f07f67cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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