From 608e625fdd262d4362a998f290017a7d3a978aaf Mon Sep 17 00:00:00 2001 From: danielhanrahan Date: Fri, 20 Aug 2021 16:55:19 +0100 Subject: 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 --- packages/policy-gui-docker/pom.xml | 184 +++++++++++++++++++++ .../policy-gui-docker/src/main/docker/Dockerfile | 54 ++++++ .../src/main/docker/nginx/default.conf.template | 30 ++++ .../src/main/docker/nginx/index.html | 14 ++ .../src/main/docker/nginx/nginx.conf | 18 ++ .../src/main/docker/policy-gui.sh | 36 ++++ packages/pom.xml | 51 ++++++ 7 files changed, 387 insertions(+) create mode 100644 packages/policy-gui-docker/pom.xml create mode 100644 packages/policy-gui-docker/src/main/docker/Dockerfile create mode 100644 packages/policy-gui-docker/src/main/docker/nginx/default.conf.template create mode 100644 packages/policy-gui-docker/src/main/docker/nginx/index.html create mode 100644 packages/policy-gui-docker/src/main/docker/nginx/nginx.conf create mode 100644 packages/policy-gui-docker/src/main/docker/policy-gui.sh create mode 100644 packages/pom.xml (limited to 'packages') diff --git a/packages/policy-gui-docker/pom.xml b/packages/policy-gui-docker/pom.xml new file mode 100644 index 0000000..94453ce --- /dev/null +++ b/packages/policy-gui-docker/pom.xml @@ -0,0 +1,184 @@ + + + + + 4.0.0 + + + org.onap.policy.gui + gui-packages + 2.1.0-SNAPSHOT + + + pom + policy-gui-docker + ${project.artifactId} + Policy gui docker image + + + UTF-8 + UTF-8 + ${project.version} + false + false + false + nexus3.onap.org:10001 + nexus3.onap.org:10003 + yyyyMMdd'T'HHmm + + + + ${project.artifactId}-${project.version} + + + org.codehaus.gmaven + groovy-maven-plugin + 2.1.1 + + + validate + + execute + + + https://github.com/onap/policy-docker/raw/master/utils/groovy/docker-tag.groovy + + + + + + + io.fabric8 + docker-maven-plugin + + + true + 1.23 + ${docker.pull.registry} + ${docker.push.registry} + + + + onap/policy-gui + + try + Dockerfile + + ${project.version} + ${project.version}-${maven.build.timestamp} + ${project.docker.latest.minmax.tag.version} + + + + + + + org.onap.policy.gui:gui-clamp:tar.gz:clamp-build:${project.version} + + gui-clamp.tar.gz + + + + org.onap.policy.gui:gui-pdp-monitoring:uber.jar:${project.version} + + gui-pdp-monitoring-uber.jar + + + + org.onap.policy.gui.editors:gui-editor-apex:uber.jar:${project.version} + + gui-editor-apex-uber.jar + + + + + + + + + + + + clean-images + pre-clean + + remove + + + true + + + + + generate-images + generate-sources + + build + + + + + push-images + deploy + + build + push + + + onap/policy-gui + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + + + + org.onap.policy.gui + gui-clamp + ${project.version} + clamp-build + tar.gz + + + org.onap.policy.gui + gui-pdp-monitoring + ${project.version} + uber.jar + + + org.onap.policy.gui.editors + gui-editor-apex + ${project.version} + uber.jar + + + 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 @@ + + + + + ONAP Policy GUI + + + + + 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 diff --git a/packages/pom.xml b/packages/pom.xml new file mode 100644 index 0000000..eb789ce --- /dev/null +++ b/packages/pom.xml @@ -0,0 +1,51 @@ + + + 4.0.0 + + org.onap.policy.gui + policy-gui + 2.1.0-SNAPSHOT + + + gui-packages + pom + + ${project.artifactId} + [${project.parent.artifactId}] packaging + + + + true + + + + + docker + + policy-gui-docker + + + false + + + + + -- cgit 1.2.3-korg