Adding initial code jy.oak@samsung.com
[ric-app/kpimon.git] / Dockerfile
1 ARG STAGE_DIR=/tmp/kpi-xapp\r
2 \r
3 #==================================================================================\r
4 FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu16-c-go:1-u16.04-nng1.1.1 as ricbuild\r
5 \r
6 # to override repo base, pass in repo argument when running docker build:\r
7 # docker build --build-arg REPOBASE=http://abc.def.org . ....\r
8 ARG REPOBASE=https://gerrit.oran-osc.org/r\r
9 ARG STAGE_DIR\r
10 \r
11 # Install necessary packages\r
12 WORKDIR ${STAGE_DIR}\r
13 RUN apt-get update  \\r
14      && apt-get install -y \\r
15      libcurl4-openssl-dev \\r
16      libcurl3 \\r
17      cmake \\r
18      git \\r
19      build-essential \\r
20      automake \\r
21      autoconf-archive \\r
22      autoconf \\r
23      pkg-config \\r
24      gawk \\r
25      libtool \\r
26      wget \\r
27      zlib1g-dev \\r
28      libffi-dev \\r
29      && apt-get clean\r
30 \r
31 # Install mdclog using debian package hosted at packagecloud.io\r
32 ARG MDC_VER=0.0.3-1\r
33 RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/master/packages/debian/stretch/mdclog_${MDC_VER}_amd64.deb/download.deb\r
34 RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/master/packages/debian/stretch/mdclog-dev_${MDC_VER}_amd64.deb/download.deb\r
35 RUN dpkg -i mdclog_${MDC_VER}_amd64.deb\r
36 RUN dpkg -i mdclog-dev_${MDC_VER}_amd64.deb\r
37 \r
38 # Install RMR using debian package hosted at packagecloud.io\r
39 ARG RMR_VER=1.3.0\r
40 RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb\r
41 RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_${RMR_VER}_amd64.deb/download.deb\r
42 RUN dpkg -i rmr_${RMR_VER}_amd64.deb\r
43 RUN dpkg -i rmr-dev_${RMR_VER}_amd64.deb\r
44 \r
45 ##-----------------------------------\r
46 # Now install the program\r
47 #------------------------------------\r
48 COPY ./ ${STAGE_DIR}\r
49 RUN export CPATH=$CPATH:/usr/local/include && \ \r
50     cd src && \\r
51     make clean && \\r
52     make install \r
53 \r
54 #---------------------------------------------\r
55 # Build the final version\r
56 #FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu16-c-go:1-u16.04-nng1.1.1\r
57 \r
58 FROM ubuntu:16.04\r
59 \r
60 ARG STAGE_DIR\r
61 \r
62 # Install Hiredis Library\r
63 RUN cd /tmp/\r
64 RUN git clone https://github.com/redis/hiredis.git\r
65 RUN cd hiredis\r
66 RUN make all\r
67 \r
68 # copy just the needed libraries install it into the final image\r
69 RUN cd ${STAGE_DIR}/src\r
70 COPY --from=ricbuild ${STAGE_DIR}/*.deb /tmp/\r
71 COPY --from=ricbuild /usr/local/lib/libnng* /usr/local/lib/\r
72 RUN dpkg -i /tmp/*.deb\r
73 RUN apt-get update && \\r
74     apt-get install -y libcurl3 && \\r
75     apt-get clean\r
76 COPY --from=ricbuild /etc/xapp/* /etc/xapp/\r
77 COPY --from=ricbuild /usr/local/bin/kpi-xapp /usr/local/bin/kpi-xapp\r
78 #COPY --from=ricbuild /usr/local/bin/e2e-test-client /usr/local/bin/e2e-test-client\r
79 #COPY --from=ricbuild /usr/local/bin/mock-e2term-server /usr/local/bin/mock-e2term-server\r
80 #COPY --from=ricbuild /usr/local/bin/e2e-perf-client /usr/local/bin/e2e-perf-client\r
81 #COPY --from=ricbuild /usr/local/bin/e2e-perf-server /usr/local/bin/e2e-perf-server\r
82 #COPY --from=ricbuild /usr/local/bin/mock-a1-server /usr/local/bin/mock-a1-server\r
83 \r
84 \r
85 RUN ldconfig\r
86 \r
87 ENV  RMR_RTG_SVC="127.0.0.1" \\r
88      NAME=KPI_XAPP \\r
89      PORT=tcp:4560 \\r
90      THREADS=1\r
91 \r
92 ARG gNodeB=NYC123,ABC345,CDR331\r
93 ARG THREADS=1\r
94 \r
95 CMD ./kpi-xapp -g $gNodeB -t $THREADS\r