Fix: update the correct pre-built script to cmake-sonar.sh
[ric-app/mc.git] / mc-core / Dockerfile
index 96b70a6..5bc8577 100644 (file)
 
 ARG STAGE_DIR=/mc
 
-FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu18-c-go:7-u18.04 as project-build
-# Update & installation of linux packages
-RUN apt-get update -y && \
-        apt-get install -y curl && \
-        apt-get install -y procps && \
-        apt-get install -y python-pip
+# builders are now in release (10002)
+FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 AS project-build
 
 ARG STAGE_DIR
 
+ARG RMR_VER=4.7.4
+ARG RMR_PC_REPO=release
+#ARG RMR_PC_REPO=staging
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/${RMR_PC_REPO}/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/${RMR_PC_REPO}/packages/debian/stretch/rmr-dev_${RMR_VER}_amd64.deb/download.deb
+RUN dpkg -i rmr_${RMR_VER}_amd64.deb
+RUN dpkg -i rmr-dev_${RMR_VER}_amd64.deb
+RUN ldconfig
+
 COPY mc ${STAGE_DIR}
 WORKDIR ${STAGE_DIR}
-RUN apt-get install -y libboost-all-dev
-RUN apt-get install -y libhiredis-dev
+RUN apt-get update && \
+       apt-get install -y libboost-all-dev && \
+       apt-get install -y libhiredis-dev && \
+       apt-get clean
 RUN git clone https://gerrit.o-ran-sc.org/r/ric-plt/sdl
 WORKDIR ${STAGE_DIR}/sdl
 RUN ./autogen.sh
@@ -44,6 +51,10 @@ RUN make clean
 RUN make
 RUN make install
 RUN ldconfig
+
+# hack to get protobufs to build
+RUN cp src/google/protobuf/stubs/int128.h /usr/local/include/google/protobuf/stubs
+
 WORKDIR ${STAGE_DIR}
 RUN git clone https://github.com/protobuf-c/protobuf-c.git
 WORKDIR protobuf-c
@@ -53,11 +64,12 @@ RUN ./configure
 RUN make
 RUN make install
 RUN ldconfig
-RUN pip install protobuf
 WORKDIR ${STAGE_DIR}
-RUN git clone -b release/0.1.0 https://gerrit.o-ran-sc.org/r/com/gs-lite
+RUN git clone -b release/0.3.0 https://gerrit.o-ran-sc.org/r/com/gs-lite
 WORKDIR ${STAGE_DIR}/gs-lite
-COPY mc/cfg ${STAGE_DIR}/gs-lite/cfg
+COPY mc/cfg/packet_schema.txt ${STAGE_DIR}/gs-lite/cfg/
+COPY mc/cfg/ifres.xml ${STAGE_DIR}/gs-lite/cfg/
+COPY mc/cfg/localhost.ifq ${STAGE_DIR}/gs-lite/cfg/
 COPY mc/local_datasource ${STAGE_DIR}/gs-lite/src/lib/gscprts/local_datasource
 COPY mc/local ${STAGE_DIR}/gs-lite/include/lfta/local
 COPY mc/queries ${STAGE_DIR}/gs-lite/demo/queries
@@ -70,7 +82,12 @@ RUN python generate_runall.py
 
 
 # now install the binaries and libraries into smaller docker image
-FROM nexus3.o-ran-sc.org:10004/o-ran-sc/ric-app-mc-listener:1.4.0
+FROM nexus3.o-ran-sc.org:10002/o-ran-sc/ric-app-mc-listener:1.12.0
+
+# keep this close to the top to prevent lengthy rebuilds during testing
+RUN apt-get update && \
+    apt-get install -y curl python python-pip libboost-all-dev libhiredis-dev && \
+    apt-get clean
 
 ARG STAGE_DIR
 
@@ -78,23 +95,20 @@ COPY --from=project-build ${STAGE_DIR}/gs-lite/demo/queries /mc/gs-lite/demo/que
 COPY --from=project-build ${STAGE_DIR}/gs-lite/bin /mc/gs-lite/bin
 COPY --from=project-build ${STAGE_DIR}/data_gen /mc/data_gen
 COPY --from=project-build ${STAGE_DIR}/extract_params.py /mc/
+COPY --from=project-build ${STAGE_DIR}/extract_rmr_port.py /mc/
 COPY --from=project-build /usr/local/lib/libproto* /usr/local/lib/
 COPY --from=project-build /usr/local/lib/libsdl* /usr/local/lib/
 
 WORKDIR /opt/ric/config
-COPY --from=project-build ${STAGE_DIR}/mc_deployment.json /opt/ric/config
+COPY --from=project-build ${STAGE_DIR}/mc_deployment.json /opt/ric/config/config-file.json
 
 COPY container_start.sh /playpen/bin/
-
-RUN apt-get update && \
-    apt-get install -y curl python python-pip libboost-all-dev libhiredis-dev \
- redis-tools && \
-    apt-get clean
+COPY package/*.py package/*.sh /playpen/bin/
 
 RUN ldconfig
 RUN pip install protobuf
 
-ENV XAPP_DESCRIPTOR_PATH /opt/ric/config/mc_deployment.json
+ENV XAPP_DESCRIPTOR_PATH /opt/ric/config/
 WORKDIR /playpen
 ENV GSLITE_ROOT /mc/gs-lite