X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=sidecars%2Flistener%2FDockerfile;h=b9cb9c12e67f91d509f5fe47ccf0cc1c8af63cb1;hb=167fe26eb2c6d3fca6bd0cf93e59ef6309a59585;hp=31c986fe819b0ba909d9f6e8ad621bf1a4dfb2ab;hpb=05bb70aef70472a386bd2c0218fc1fa398d41f22;p=ric-app%2Fmc.git diff --git a/sidecars/listener/Dockerfile b/sidecars/listener/Dockerfile index 31c986f..b9cb9c1 100644 --- a/sidecars/listener/Dockerfile +++ b/sidecars/listener/Dockerfile @@ -41,27 +41,39 @@ # Author: E. Scott Daniels -FROM nexus3.o-ran-sc.org:10004/bldr-ubuntu16-c-go:2-u16.04-nng as buildenv +FROM nexus3.o-ran-sc.org:10004/o-ran-sc/bldr-ubuntu18-c-go:8-u18.04 as buildenv + RUN mkdir /playpen RUN apt-get update && apt-get install -y cmake gcc make git g++ wget WORKDIR /playpen # Install RMr (runtime and dev) from debian package cached on packagecloud.io -ARG RMR_VER=1.10.2 +ARG RMR_VER=4.0.5 -RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb -RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_${RMR_VER}_amd64.deb/download.deb +RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr_${RMR_VER}_amd64.deb/download.deb +RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/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 mkdir /playpen/bin /playpen/src ARG SRC=. -COPY ${SRC}/Makefile ${SRC}/*.h ${SRC}/*.c /playpen/src/ +COPY ${SRC}/*.ksh ${SRC}/Makefile ${SRC}/*.h ${SRC}/*.c /playpen/src/ +COPY ${SRC}/verify_replay.sh ${SRC}/verify.sh /playpen/src/ +# Build all binaries; verify scripts expect them to be in bin, so we must copy too +# ENV LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib ENV C_INCLUDE_PATH=/usr/local/include -RUN cd /playpen/src/; make -B mc_listener sender pipe_reader rdc_replay rdc_extract +RUN cd /playpen/src/; make -B all; ls -al mc_listener; cp mc_listener sender pipe_reader rdc_replay rdc_extract /playpen/bin/ + +# Run unit tests. If they don't pass the build fails here. Tests can be run from src, but expect binaries in bin +# so that they can be run in the final image as well. +# +ENV PATH /playpen/bin:/playpen/src:$PATH +RUN cd /playpen/src/; ./run_unit_test.ksh +RUN /playpen/src/verify.sh; /playpen/src/verify_replay.sh + # ----- final, smaller image ---------------------------------- FROM ubuntu:18.04 @@ -70,13 +82,17 @@ FROM ubuntu:18.04 RUN apt-get update; apt-get install -y ksh RUN rm -fr /var/lib/apt/lists +# must have rmr runtime to get health check etc +COPY --from=buildenv /playpen/rmr_*.deb /tmp/ +RUN dpkg -i /tmp/rmr_*_amd64.deb + # obtusely this uses the previous value ARG SRC RUN mkdir -p /playpen/bin COPY --from=buildenv /usr/local/lib/* /usr/local/lib/ COPY --from=buildenv /playpen/src/mc_listener /playpen/src/sender /playpen/src/pipe_reader /playpen/src/rdc_replay /playpen/src/rdc_extract /playpen/bin/ -COPY ${SRC}/verify_replay.sh ${SRC}/verify.sh ${SRC}run_replay.sh ${SRC}/help /playpen/bin/ +COPY ${SRC}/verify_replay.sh ${SRC}/verify.sh ${SRC}/run_replay.sh ${SRC}/help /playpen/bin/ ENV PATH=/playpen/bin:$PATH ENV LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib