F release step 2 of 2
[ric-plt/xapp-frame-py.git] / Dockerfile-Unit-Test
1 # ==================================================================================
2 #       Copyright (c) 2019-2020 Nokia
3 #       Copyright (c) 2018-2020 AT&T Intellectual Property.
4 #
5 #   Licensed under the Apache License, Version 2.0 (the "License");
6 #   you may not use this file except in compliance with the License.
7 #   You may obtain a copy of the License at
8 #
9 #          http://www.apache.org/licenses/LICENSE-2.0
10 #
11 #   Unless required by applicable law or agreed to in writing, software
12 #   distributed under the License is distributed on an "AS IS" BASIS,
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 #   See the License for the specific language governing permissions and
15 #   limitations under the License.
16 # ==================================================================================
17 FROM python:3.8-slim as stretch
18
19 # sdl uses hiredis which needs gcc
20 RUN apt-get update && \
21     apt-get install -y \
22         wget gcc musl-dev
23
24 ARG rmr_version=4.8.0
25 ARG e2ap_version=1.1.0
26
27 # download rmr and e2ap libraries from package cloud
28 RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr_${rmr_version}_amd64.deb/download.deb
29 RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr-dev_${rmr_version}_amd64.deb/download.deb
30
31 RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/riclibe2ap_${e2ap_version}_amd64.deb/download.deb
32 RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/riclibe2ap-dev_${e2ap_version}_amd64.deb/download.deb
33
34 RUN dpkg -i rmr_${rmr_version}_amd64.deb
35 RUN dpkg -i rmr-dev_${rmr_version}_amd64.deb
36
37 RUN dpkg -i riclibe2ap_${e2ap_version}_amd64.deb
38 RUN dpkg -i riclibe2ap-dev_${e2ap_version}_amd64.deb
39
40 RUN ls /usr/local/lib/
41
42 FROM python:3.8-slim
43
44 ARG rmr_version=4.8.0
45 ARG e2ap_version=1.1.0
46
47 COPY --from=stretch /usr/local/lib/librmr_si.so.${rmr_version} /usr/local/lib/librmr_si.so
48 COPY --from=stretch /usr/local/lib/libriclibe2ap.so.${e2ap_version} /usr/local/lib/libriclibe2ap.so
49
50 # Upgrade pip, install tox
51 RUN pip install --upgrade pip && pip install tox && pip install certifi six python_dateutil setuptools urllib3 inotify_simple mdclogpy
52
53 # copies
54 COPY ricxappframe/ /tmp/ricxappframe
55 COPY tests/ /tmp/tests
56 COPY setup.py tox.ini LICENSE.txt .coveragerc /tmp/
57 WORKDIR /tmp
58
59 # following is to get the docker instance and run tests from the bash shell, remove comment in the 
60 # the next ENTRYPOINT line and comment out the last RUN line to get the runable docker instance.
61 # Bbuild named image and run the instance - if you modify the files those are visible in container
62 # docker build  -t xappframe:latest -f Dockerfile-Unit-Test .
63 # docker run -ti --name xappframe --rm -v ${PWD}:/tmp -u $(id -u ${USER}):$(id -g ${USER}) --workdir /tmp xappframe:latest
64 # then run : tox -e code,flake8,docs,docs-linkcheck
65 #ENTRYPOINT ["/bin/bash"]
66 # Run the unit tests
67 RUN tox -e code,flake8