RMR update and I release step 1 of 2
[ric-plt/xapp-frame-py.git] / Dockerfile-Unit-Test
index 4ebb3a7..746090f 100644 (file)
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
 # ==================================================================================
-FROM python:3.7-alpine
+FROM python:3.8-slim as stretch
 
 # sdl uses hiredis which needs gcc
-RUN apk update && apk add gcc musl-dev
+RUN apt-get update && \
+    apt-get install -y \
+        wget gcc musl-dev
 
-# copy rmr .sos from the builder image
-COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3-go:1-rmr1.13.1 /usr/local/lib64/libnng.so /usr/local/lib64/libnng.so
-COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3-go:1-rmr1.13.1 /usr/local/lib64/librmr_nng.so /usr/local/lib64/librmr_nng.so
+ARG rmr_version=4.9.4
+ARG e2ap_version=1.1.0
+
+# download rmr and e2ap libraries from package cloud
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr_${rmr_version}_amd64.deb/download.deb
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/rmr-dev_${rmr_version}_amd64.deb/download.deb
+
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/riclibe2ap_${e2ap_version}_amd64.deb/download.deb
+RUN wget -nv --content-disposition https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/riclibe2ap-dev_${e2ap_version}_amd64.deb/download.deb
+
+RUN dpkg -i rmr_${rmr_version}_amd64.deb
+RUN dpkg -i rmr-dev_${rmr_version}_amd64.deb
+
+RUN dpkg -i riclibe2ap_${e2ap_version}_amd64.deb
+RUN dpkg -i riclibe2ap-dev_${e2ap_version}_amd64.deb
+
+RUN ls /usr/local/lib/
+
+FROM python:3.8-slim
+
+ARG rmr_version=4.9.4
+ARG e2ap_version=1.1.0
+
+COPY --from=stretch /usr/local/lib/librmr_si.so.${rmr_version} /usr/local/lib/librmr_si.so
+COPY --from=stretch /usr/local/lib/libriclibe2ap.so.${e2ap_version} /usr/local/lib/libriclibe2ap.so
 
 # Upgrade pip, install tox
-RUN pip install --upgrade pip && pip install tox
+RUN pip install --upgrade pip && pip install tox && pip install certifi six python_dateutil setuptools urllib3 inotify_simple mdclogpy
 
 # copies
 COPY ricxappframe/ /tmp/ricxappframe
 COPY tests/ /tmp/tests
-COPY setup.py tox.ini LICENSE.txt /tmp/
+COPY setup.py tox.ini LICENSE.txt .coveragerc /tmp/
 WORKDIR /tmp
 
+# following is to get the docker instance and run tests from the bash shell, remove comment in the 
+# the next ENTRYPOINT line and comment out the last RUN line to get the runable docker instance.
+# Bbuild named image and run the instance - if you modify the files those are visible in container
+# docker build  -t xappframe:latest -f Dockerfile-Unit-Test .
+# docker run -ti --name xappframe --rm -v ${PWD}:/tmp -u $(id -u ${USER}):$(id -g ${USER}) --workdir /tmp xappframe:latest
+# then run : tox -e code,flake8,docs,docs-linkcheck
+#ENTRYPOINT ["/bin/bash"]
 # Run the unit tests
 RUN tox -e code,flake8