From 566a0d2c4e917fd03b0126b5cc610539f3db3cb1 Mon Sep 17 00:00:00 2001 From: Michael Hwang Date: Mon, 11 Nov 2019 14:31:28 -0500 Subject: Add genprocessor project Signed-off-by: Michael Hwang Issue-ID: DCAEGEN2-1860 Change-Id: Ie22a30ed8c72327ff0a28afa64ae53d8d6458a0c --- mod/genprocessor/docker/README.md | 51 +++++++++++++++++++++++++++++++++ mod/genprocessor/docker/http/Dockerfile | 6 ++++ mod/genprocessor/docker/http/nginx.conf | 22 ++++++++++++++ mod/genprocessor/docker/http/start.sh | 24 ++++++++++++++++ mod/genprocessor/docker/job/Dockerfile | 15 ++++++++++ 5 files changed, 118 insertions(+) create mode 100644 mod/genprocessor/docker/README.md create mode 100644 mod/genprocessor/docker/http/Dockerfile create mode 100644 mod/genprocessor/docker/http/nginx.conf create mode 100755 mod/genprocessor/docker/http/start.sh create mode 100644 mod/genprocessor/docker/job/Dockerfile (limited to 'mod/genprocessor/docker') diff --git a/mod/genprocessor/docker/README.md b/mod/genprocessor/docker/README.md new file mode 100644 index 0000000..47bdc14 --- /dev/null +++ b/mod/genprocessor/docker/README.md @@ -0,0 +1,51 @@ +# Genprocessor: Docker + +`http` - http server that serves up the DCAE Nifi jars as files under the path `/nifi-jars` +`job` - background job that continuously polls the onboarding API for components and generates jars from components + +The usage here will assume the use of a docker volume to persist data. + +Create a volume: + +``` +docker volume create genprocessor +``` + +## job + +Build: + +``` +$ cd ../ +$ docker build -t genprocessor-job -f docker/job/Dockerfile . +``` + +Run: + +``` +docker run -v genprocessor:/work -e GENPROC_ONBOARDING_API_HOST=http://some-hostname/onboarding -d genprocessor-job +``` + +NOTE: Above onboarding API is to the one running in iLab. + +Run as part of the stack: + +``` +docker run -v genprocessor:/work --link onboarding-api:onboarding-api -d genprocessor-job +``` + +## http + +Build: + +``` +$ cd http +$ docker build -t genprocessor-http . +``` + +Run: + +``` +$ docker run -p 8080:80 -d -v genprocessor:/www/data:ro genprocessor-http +``` + diff --git a/mod/genprocessor/docker/http/Dockerfile b/mod/genprocessor/docker/http/Dockerfile new file mode 100644 index 0000000..0cafbf4 --- /dev/null +++ b/mod/genprocessor/docker/http/Dockerfile @@ -0,0 +1,6 @@ +FROM nginx:latest + +COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY start.sh /code/start.sh + +CMD /code/start.sh diff --git a/mod/genprocessor/docker/http/nginx.conf b/mod/genprocessor/docker/http/nginx.conf new file mode 100644 index 0000000..bd53c07 --- /dev/null +++ b/mod/genprocessor/docker/http/nginx.conf @@ -0,0 +1,22 @@ +server { + listen 80; + server_name localhost; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + } + + # redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + + location /nifi-jars { + root /www/data; + autoindex on; + autoindex_format json; + } +} diff --git a/mod/genprocessor/docker/http/start.sh b/mod/genprocessor/docker/http/start.sh new file mode 100755 index 0000000..45ff3e9 --- /dev/null +++ b/mod/genprocessor/docker/http/start.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# ============LICENSE_START======================================================= +# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= + +if [ -d "/www/data/nifi-jars" ]; then + nginx -g "daemon off;" +else + echo "\"/www/data/nifi-jars\" directory missing" + echo "You must perform a volume mount to this directory in the container" + exit 1 +fi diff --git a/mod/genprocessor/docker/job/Dockerfile b/mod/genprocessor/docker/job/Dockerfile new file mode 100644 index 0000000..b70a06c --- /dev/null +++ b/mod/genprocessor/docker/job/Dockerfile @@ -0,0 +1,15 @@ +FROM maven:3-jdk-8 + +COPY . /code +WORKDIR /code +RUN mvn package dependency:copy-dependencies +ENV GENPROC_WORKING_DIR=/work +ENV GENPROC_ONBOARDING_API_HOST=http://onboarding-api/onboarding +ENV GENPROC_PROCESSOR_CLASSFILE_PATH=/code/target/classes/sandbox/DCAEProcessor.class +ENV GENPROC_SLEEP_SEC=10 + +ENV _RUN_COMMAND="java -cp \"target/genprocessor-1.0.1.jar:target/dependency/*\" sandbox.App gen" +RUN printf "#!/bin/bash\nwhile true\ndo\n\t$_RUN_COMMAND\n\tsleep $GENPROC_SLEEP_SEC\ndone" > /code/run.sh \ + & chmod +x /code/run.sh + +CMD /code/run.sh -- cgit 1.2.3-korg