diff options
author | sandovalfr <frank.sandoval@oamtechnologies.com> | 2019-03-04 12:17:58 -0500 |
---|---|---|
committer | sandovalfr <frank.sandoval@oamtechnologies.com> | 2019-03-05 11:53:25 -0500 |
commit | 7f7da1e1af9b4a273ce166984ba0113d6355f442 (patch) | |
tree | aec0b33d7ac5e876e4adea0572eb5762db7fc915 /dbc-client | |
parent | 80f10c41049ea22e914d4a17652abc1d3b502006 (diff) |
small, multi-platform images
Issue-ID: INT-886
Change-Id: I06532dc486641314c4c6e53f509a3d942ca44e52
Signed-off-by: sandovalfr <frank.sandoval@oamtechnologies.com>
Diffstat (limited to 'dbc-client')
-rw-r--r-- | dbc-client/pom.xml | 200 | ||||
-rw-r--r-- | dbc-client/src/.DS_Store | bin | 0 -> 8196 bytes | |||
-rw-r--r-- | dbc-client/src/main/.DS_Store | bin | 0 -> 6148 bytes | |||
-rw-r--r-- | dbc-client/src/main/resources/Dockerfile | 37 |
4 files changed, 177 insertions, 60 deletions
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 @@ </pluginManagement> </build> <profiles> - <profile> - <id>docker</id> - <properties> - <skipDockerBuild>false</skipDockerBuild> - <skipDockerTag>false</skipDockerTag> - <skipTests>true</skipTests> - </properties> - <build> - <plugins> - <plugin> - <groupId>com.spotify</groupId> - <artifactId>docker-maven-plugin</artifactId> - <version>${docker.maven.plugin.version}</version> - <configuration> - <baseImage>alpine:3.8</baseImage> - <imageName>${onap.nexus.dockerregistry.daily}/${docker.image}</imageName> - <entryPoint>["./bin/dbc-client", "deploy"]</entryPoint> - <serverId>${onap.nexus.dockerregistry.daily}</serverId> - <skipDockerBuild>false</skipDockerBuild> - <imageTags> - <imageTag>${artifact.version}</imageTag> - <imageTag>latest</imageTag> - </imageTags> - <volumes> - <volume>/opt/app/dbc-client/log</volume> - </volumes> - <forceTags>true</forceTags> - <user>root</user> - <resources> + <profile> + <id>docker</id> + <properties> + <skipDockerBuild>false</skipDockerBuild> + <skipDockerTag>false</skipDockerTag> + <skipTests>true</skipTests> + </properties> + <build> + <!-- Copy files to docker-stage to be included in image --> + <resources> <resource> - <targetPath>/opt/app/dmaapbc/etc</targetPath> - <directory>${multiproject.basedir}/dbc-client</directory> - <include>version.properties</include> + <targetPath>${basedir}/target/docker-stage</targetPath> + <directory>${basedir}/src/main/resources</directory> + <includes> + <include>Dockerfile</include> + </includes> </resource> - <resource> - <targetPath>/opt/app/dbc-client/misc</targetPath> - <directory>${multiproject.basedir}/misc</directory> - <include>cert-client-init.sh</include> + <resource> + <targetPath>${basedir}/target/docker-stage/opt/app/dbc-client/bin</targetPath> + <directory>${basedir}/misc</directory> + <includes> + <include>dbc-client</include> + </includes> </resource> - <resource> - <targetPath>/opt/app/dbc-client/bin</targetPath> - <directory>${multiproject.basedir}/dbc-client/misc</directory> - <include>dbc-client</include> + <resource> + <targetPath>${basedir}/target/docker-stage/opt/app/dmaapbc/etc</targetPath> + <directory>${basedir}</directory> + <includes> + <include>version.properties</include> + </includes> + </resource> + <resource> + <targetPath>${basedir}/target/docker-stage/opt/app/dbc-client/misc</targetPath> + <directory>${multiproject.basedir}/misc</directory> + <includes> + <include>cert-client-init.sh</include> + </includes> </resource> </resources> - <runs> - <run> apk add --no-cache curl </run> - <run>chmod +x /opt/app/dbc-client/misc/cert-client-init.sh</run> - <run>chmod +x /opt/app/dbc-client/bin/*</run> - <run>mkdir /opt/app/dbc-client/logs</run> - </runs> - <workdir>/opt/app/dbc-client</workdir> - </configuration> - <executions> - <execution> - <id>default</id> - <goals> - <goal>build</goal> - <goal>push</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> + <plugins> + + <!-- Copy jar to docker-stage to be included in image --> + <plugin> + <artifactId>maven-resources-plugin</artifactId> + <version>2.7</version> + <executions> + <execution> + <id>copy-jar</id> + <phase>package</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <outputDirectory>${basedir}/target/docker-stage/opt/app/dmaapbc/lib</outputDirectory> + <resources> + <resource> + <directory>${multiproject.basedir}/dbc-client/target</directory> + <includes> + <include>dbc-client.jar</include> + </includes> + </resource> + </resources> + </configuration> + </execution> + </executions> + </plugin> + + <!-- Setup image tags per https://wiki.onap.org/display/DW/Independent+Versioning+and+Release+Process#IndependentVersioningandReleaseProcess-StandardizedDockerTagging --> + <plugin> + <groupId>org.codehaus.groovy.maven</groupId> + <artifactId>gmaven-plugin</artifactId> + <executions> + <execution> + <phase>validate</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <properties> + <ver>${project.version}</ver> + <timestamp>${maven.build.timestamp}</timestamp> + </properties> + <source> + 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']; + </source> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <version>0.28.0</version> + <configuration> + <verbose>${docker.verbose}</verbose> + <apiVersion>${docker.apiVersion}</apiVersion> + <pullRegistry>${docker.pull.registry}</pullRegistry> + <images> + <image> + <name>${onap.nexus.dockerregistry.daily}/${docker.image}</name> + <build> + <cleanup>try</cleanup> + <dockerFileDir>${basedir}/target/docker-stage</dockerFileDir> + <dockerFile>Dockerfile</dockerFile> + <tags> + <tag>${dockertag1}</tag> + <tag>${dockertag2}</tag> + </tags> + </build> + </image> + </images> + </configuration> + <executions> + <execution> + <id>generate-images</id> + <phase>install</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + <execution> + <id>push-images</id> + <phase>deploy</phase> + <goals> + <goal>push</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> </profile> </profiles> <dependencyManagement> @@ -192,6 +268,10 @@ <!-- for Distribution Management --> <sitePath>/content/sites/site/org/onap/dmaap/dbc-client/${artifact.version}</sitePath> + + <timestamp>${maven.build.timestamp}</timestamp> + <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> + </properties> <description>Packaging Platform (DMaaP) HTTP Client for Bus Controller Provisioning.</description> </project> diff --git a/dbc-client/src/.DS_Store b/dbc-client/src/.DS_Store Binary files differnew file mode 100644 index 0000000..15a0943 --- /dev/null +++ b/dbc-client/src/.DS_Store diff --git a/dbc-client/src/main/.DS_Store b/dbc-client/src/main/.DS_Store Binary files differnew file mode 100644 index 0000000..580b81f --- /dev/null +++ b/dbc-client/src/main/.DS_Store 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"] |