Adding initial code jy.oak@samsung.com
[ric-app/kpimon.git] / Dockerfile
diff --git a/Dockerfile b/Dockerfile
new file mode 100755 (executable)
index 0000000..ca359e4
--- /dev/null
@@ -0,0 +1,95 @@
+ARG STAGE_DIR=/tmp/kpi-xapp\r
+\r
+#==================================================================================\r
+FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu16-c-go:1-u16.04-nng1.1.1 as ricbuild\r
+\r
+# to override repo base, pass in repo argument when running docker build:\r
+# docker build --build-arg REPOBASE=http://abc.def.org . ....\r
+ARG REPOBASE=https://gerrit.oran-osc.org/r\r
+ARG STAGE_DIR\r
+\r
+# Install necessary packages\r
+WORKDIR ${STAGE_DIR}\r
+RUN apt-get update  \\r
+     && apt-get install -y \\r
+     libcurl4-openssl-dev \\r
+     libcurl3 \\r
+     cmake \\r
+     git \\r
+     build-essential \\r
+     automake \\r
+     autoconf-archive \\r
+     autoconf \\r
+     pkg-config \\r
+     gawk \\r
+     libtool \\r
+     wget \\r
+     zlib1g-dev \\r
+     libffi-dev \\r
+     && apt-get clean\r
+\r
+# Install mdclog using debian package hosted at packagecloud.io\r
+ARG MDC_VER=0.0.3-1\r
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/master/packages/debian/stretch/mdclog_${MDC_VER}_amd64.deb/download.deb\r
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/master/packages/debian/stretch/mdclog-dev_${MDC_VER}_amd64.deb/download.deb\r
+RUN dpkg -i mdclog_${MDC_VER}_amd64.deb\r
+RUN dpkg -i mdclog-dev_${MDC_VER}_amd64.deb\r
+\r
+# Install RMR using debian package hosted at packagecloud.io\r
+ARG RMR_VER=1.3.0\r
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb\r
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_${RMR_VER}_amd64.deb/download.deb\r
+RUN dpkg -i rmr_${RMR_VER}_amd64.deb\r
+RUN dpkg -i rmr-dev_${RMR_VER}_amd64.deb\r
+\r
+##-----------------------------------\r
+# Now install the program\r
+#------------------------------------\r
+COPY ./ ${STAGE_DIR}\r
+RUN export CPATH=$CPATH:/usr/local/include && \ \r
+    cd src && \\r
+    make clean && \\r
+    make install \r
+\r
+#---------------------------------------------\r
+# Build the final version\r
+#FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu16-c-go:1-u16.04-nng1.1.1\r
+\r
+FROM ubuntu:16.04\r
+\r
+ARG STAGE_DIR\r
+\r
+# Install Hiredis Library\r
+RUN cd /tmp/\r
+RUN git clone https://github.com/redis/hiredis.git\r
+RUN cd hiredis\r
+RUN make all\r
+\r
+# copy just the needed libraries install it into the final image\r
+RUN cd ${STAGE_DIR}/src\r
+COPY --from=ricbuild ${STAGE_DIR}/*.deb /tmp/\r
+COPY --from=ricbuild /usr/local/lib/libnng* /usr/local/lib/\r
+RUN dpkg -i /tmp/*.deb\r
+RUN apt-get update && \\r
+    apt-get install -y libcurl3 && \\r
+    apt-get clean\r
+COPY --from=ricbuild /etc/xapp/* /etc/xapp/\r
+COPY --from=ricbuild /usr/local/bin/kpi-xapp /usr/local/bin/kpi-xapp\r
+#COPY --from=ricbuild /usr/local/bin/e2e-test-client /usr/local/bin/e2e-test-client\r
+#COPY --from=ricbuild /usr/local/bin/mock-e2term-server /usr/local/bin/mock-e2term-server\r
+#COPY --from=ricbuild /usr/local/bin/e2e-perf-client /usr/local/bin/e2e-perf-client\r
+#COPY --from=ricbuild /usr/local/bin/e2e-perf-server /usr/local/bin/e2e-perf-server\r
+#COPY --from=ricbuild /usr/local/bin/mock-a1-server /usr/local/bin/mock-a1-server\r
+\r
+\r
+RUN ldconfig\r
+\r
+ENV  RMR_RTG_SVC="127.0.0.1" \\r
+     NAME=KPI_XAPP \\r
+     PORT=tcp:4560 \\r
+     THREADS=1\r
+\r
+ARG gNodeB=NYC123,ABC345,CDR331\r
+ARG THREADS=1\r
+\r
+CMD ./kpi-xapp -g $gNodeB -t $THREADS\r