summaryrefslogtreecommitdiffstats
path: root/mod/genprocessor/docker
diff options
context:
space:
mode:
authorMichael Hwang <mhwang@research.att.com>2019-11-11 14:31:28 -0500
committerMichael Hwang <mhwang@research.att.com>2019-11-18 17:06:45 -0500
commit566a0d2c4e917fd03b0126b5cc610539f3db3cb1 (patch)
treee2abec4b0a9ea77c09e7de666c3b115ae55c0845 /mod/genprocessor/docker
parent849da15d5b7ddc68e4c2b90b603fc8948d4b5e6d (diff)
Add genprocessor project
Signed-off-by: Michael Hwang <mhwang@research.att.com> Issue-ID: DCAEGEN2-1860 Change-Id: Ie22a30ed8c72327ff0a28afa64ae53d8d6458a0c
Diffstat (limited to 'mod/genprocessor/docker')
-rw-r--r--mod/genprocessor/docker/README.md51
-rw-r--r--mod/genprocessor/docker/http/Dockerfile6
-rw-r--r--mod/genprocessor/docker/http/nginx.conf22
-rwxr-xr-xmod/genprocessor/docker/http/start.sh24
-rw-r--r--mod/genprocessor/docker/job/Dockerfile15
5 files changed, 118 insertions, 0 deletions
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