aboutsummaryrefslogtreecommitdiffstats
path: root/packages/policy-gui-docker/src
diff options
context:
space:
mode:
authordanielhanrahan <daniel.hanrahan@est.tech>2021-08-20 16:55:19 +0100
committerdanielhanrahan <daniel.hanrahan@est.tech>2021-09-01 10:12:50 +0100
commit608e625fdd262d4362a998f290017a7d3a978aaf (patch)
treec1f5ad7efae7f7105721992824c595cef9c9cc85 /packages/policy-gui-docker/src
parentdb784313b8ba29f5d4396c1cc96bb5f3c853677f (diff)
Add docker image generation to maven for policy-gui
Add maven uber-jar artifact for gui-editor-apex Add maven tarball artifact for gui-clamp Create docker image containing nginx and policy GUIs Issue-ID: POLICY-3574 Change-Id: I06e5ed6fb610e0746f376114f628bb9b1a530cab Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Diffstat (limited to 'packages/policy-gui-docker/src')
-rw-r--r--packages/policy-gui-docker/src/main/docker/Dockerfile54
-rw-r--r--packages/policy-gui-docker/src/main/docker/nginx/default.conf.template30
-rw-r--r--packages/policy-gui-docker/src/main/docker/nginx/index.html14
-rw-r--r--packages/policy-gui-docker/src/main/docker/nginx/nginx.conf18
-rw-r--r--packages/policy-gui-docker/src/main/docker/policy-gui.sh36
5 files changed, 152 insertions, 0 deletions
diff --git a/packages/policy-gui-docker/src/main/docker/Dockerfile b/packages/policy-gui-docker/src/main/docker/Dockerfile
new file mode 100644
index 0000000..e58c9ea
--- /dev/null
+++ b/packages/policy-gui-docker/src/main/docker/Dockerfile
@@ -0,0 +1,54 @@
+#-------------------------------------------------------------------------------
+# ============LICENSE_START=======================================================
+# Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#-------------------------------------------------------------------------------
+
+FROM onap/policy-jre-alpine:2.3.0
+
+LABEL maintainer="Policy Team"
+
+ARG POLICY_LOGS=/var/log/onap/policy/gui
+
+ENV POLICY_LOGS=$POLICY_LOGS
+ENV POLICY_HOME=$POLICY_HOME/gui
+ENV CLAMP_REST_URL=http://0.0.0.0
+
+RUN mkdir -p $POLICY_HOME $POLICY_LOGS $POLICY_HOME/bin $POLICY_HOME/lib && \
+ chown -R policy:policy $POLICY_HOME $POLICY_LOGS && \
+ apk update && \
+ apk add --no-cache gettext nginx
+
+WORKDIR $POLICY_HOME
+COPY policy-gui.sh ./bin/
+COPY /maven/gui-editor-apex-uber.jar ./lib/
+COPY /maven/gui-pdp-monitoring-uber.jar ./lib/
+COPY nginx/nginx.conf /etc/nginx/nginx.conf
+COPY nginx/default.conf.template /etc/nginx/templates/default.conf.template
+COPY nginx/index.html /usr/share/nginx/html/
+ADD /maven/gui-clamp.tar.gz /usr/share/nginx/html/
+RUN rm /etc/nginx/conf.d/default.conf && \
+ ln -sf /dev/stdout /var/log/nginx/access.log && \
+ ln -sf /dev/stderr /var/log/nginx/error.log && \
+ touch /var/run/nginx.pid && \
+ chown -R policy:policy . /etc/nginx /usr/share/nginx /var/lib/nginx /var/log/nginx /var/run/nginx.pid && \
+ chmod 755 bin/*.sh
+
+USER policy
+WORKDIR $POLICY_HOME/bin
+ENTRYPOINT [ "./policy-gui.sh" ]
+EXPOSE 8080
diff --git a/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template b/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template
new file mode 100644
index 0000000..a12f34b
--- /dev/null
+++ b/packages/policy-gui-docker/src/main/docker/nginx/default.conf.template
@@ -0,0 +1,30 @@
+server {
+ listen 8080;
+
+ location / {
+ root /usr/share/nginx/html;
+ index index.html index.htm;
+ try_files $uri $uri/ =404;
+ }
+
+ location /clamp/restservices/clds/ {
+ proxy_pass ${CLAMP_REST_URL}/restservices/clds/;
+ }
+
+ location /apex-editor/ {
+ proxy_pass http://localhost:18989/;
+ proxy_set_header Host $host;
+ proxy_set_header If-Modified-Since $http_if_modified_since;
+ }
+
+ location /pdp-monitoring/ {
+ proxy_pass http://localhost:18999/;
+ proxy_set_header Host $host;
+ proxy_set_header If-Modified-Since $http_if_modified_since;
+ }
+
+ location = /50x.html {
+ root /var/lib/nginx/html;
+ }
+ error_page 500 502 503 504 /50x.html;
+}
diff --git a/packages/policy-gui-docker/src/main/docker/nginx/index.html b/packages/policy-gui-docker/src/main/docker/nginx/index.html
new file mode 100644
index 0000000..98742ae
--- /dev/null
+++ b/packages/policy-gui-docker/src/main/docker/nginx/index.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>ONAP Policy GUI</title>
+</head>
+<body>
+ <ul>
+ <li><a href="/apex-editor">Apex Policy Editor</a></li>
+ <li><a href="/pdp-monitoring">PDP Monitoring</a></li>
+ <li><a href="/clamp">CLAMP Designer UI</a></li>
+ </ul>
+</body>
+</html>
diff --git a/packages/policy-gui-docker/src/main/docker/nginx/nginx.conf b/packages/policy-gui-docker/src/main/docker/nginx/nginx.conf
new file mode 100644
index 0000000..aac9bb6
--- /dev/null
+++ b/packages/policy-gui-docker/src/main/docker/nginx/nginx.conf
@@ -0,0 +1,18 @@
+worker_processes 1;
+pid /var/run/nginx.pid;
+error_log /dev/stdout info;
+events {
+}
+http {
+ include /etc/nginx/mime.types;
+ default_type application/octet-stream;
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for"';
+ access_log /var/log/nginx/access.log main;
+ sendfile on;
+ #tcp_nopush on;
+ keepalive_timeout 65;
+ #gzip on;
+ include /etc/nginx/conf.d/*.conf;
+}
diff --git a/packages/policy-gui-docker/src/main/docker/policy-gui.sh b/packages/policy-gui-docker/src/main/docker/policy-gui.sh
new file mode 100644
index 0000000..4d4cbee
--- /dev/null
+++ b/packages/policy-gui-docker/src/main/docker/policy-gui.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env sh
+#
+# ============LICENSE_START=======================================================
+# Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+#
+
+trap 'exit 0' SIGTERM
+
+JAVA_HOME=/usr/lib/jvm/java-11-openjdk/
+
+echo "Starting gui-editor-apex"
+$JAVA_HOME/bin/java -jar "$POLICY_HOME/lib/gui-editor-apex-uber.jar" -p 18989 &
+
+echo "Starting gui-pdp-monitoring"
+$JAVA_HOME/bin/java -jar "$POLICY_HOME/lib/gui-pdp-monitoring-uber.jar" -p 18999 &
+
+echo "Starting nginx"
+envsubst '${CLAMP_REST_URL}' < /etc/nginx/templates/default.conf.template > /etc/nginx/conf.d/default.conf
+nginx -g "daemon on;"
+
+wait