From 7f7da1e1af9b4a273ce166984ba0113d6355f442 Mon Sep 17 00:00:00 2001 From: sandovalfr Date: Mon, 4 Mar 2019 12:17:58 -0500 Subject: [PATCH] small, multi-platform images Issue-ID: INT-886 Change-Id: I06532dc486641314c4c6e53f509a3d942ca44e52 Signed-off-by: sandovalfr --- README.md | 3 +- dbc-client/pom.xml | 200 ++++++++++++++++++-------- dbc-client/src/.DS_Store | Bin 0 -> 8196 bytes dbc-client/src/main/.DS_Store | Bin 0 -> 6148 bytes dbc-client/src/main/resources/Dockerfile | 37 +++++ dmaap-bc/misc/dmaapbc | 6 +- dmaap-bc/pom.xml | 235 ++++++++++++++++++++----------- dmaap-bc/src/main/resources/Dockerfile | 41 ++++++ pom.xml | 33 ++--- 9 files changed, 389 insertions(+), 166 deletions(-) create mode 100644 dbc-client/src/.DS_Store create mode 100644 dbc-client/src/main/.DS_Store create mode 100644 dbc-client/src/main/resources/Dockerfile create mode 100644 dmaap-bc/src/main/resources/Dockerfile 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 0000000000000000000000000000000000000000..15a0943e21bc1cd8a9401c8f99c8ec0932765667 GIT binary patch literal 8196 zcmeHMU2GLa6h5avu;T*VBGMKSR|>`23*H8S7OdRfwqR+og#H(3yZ7$WZrr86prOuowY;cQ1n!Xkda}cz;i%Ez|X)(J!&2w5)u|Qi(B%EoVo1C!Kt+r+Ha7 zu4NASEmJoVLA}p$togc@7%+|en6j$Pu|3VSjZA_0;X%{ZoqXKM+PdqHb3pSZ$=9D~ zOsSfh+8m9jjnN&`5p}A$X-7oevAubEnn_g~8(TWZQzuSNotnPyIS~>D+X7T92=V#C z_;fdECFl#e@qExnNxMjCO*Hl-`wl`F4jY=qXw z_ROQEk?GHyx;HtjxkGWu*SWmMuDjLoj7s;*gcqbwIQ9m*!mV_DNX zq0~y!Y-NSAf~oR)rd*H?>lDU*N9Qx?evhomb&_<5>)SF0l|s$xWamX zrBOb2x8{01X~U-Jd31YJSsv#4R$VuANve(ADwf$tp*9v3ErlORH4uTj;2?}Z5^TuB zqwp9!4o|=f@EV+l3-C6403X38@F{!-U&HtCBm4}%!f)_9{DBfOlyMo>;CigZ4H(5{ z+=+K$3&ybvyYU|E!9F~Kqd1NlPGB03p^F}#!qfO5K8%mxQ}`mD!I$wBJdbbUJNPcX zhacnT_>K6&k~z}vFQ6$^@mnei=^8xBm5g4Iu6y?0-S+R$^{eHAqpNOMee;I;EnAyf z;`7V6VC4!)eFWQ%$EWYvPdNa1=*b_9`9P=;#gs^p0 z2$TxzYJUIkDE|I`Rbz(6Ap#)+|1Sivti88APTyQ?SLJtYmGU@cp19qNkiH8Qmpuef md;TAWR9DHA`@{k{BP3}k{o@Y-SNQWcJpaS<-zVcWRQw6})g4&? literal 0 HcmV?d00001 diff --git a/dbc-client/src/main/.DS_Store b/dbc-client/src/main/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..580b81fdb213b0bfa9f73ba0dfc601ab31319b1f GIT binary patch literal 6148 zcmeHKOHRWu5S@V{6|w1(rLWK%SXDSdFMvq+ELypuWbeE5QXGdjA5fxt(G@~yMzY`7 z^RfM;*cl??%{Z)yRz$Q!6J${uBGXONl{?=6S#yl^PCY%-@nvWv`ioPt_gm~5d!|B@ z{U7_MQg%32%e;GCZ~L-8Oit8DvM*gXj2}JG=ZR11+w>YP@H)JmtvFdc)L zf`MS*pE1CTZrg2eD1Teejwf$zLVH9L5x*)51p4eJ00X&4?$v1aBs%=EV>Og4GOyvl O_z_S-q6-Fofq^gms5G7c literal 0 HcmV?d00001 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 -- 2.16.6