From 01533e60cd85f4b9c99c7d1c50ad0ae259e32f5e Mon Sep 17 00:00:00 2001 From: Tommy Carpenter Date: Mon, 16 Mar 2020 09:29:23 -0400 Subject: [PATCH] Add Dockerized example (no code or version change) Issue-ID: RIC-228 Change-Id: I69239ea7bb55b8e9962c62be1c12430fe2155448 Signed-off-by: Tommy Carpenter --- docs/release-notes.rst | 1 + examples/Dockerfile-Ping | 36 ++++++++++++++++++++++++++++++++++++ examples/Dockerfile-Pong | 36 ++++++++++++++++++++++++++++++++++++ examples/README.md | 9 +++++++++ examples/pong_xapp.py | 2 +- examples/test_route.rt | 4 ++-- 6 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 examples/Dockerfile-Ping create mode 100644 examples/Dockerfile-Pong diff --git a/docs/release-notes.rst b/docs/release-notes.rst index ec7f53d..3fdad34 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -19,6 +19,7 @@ and this project adheres to `Semantic Versioning `__. :: * minor breaking change; switches the default behavior RE threading for RMRXapps. The default is not to return execution, but the caller (in `run`) can choose to loop in a thread. + * Add Dockerized examples [0.3.0] - 3/10/2020 diff --git a/examples/Dockerfile-Ping b/examples/Dockerfile-Ping new file mode 100644 index 0000000..38dd323 --- /dev/null +++ b/examples/Dockerfile-Ping @@ -0,0 +1,36 @@ +# ================================================================================== +# Copyright (c) 2019-2020 Nokia +# Copyright (c) 2018-2020 AT&T Intellectual Property. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ================================================================================== +FROM python:3.7-alpine + +# RMR setup +RUN mkdir -p /opt/route/ +COPY test_route.rt /opt/route/test_route.rt +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 +ENV LD_LIBRARY_PATH /usr/local/lib/:/usr/local/lib64 +ENV RMR_SEED_RT /opt/route/test_route.rt + +# sdl needs gcc +RUN apk update && apk add gcc musl-dev bash + +# Install +RUN pip install ricxappframe==0.4.0 +COPY ping_xapp.py . + +# Run +ENV PYTHONUNBUFFERED 1 +CMD python ping_xapp.py diff --git a/examples/Dockerfile-Pong b/examples/Dockerfile-Pong new file mode 100644 index 0000000..b2fd65d --- /dev/null +++ b/examples/Dockerfile-Pong @@ -0,0 +1,36 @@ +# ================================================================================== +# Copyright (c) 2019-2020 Nokia +# Copyright (c) 2018-2020 AT&T Intellectual Property. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ================================================================================== +FROM python:3.7-alpine + +# RMR setup +RUN mkdir -p /opt/route/ +COPY test_route.rt /opt/route/test_route.rt +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 +ENV LD_LIBRARY_PATH /usr/local/lib/:/usr/local/lib64 +ENV RMR_SEED_RT /opt/route/test_route.rt + +# sdl needs gcc +RUN apk update && apk add gcc musl-dev bash + +# Install +RUN pip install ricxappframe==0.4.0 +COPY pong_xapp.py . + +# Run +ENV PYTHONUNBUFFERED 1 +CMD python pong_xapp.py diff --git a/examples/README.md b/examples/README.md index 1c1a6db..10ed36f 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,5 +1,7 @@ # Python xapp frame +# Running locally + Running the two examples (adjust for your shell notation) pip install --user -e . @@ -7,3 +9,10 @@ Running the two examples (adjust for your shell notation) set -x LD_LIBRARY_PATH /usr/local/lib/:/usr/local/lib64; set -x RMR_SEED_RT test_route.rt; python pong_xapp.py (diff tmux window) set -x LD_LIBRARY_PATH /usr/local/lib/:/usr/local/lib64; set -x RMR_SEED_RT test_route.rt; python ping_xapp.py + +# Running in Docker + + docker build -t ping:latest -f Dockerfile-Ping . + docker build -t pong:latest -f Dockerfile-Pong . + docker run -i --net=host ping:latest + docker run -i --net=host pong:latest diff --git a/examples/pong_xapp.py b/examples/pong_xapp.py index ac72813..e0939f0 100644 --- a/examples/pong_xapp.py +++ b/examples/pong_xapp.py @@ -23,7 +23,7 @@ from ricxappframe.xapp_frame import RMRXapp def post_init(_self): """post init""" - print("ping xapp could do some useful stuff here!") + print("pong xapp could do some useful stuff here!") def sixtyh(self, summary, sbuf): diff --git a/examples/test_route.rt b/examples/test_route.rt index a9d34f3..d360b1d 100644 --- a/examples/test_route.rt +++ b/examples/test_route.rt @@ -1,4 +1,4 @@ newrt|start -rte|6660666|localhost:4562 -rte|60000|localhost:4562 +rte|6660666|127.0.0.1:4562 +rte|60000|127.0.0.1:4562 newrt|end -- 2.16.6