From: sandovalfr Date: Mon, 4 Mar 2019 17:17:58 +0000 (-0500) Subject: small, multi-platform images X-Git-Tag: 1.1.1~12 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=dmaap%2Fbuscontroller.git;a=commitdiff_plain;h=7f7da1e1af9b4a273ce166984ba0113d6355f442 small, multi-platform images Issue-ID: INT-886 Change-Id: I06532dc486641314c4c6e53f509a3d942ca44e52 Signed-off-by: sandovalfr --- diff --git a/README.md b/README.md index e6bf74e..cefbd42 100644 --- a/README.md +++ b/README.md @@ -55,13 +55,12 @@ mvn clean install ### Docker Packaging We can utilize docker to build and register the buscontroller container in a local dev repository. -Note the Dockerfile follows ONAP convention of running app as root. ``` -$ mvn -P docker docker:build +$ mvn -P docker ``` diff --git a/dbc-client/pom.xml b/dbc-client/pom.xml index d35ca48..7d36523 100644 --- a/dbc-client/pom.xml +++ b/dbc-client/pom.xml @@ -95,71 +95,147 @@ - - docker - - false - false - true - - - - - com.spotify - docker-maven-plugin - ${docker.maven.plugin.version} - - alpine:3.8 - ${onap.nexus.dockerregistry.daily}/${docker.image} - ["./bin/dbc-client", "deploy"] - ${onap.nexus.dockerregistry.daily} - false - - ${artifact.version} - latest - - - /opt/app/dbc-client/log - - true - root - + + docker + + false + false + true + + + + - /opt/app/dmaapbc/etc - ${multiproject.basedir}/dbc-client - version.properties + ${basedir}/target/docker-stage + ${basedir}/src/main/resources + + Dockerfile + - - /opt/app/dbc-client/misc - ${multiproject.basedir}/misc - cert-client-init.sh + + ${basedir}/target/docker-stage/opt/app/dbc-client/bin + ${basedir}/misc + + dbc-client + - - /opt/app/dbc-client/bin - ${multiproject.basedir}/dbc-client/misc - dbc-client + + ${basedir}/target/docker-stage/opt/app/dmaapbc/etc + ${basedir} + + version.properties + + + + ${basedir}/target/docker-stage/opt/app/dbc-client/misc + ${multiproject.basedir}/misc + + cert-client-init.sh + - - apk add --no-cache curl - chmod +x /opt/app/dbc-client/misc/cert-client-init.sh - chmod +x /opt/app/dbc-client/bin/* - mkdir /opt/app/dbc-client/logs - - /opt/app/dbc-client - - - - default - - build - push - - - - - - + + + + + maven-resources-plugin + 2.7 + + + copy-jar + package + + copy-resources + + + ${basedir}/target/docker-stage/opt/app/dmaapbc/lib + + + ${multiproject.basedir}/dbc-client/target + + dbc-client.jar + + + + + + + + + + + org.codehaus.groovy.maven + gmaven-plugin + + + validate + + execute + + + + ${project.version} + ${maven.build.timestamp} + + + println 'ver: ' + project.properties['ver']; + if ( project.properties['ver'].endsWith("-SNAPSHOT") ) { + project.properties['dockertag1']=project.properties['ver'] + "-latest"; + project.properties['dockertag2']=project.properties['ver'] + "-" + project.properties['timestamp']; + } else { + project.properties['dockertag1']=project.properties['ver'] + "-STAGING-latest"; + project.properties['dockertag2']=project.properties['ver'] + "-STAGING-" + project.properties['timestamp']; + } + println 'docker tag 1: ' + project.properties['dockertag1']; + println 'docker tag 2: ' + project.properties['dockertag2']; + + + + + + + + io.fabric8 + docker-maven-plugin + 0.28.0 + + ${docker.verbose} + ${docker.apiVersion} + ${docker.pull.registry} + + + ${onap.nexus.dockerregistry.daily}/${docker.image} + + try + ${basedir}/target/docker-stage + Dockerfile + + ${dockertag1} + ${dockertag2} + + + + + + + + generate-images + install + + build + + + + push-images + deploy + + push + + + + + + @@ -192,6 +268,10 @@ /content/sites/site/org/onap/dmaap/dbc-client/${artifact.version} + + ${maven.build.timestamp} + yyyyMMdd'T'HHmmss'Z' + Packaging Platform (DMaaP) HTTP Client for Bus Controller Provisioning. diff --git a/dbc-client/src/.DS_Store b/dbc-client/src/.DS_Store new file mode 100644 index 0000000..15a0943 Binary files /dev/null and b/dbc-client/src/.DS_Store differ diff --git a/dbc-client/src/main/.DS_Store b/dbc-client/src/main/.DS_Store new file mode 100644 index 0000000..580b81f Binary files /dev/null and b/dbc-client/src/main/.DS_Store differ diff --git a/dbc-client/src/main/resources/Dockerfile b/dbc-client/src/main/resources/Dockerfile new file mode 100644 index 0000000..1e49e42 --- /dev/null +++ b/dbc-client/src/main/resources/Dockerfile @@ -0,0 +1,37 @@ +######### +# ============LICENSE_START==================================================== +# org.onap.dmaap +# =========================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# Modifications Copyright (C) 2018 Nokia. 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==================================================== +# +FROM alpine:3.8 + +MAINTAINER DMAAP Team + +COPY /opt /opt + +WORKDIR /opt/app/dbc-client + +#RUN apk add --no-cache curl + +RUN chmod +x /opt/app/dbc-client/misc/cert-client-init.sh && \ + chmod +x /opt/app/dbc-client/bin/* && \ + mkdir /opt/app/dbc-client/logs + +VOLUME /opt/app/dbc-client/log + +ENTRYPOINT ["sh", "./bin/dbc-client", "deploy"] diff --git a/dmaap-bc/misc/dmaapbc b/dmaap-bc/misc/dmaapbc index f1e8ae7..76317d8 100644 --- a/dmaap-bc/misc/dmaapbc +++ b/dmaap-bc/misc/dmaapbc @@ -52,13 +52,15 @@ config() { echo "Expected app root directory $APP_ROOT does not exist" exit 1 fi + + cd $APP_ROOT if [ ! -f $CONTAINER_CONFIG ] then echo "WARNING: Expected env file $CONTAINER_CONFIG not found. Default behaviors in effect" find $CONTAINER_ROOT -type f + else + source $CONTAINER_CONFIG fi - cd $APP_ROOT - source $CONTAINER_CONFIG if [ "$DMAAPBC_WAIT_TO_EXIT" != "Y" ] then diff --git a/dmaap-bc/pom.xml b/dmaap-bc/pom.xml index f7f2bc1..e4b64ed 100644 --- a/dmaap-bc/pom.xml +++ b/dmaap-bc/pom.xml @@ -168,95 +168,165 @@ - - docker - - false - false - true - - - - - com.spotify - docker-maven-plugin - ${docker.maven.plugin.version} - - java:openjdk-8-jre - ${onap.nexus.dockerregistry.daily}/${docker.image} - ["./bin/dmaapbc", "deploy"] - ${onap.nexus.dockerregistry.daily} - false - - ${artifact.version} - latest - - - /opt/app/dmaapbc/log - - true - root - + + docker + + false + false + true + + + + - /opt/app/dmaapbc/lib - ${multiproject.basedir}/dmaap-bc/target - dmaap-bc.jar + ${basedir}/target/docker-stage + ${basedir}/src/main/resources + + Dockerfile + - - /opt/app/dmaapbc/etc - ${multiproject.basedir}/dmaap-bc/misc - LocalKey - logback.xml - org.onap.dmaap-bc.trust.jks - dbc-api.jks + + ${basedir}/target/docker-stage/opt/app/dmaapbc/etc + ${basedir}/misc + + LocalKey + logback.xml + org.onap.dmaap-bc.trust.jks + dbc-api.jks + - - /opt/app/dmaapbc/etc - ${multiproject.basedir}/dmaap-bc - version.properties + + ${basedir}/target/docker-stage/opt/app/dmaapbc/etc + ${basedir} + + version.properties + - - /opt/app/dmaapbc/misc - ${multiproject.basedir}/dmaap-bc/misc - opensource.env - *.tmpl + + ${basedir}/target/docker-stage/opt/app/dmaapbc/misc + ${basedir}/misc + + opensource.env + *.tmpl + - - /opt/app/dmaapbc/misc - ${multiproject.basedir}/misc - cert-client-init.sh + + ${basedir}/target/docker-stage/opt/app/dmaapbc/misc + ${multiproject.basedir}/misc + + cert-client-init.sh + - - /opt/app/dmaapbc/bin - ${multiproject.basedir}/dmaap-bc/misc - dmaapbc - doaction + + ${basedir}/target/docker-stage/opt/app/dmaapbc/bin + ${basedir}/misc + + dmaapbc + doaction + - - mv /opt/app/dmaapbc/etc/dbc-api.jks /opt/app/dmaapbc/etc/keystore - chmod 600 /opt/app/dmaapbc/etc/keystore - chmod 600 /opt/app/dmaapbc/etc/org.onap.dmaap-bc.trust.jks - chmod +x /opt/app/dmaapbc/misc/cert-client-init.sh - chmod +x /opt/app/dmaapbc/bin/* - mkdir /opt/app/dmaapbc/logs - mkdir /opt/app/dmaapbc/www - mkdir /opt/app/dmaapbc/www/doc - - /opt/app/dmaapbc - - - - default - - build - push - - - - - - + + + + maven-resources-plugin + 2.7 + + + copy-jar + package + + copy-resources + + + ${basedir}/target/docker-stage/opt/app/dmaapbc/lib + + + ${multiproject.basedir}/dmaap-bc/target + + dmaap-bc.jar + + + + + + + + + + + org.codehaus.groovy.maven + gmaven-plugin + + + validate + + execute + + + + ${project.version} + ${maven.build.timestamp} + + + println 'ver: ' + project.properties['ver']; + if ( project.properties['ver'].endsWith("-SNAPSHOT") ) { + project.properties['dockertag1']=project.properties['ver'] + "-latest"; + project.properties['dockertag2']=project.properties['ver'] + "-" + project.properties['timestamp']; + } else { + project.properties['dockertag1']=project.properties['ver'] + "-STAGING-latest"; + project.properties['dockertag2']=project.properties['ver'] + "-STAGING-" + project.properties['timestamp']; + } + println 'docker tag 1: ' + project.properties['dockertag1']; + println 'docker tag 2: ' + project.properties['dockertag2']; + + + + + + + + io.fabric8 + docker-maven-plugin + 0.28.0 + + ${docker.verbose} + ${docker.apiVersion} + ${docker.pull.registry} + + + ${onap.nexus.dockerregistry.daily}/${docker.image} + + try + ${basedir}/target/docker-stage + Dockerfile + + ${dockertag1} + ${dockertag2} + + + + + + + + generate-images + install + + build + + + + push-images + deploy + + push + + + + + + @@ -401,6 +471,9 @@ https://nexus.onap.org 10.12.5.45:5000 + ${maven.build.timestamp} + yyyyMMdd'T'HHmmss'Z' + /content/sites/site/org/onap/dmaap/dmaap-bc/${artifact.version} diff --git a/dmaap-bc/src/main/resources/Dockerfile b/dmaap-bc/src/main/resources/Dockerfile new file mode 100644 index 0000000..16820e1 --- /dev/null +++ b/dmaap-bc/src/main/resources/Dockerfile @@ -0,0 +1,41 @@ +######### +# ============LICENSE_START==================================================== +# org.onap.dmaap +# =========================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# Modifications Copyright (C) 2018 Nokia. 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==================================================== +# +FROM openjdk:8-jre-alpine + +MAINTAINER DMAAP Team + +COPY /opt /opt + +WORKDIR /opt/app/dmaapbc + +RUN mv etc/dbc-api.jks etc/keystore && \ + chmod 600 etc/keystore && \ + chmod 600 etc/org.onap.dmaap-bc.trust.jks && \ + chmod +x misc/cert-client-init.sh && \ + chmod +x bin/* && \ + mkdir logs && \ + mkdir www && \ + mkdir doc && \ + mkdir config + +VOLUME /opt/app/dmaapbc/log + +ENTRYPOINT ["sh", "./bin/dmaapbc", "deploy"] diff --git a/pom.xml b/pom.xml index 2ddedca..e90cfec 100644 --- a/pom.xml +++ b/pom.xml @@ -40,27 +40,18 @@ true - - - - - com.spotify - docker-maven-plugin - ${docker.maven.plugin.version} - - ${skip.docker.build} - - - - - + + + + com.spotify + docker-maven-plugin + ${docker.maven.plugin.version} + + ${skip.docker.build} + + + + dmaap-bc