beef up the AI/ML framework tests by adding InfluxDB as data source and populate...
[it/test.git] / ric_robot_suite / docker / nanobot / Dockerfile
1    FROM python:3.8-alpine AS nanobot-build
2
3    RUN apk update && apk add --no-cache git build-base libffi-dev libxml2 libxslt libxml2-dev libxslt-dev openssl-dev
4    RUN apk update && apk add git gcc linux-headers libc-dev cmake pkgconfig make
5
6    ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1
7    RUN pip install kubernetes
8    RUN pip install redis
9    RUN pip install asyncio
10    RUN pip install websockets
11    RUN pip install robotframework
12    RUN pip install robotframework-requests
13    RUN pip install robotframework-ncclient
14    RUN pip install UUID
15    WORKDIR /tmp/
16    RUN git clone -b 3.0.1-ONAP https://gerrit.onap.org/r/testsuite/python-testing-utils.git
17
18
19    #rmr probe for e2term
20    RUN pip install msgpack
21    RUN python3 -m pip install ricsdl
22    RUN apk add curl
23    RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.2/bin/linux/amd64/kubectl
24    RUN chmod +x ./kubectl
25    RUN mv ./kubectl /usr/local/bin/kubectl
26
27
28    RUN apk add cmake git gcc
29    WORKDIR /
30    RUN git clone https://gerrit.o-ran-sc.org/r/ric-plt/lib/rmr && \
31         cd rmr && \
32         mkdir build && \
33         cd build && \
34         cmake -DPACK_EXTERNALS=1 -DDEV_PKG=1 .. && \
35         make install
36    #RUN  mkdir -p /opt/e2
37    #RUN  cp /rmr/build/src/support/rmr_probe /opt/e2/
38
39
40
41    FROM python:3.8-alpine
42    MAINTAINER "RIC"
43    LABEL name="Docker image for the RIC Robot Testing Framework"
44
45    ENV ROBOT_HOME="/robot"
46    ENV ROBOT_OPTIONS="-T -d /robot/log --console verbose -C off -P /robot/lib/python"
47    ENV KUBECONFIG="/robot/etc/kubernetes-admin-conf"
48    ENV PYTHONPATH="/robot/lib/python"
49    ENV RICPLT_NAMESPACE=ricplt
50    ENV RICPLT_RELEASE_NAME=ric-full
51    ENV RICPLT_COMPONENTS="a1mediator appmgr dbaas e2mgr e2term rtmgr"
52    ENV DBAAS_SERVICE_HOST=service-ricplt-dbaas-tcp.ricplt.svc.cluster.local
53    ENV DBAAS_SERVICE_PORT=6379
54    RUN apk update && apk add libxslt
55    COPY --from=nanobot-build /usr/local/lib/python3.8 /usr/local/lib/python3.8
56    COPY --from=nanobot-build /usr/local/bin/robot /usr/local/bin
57
58    RUN apk add wget
59    RUN mkdir -p /robot/lib/python
60    RUN mkdir -p /opt/e2
61    #WORKDIR ric-python-utils/ricutils
62    #RUN wget -o SDLWrapper.py "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-plt/xapp-frame-py.git;a=blob_plain;f=ricxappframe/xapp_sdl.py"
63    # ONAP eteutils
64    # we only need a few things from this so we won't install the whole thing.
65    COPY ric-python-utils/ricutils/KubernetesEntity.py /robot/lib/python
66    COPY ric-python-utils/ricutils/SDLWrapper.py /robot/lib/python
67    COPY --from=nanobot-build /rmr/build/src/support/rmr_probe /opt/e2
68    COPY --from=nanobot-build /tmp/python-testing-utils/eteutils/StringTemplater.py /robot/lib/python
69    COPY --from=nanobot-build /tmp/python-testing-utils/eteutils/UUID.py /robot/lib/python
70    COPY ric-python-utils/ricutils/*.py /robot/lib/python/
71
72    #
73    # for the nanobot container, we only need a subset of the various support
74    # files/libraries, so we pick and choose what to copy..
75    RUN mkdir /robot/resources
76    COPY robot/resources/json_templater.robot /robot/resources
77    COPY robot/resources/a1mediator /robot/resources/a1mediator
78    COPY robot/resources/appmgr /robot/resources/appmgr
79    COPY robot/resources/dashboard /robot/resources/dashboard
80    COPY robot/resources/e2mgr /robot/resources/e2mgr
81    COPY robot/resources/e2sim /robot/resources/e2sim
82    COPY robot/resources/e2term /robot/resources/e2term
83    COPY robot/resources/o1mediator /robot/resources/o1mediator
84    COPY robot/resources/ric /robot/resources/ric
85    COPY robot/resources/rnib /robot/resources/rnib
86    COPY robot/resources/rtmgr /robot/resources/rtmgr
87    COPY robot/resources/xapps /robot/resources/xapps
88    # this will actually be overlaid by the helm chart, but
89    # it's good to have the placeholder.
90    COPY robot/resources/global_properties.robot /robot/resources
91
92    RUN mkdir -p /robot/assets/templates
93    COPY robot/assets/templates/e2mgr_setup_nodeb.template /robot/assets/templates
94
95    RUN python -m compileall /robot/lib/python
96
97    WORKDIR /
98    CMD ["sleep", "9125d"]