From f4439585e8b2d26dd685b8ca4699d539fee81818 Mon Sep 17 00:00:00 2001 From: "Lott, Christopher (cl778h)" Date: Thu, 19 Mar 2020 15:27:39 -0400 Subject: [PATCH] Upgrade RMR in Alpine base build image Upgrade RMR to version 3.6.1 which includes the SI95 transport library that will eventually replace the third-party NNG transport library. Clients choose which transport to use by selecting a RMR library. Add the RMR development headers. The Python base image now brings Alpine 3.11, adjust tag accordingly. Issue-ID: RIC-49 Signed-off-by: Lott, Christopher (cl778h) Change-Id: I8f9dd4262cfe7d9db6d0bfae92f02ede790e77f8 --- docker/bldr-alpine3/Dockerfile | 50 ++++++++++++++-------------------- docker/bldr-alpine3/container-tag.yaml | 3 +- 2 files changed, 21 insertions(+), 32 deletions(-) diff --git a/docker/bldr-alpine3/Dockerfile b/docker/bldr-alpine3/Dockerfile index 9fe6f98c..38ec73b9 100644 --- a/docker/bldr-alpine3/Dockerfile +++ b/docker/bldr-alpine3/Dockerfile @@ -1,6 +1,6 @@ # O-RAN-SC # -# Copyright (C) 2019 AT&T Intellectual Property and Nokia +# Copyright (C) 2019-2020 AT&T Intellectual Property and Nokia # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,21 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Builder image Alpine 3.9 +# This is an all-things-to-all-ORAN-people build image with: +# alpine v 3.11 # gcc/g++ v 8 -# golang v 1.12 +# golang v 1.13.4 # python 3.7 -# nng library (libnng.so, libnng.so.X.X.X; see below for pinned version) -# Includes RIC libraries as a distribution path because -# PackageCloud does not support Alpine .apk (yet): +# nng library (rmr.h, libnng.so, libnng.so.X.X.X; version pinned by RMR) # mdc log library (libmdclog.so, libmdbclog.so.X.X.X; see below for pinned version) # rmr library (librmr_nng.so, libmdclog.so..X.X.X; see below for pinned version) -# How to get a library file from this Docker base image: -# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:1-a3.9 /usr/local/lib64/libnng.so.X.X.X /usr/local/lib -# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:1-a3.9 /usr/local/lib64/librmr_nng.so.X.X.X /usr/local/lib -# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:1-a3.9 /usr/local/lib/libmdclog.so.X.X.X /usr/local/lib +# # Some packages install to /usr/local/lib, others to /usr/local/lib64 # Alpine by default searches /usr/local/lib but not /usr/local/lib64 +# +# How to get library files from this Docker base image: +# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:TAG /usr/local/lib64/libnng.so.X.X.X /usr/local/lib +# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:TAG /usr/local/lib64/librmr_nng.so.X.X.X /usr/local/lib +# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:TAG /usr/local/lib/libmdclog.so.X.X.X /usr/local/lib FROM python:3.7-alpine RUN apk update && apk add \ @@ -51,19 +52,6 @@ RUN cd /tmp \ && cp /tmp/autoconf-archive/m4/* /usr/share/aclocal \ && rm -rf /tmp/autoconf-archive -# NNG repo is not frequently tagged so it's pinned to a commit hash. -# This commit provides fix to the proxy-reconnect -# bug that we identified: https://github.com/nanomsg/nng/issues/970 -RUN cd /tmp \ - && git clone https://github.com/nanomsg/nng.git \ - && cd nng \ - && git checkout e618abf8f3db2a94269a79c8901a51148d48fcc2 \ - && mkdir build \ - && cd build \ - && cmake -DBUILD_SHARED_LIBS=1 -G Ninja .. \ - && ninja \ - && ninja install - # MCDLOG, version is pinned RUN cd /tmp \ && git clone --branch v0.0.4 https://gerrit.o-ran-sc.org/r/com/log \ @@ -73,11 +61,13 @@ RUN cd /tmp \ && make \ && make install -# RMR, version is pinned -RUN cd /tmp \ - && git clone --branch 1.3.0 https://gerrit.o-ran-sc.org/r/ric-plt/lib/rmr \ +# install a well known working rmr including development header files, +# which uses a submodule to install NNG at a known commit +RUN apk update && apk add autoconf automake build-base cmake libtool ninja pkgconfig git sudo +RUN git clone --branch 3.6.1 https://gerrit.oran-osc.org/r/ric-plt/lib/rmr \ && cd rmr \ - && mkdir build \ - && cd build \ - && cmake .. \ - && make install + && mkdir .build; cd .build \ + && echo "<<>>" \ + && cmake .. -DDEV_PKG=1; make install \ + && echo "<<< installing rmr .so>>>" \ + && cmake .. -DPACK_EXTERNALS=1; make install diff --git a/docker/bldr-alpine3/container-tag.yaml b/docker/bldr-alpine3/container-tag.yaml index d6ac6d8e..75ee09a0 100644 --- a/docker/bldr-alpine3/container-tag.yaml +++ b/docker/bldr-alpine3/container-tag.yaml @@ -1,4 +1,3 @@ # Not feasible to show all the software versions -# here so just use a counter plus the base image --- -tag: 6-a3.9-nng +tag: 7-a3.11-nng-rmr3 -- 2.16.6