aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorConor Ward <conor.ward@est.tech>2019-03-21 17:35:28 +0000
committerGerrit Code Review <gerrit@onap.org>2019-03-21 17:35:28 +0000
commit0312e2224f81619699151718622b44db699bcce8 (patch)
tree745b36f9c77f742594f9722a6c610df91550d1ac
parent0df559b37da83b4730140f63f0743fae082d4983 (diff)
parentefad46124485f1572765fad05284d8a070fb9277 (diff)
Merge "small, multi-platform docker images"
-rw-r--r--README.md40
-rw-r--r--datarouter-docker-compose/pom.xml2
-rwxr-xr-xdatarouter-node/pom.xml159
-rw-r--r--datarouter-node/src/main/resources/docker/Dockerfile34
-rwxr-xr-xdatarouter-prov/pom.xml136
-rw-r--r--datarouter-prov/src/main/resources/docker/Dockerfile33
-rwxr-xr-xdatarouter-subscriber/pom.xml121
-rw-r--r--datarouter-subscriber/src/main/resources/docker/Dockerfile31
-rwxr-xr-xpom.xml13
9 files changed, 435 insertions, 134 deletions
diff --git a/README.md b/README.md
index 97b35af8..56d29bb4 100644
--- a/README.md
+++ b/README.md
@@ -144,4 +144,44 @@ MariaDB - 10.2.14
Self Signed SSL certificates
+## This section describes how to build and test datarouter containers on a host such as
+a laptop or remote server.
+
+- Install git, maven, docker
+ - See https://wiki.onap.org/display/DW/Setting+Up+Your+Development+Environment
+ - See https://docs.docker.com/install/
+
+### Build
+- in terminal
+> git clone https://gerrit.onap.org/r/dmaap/datarouter
+> cd datarouter
+> mvn clean install -DskipTests -Pdocker
+> docker images
+REPOSITORY TAG IMAGE ID CREATED SIZE
+nexus3.onap.org:10003/onap/dmaap/datarouter-subscriber 2.0.0-SNAPSHOT 0dfc99a7612c 13 seconds ago 99.2MB
+nexus3.onap.org:10003/onap/dmaap/datarouter-subscriber latest 0dfc99a7612c 13 seconds ago 99.2MB
+nexus3.onap.org:10003/onap/dmaap/datarouter-node 2.0.0-SNAPSHOT 6573f4bdc310 27 seconds ago 116MB
+nexus3.onap.org:10003/onap/dmaap/datarouter-node latest 6573f4bdc310 27 seconds ago 116MB
+nexus3.onap.org:10003/onap/dmaap/datarouter-prov 2.0.0-SNAPSHOT 9e4148737c18 47 seconds ago 148MB
+nexus3.onap.org:10003/onap/dmaap/datarouter-prov latest 9e4148737c18 47 seconds ago 148MB
+openjdk 8-jre-alpine 1b46cc2ba839 3 weeks ago 85MB
+nexus3.onap.org:10001/openjdk 8-jre-alpine 1b46cc2ba839 3 weeks ago 85MB
+
+### Test
+> cd datarouter-docker-compose/src/main/resources
+- edit docker-compose, change nexus 0001 (remote pull repo) to 0003 (local build)
+> docker-compose up
+
+- terminal 2
+> docker container ls -a
+CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+c193317ec860 nexus3.onap.org:10003/onap/dmaap/datarouter-node "sh startup.sh" About a minute ago Up About a minute 0.0.0.0:9090->8080/tcp, 0.0.0.0:9443->8443/tcp datarouter-node
+e8dab741550e nexus3.onap.org:10003/onap/dmaap/datarouter-prov "sh startup.sh" About a minute ago Up About a minute (healthy) 0.0.0.0:8080->8080/tcp, 0.0.0.0:8443->8443/tcp, 0.0.0.0:443->8443/tcp datarouter-prov
+cf0e996f0f31 nexus3.onap.org:10003/onap/dmaap/datarouter-subscriber "sh startup.sh" About a minute ago Up About a minute 8080/tcp, 0.0.0.0:7070->7070/tcp, 8443/tcp subscriber-node
+73affb6364f9 mariadb:10.2.14 "docker-entrypoint.s…" About a minute ago Up About a minute (healthy) 0.0.0.0:3306->3306/tcp mariadb
+
+> docker exec -it datarouter-node /bin/sh
+ # curl http://dmaap-dr-prov:8080/internal/prov
+> docker exec -it datarouter-prov /bin/sh
+ # curl -v -X POST -H "Content-Type : application/vnd.dmaap-dr.feed" -H "X-DMAAP-DR-ON-BEHALF-OF: rs873m" --data-ascii @/opt/app/datartr/addFeed3.txt --post301 --location-trusted -k https://dmaap-dr-prov:8443
diff --git a/datarouter-docker-compose/pom.xml b/datarouter-docker-compose/pom.xml
index 21da42f4..73e8c7e6 100644
--- a/datarouter-docker-compose/pom.xml
+++ b/datarouter-docker-compose/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.onap.dmaap.datarouter</groupId>
<artifactId>parent</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.0.2-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>datarouter-docker-compose</artifactId>
diff --git a/datarouter-node/pom.xml b/datarouter-node/pom.xml
index f722c790..3e75e88c 100755
--- a/datarouter-node/pom.xml
+++ b/datarouter-node/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.onap.dmaap.datarouter</groupId>
<artifactId>parent</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.0.2-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>datarouter-node</artifactId>
@@ -38,6 +38,10 @@
<sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>
<sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>
<docker.location>${basedir}/target/${artifactId}</docker.location>
+
+ <timestamp>${maven.build.timestamp}</timestamp>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
+
<datarouter.node.image.name>onap/dmaap/datarouter-node</datarouter.node.image.name>
</properties>
<dependencies>
@@ -226,40 +230,78 @@
</properties>
<build>
<plugins>
+
+ <!-- Setup image tags per https://wiki.onap.org/display/DW/Independent+Versioning+and+Release+Process#IndependentVersioningandReleaseProcess-StandardizedDockerTagging -->
<plugin>
- <groupId>com.spotify</groupId>
+ <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>${docker.maven.plugin.version}</version>
+ <version>0.28.0</version>
<configuration>
- <imageName>${onap.nexus.dockerregistry.daily}/${datarouter.node.image.name}</imageName>
- <baseImage>java:8</baseImage>
- <serverId>${onap.nexus.dockerregistry.daily}</serverId>
- <skipDockerBuild>false</skipDockerBuild>
- <imageTags>
- <imageTag>${project.version}</imageTag>
- <imageTag>latest</imageTag>
- </imageTags>
- <forceTags>true</forceTags>
- <entryPoint>["/startup.sh", "start"]</entryPoint>
- <resources>
- <resource>
- <targetPath>/opt</targetPath>
- <directory>${project.build.directory}/opt</directory>
- </resource>
- <resource>
- <targetPath>/</targetPath>
- <directory>${docker.location}</directory>
- <include>startup.sh</include>
- </resource>
- </resources>
- <runs>
- <run>chmod 0700 /startup.sh</run>
- </runs>
- <exposes>
- <expose>8080</expose>
- <expose>8443</expose>
- </exposes>
+ <verbose>${docker.verbose}</verbose>
+ <apiVersion>${docker.apiVersion}</apiVersion>
+ <pullRegistry>${docker.pull.registry}</pullRegistry>
+ <pushRegistry>${docker.push.registry}</pushRegistry>
+ <images>
+ <image>
+ <name>${datarouter.node.image.name}</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>
@@ -308,7 +350,7 @@
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
- <outputDirectory>${basedir}/target/opt/app/datartr/lib</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/lib</outputDirectory>
<archive>
<manifest>
<addClasspath>true</addClasspath>
@@ -335,12 +377,12 @@
<executions>
<execution>
<id>copy-docker-file</id>
- <phase>package</phase>
+ <phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${docker.location}</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
<overwrite>true</overwrite>
<resources>
<resource>
@@ -354,13 +396,33 @@
</configuration>
</execution>
<execution>
- <id>copy-resources</id>
+ <id>copy-startup-script</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt</outputDirectory>
+ <overwrite>true</overwrite>
+ <resources>
+ <resource>
+ <directory>${basedir}/src/main/resources/docker</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>startup.sh</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-resources-2</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${basedir}/target/opt/app/datartr/etc</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/etc</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
@@ -373,13 +435,32 @@
</configuration>
</execution>
<execution>
- <id>copy-resources-1</id>
+ <id>copy-resources-3</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/data</directory>
+ <includes>
+ <include>misc/**</include>
+ <include>**/**</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-resources-4</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${basedir}/target/opt/app/datartr/aaf_certs</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/aaf_certs</outputDirectory>
<resources>
<resource>
<directory>${basedir}/aaf_certs</directory>
@@ -405,7 +486,7 @@
<goal>copy-dependencies</goal>
</goals>
<configuration>
- <outputDirectory>${project.build.directory}/opt/app/datartr/lib</outputDirectory>
+ <outputDirectory>${project.build.directory}/docker-stage/opt/app/datartr/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
diff --git a/datarouter-node/src/main/resources/docker/Dockerfile b/datarouter-node/src/main/resources/docker/Dockerfile
new file mode 100644
index 00000000..39007732
--- /dev/null
+++ b/datarouter-node/src/main/resources/docker/Dockerfile
@@ -0,0 +1,34 @@
+#########
+# ============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
+
+# curl used for healthcheck
+CMD apt update && apt add curl
+
+EXPOSE 8080 8443
+
+WORKDIR /opt
+RUN chmod 0700 startup.sh
+ENTRYPOINT ["sh", "startup.sh"]
diff --git a/datarouter-prov/pom.xml b/datarouter-prov/pom.xml
index cfa41441..44f70f5f 100755
--- a/datarouter-prov/pom.xml
+++ b/datarouter-prov/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.onap.dmaap.datarouter</groupId>
<artifactId>parent</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.0.2-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>datarouter-prov</artifactId>
@@ -41,6 +41,12 @@
<docker.location>${basedir}/target/${artifactId}</docker.location>
<datarouter.prov.image.name>onap/dmaap/datarouter-prov</datarouter.prov.image.name>
+
+ <timestamp>${maven.build.timestamp}</timestamp>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
+
+ <docker.verbose>true</docker.verbose>
+ <docker.apiVersion>1.23</docker.apiVersion>
</properties>
<dependencies>
<dependency>
@@ -264,40 +270,78 @@
</properties>
<build>
<plugins>
+
+ <!-- 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>com.spotify</groupId>
+ <groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
- <version>1.0.0</version>
+ <version>0.28.0</version>
<configuration>
- <imageName>${onap.nexus.dockerregistry.daily}/${datarouter.prov.image.name}</imageName>
- <baseImage>java:8</baseImage>
- <serverId>${onap.nexus.dockerregistry.daily}</serverId>
- <skipDockerBuild>false</skipDockerBuild>
- <imageTags>
- <imageTag>${project.version}</imageTag>
- <imageTag>latest</imageTag>
- </imageTags>
- <forceTags>true</forceTags>
- <entryPoint>["/startup.sh", "start"]</entryPoint>
- <resources>
- <resource>
- <targetPath>/opt</targetPath>
- <directory>${project.build.directory}/opt</directory>
- </resource>
- <resource>
- <targetPath>/</targetPath>
- <directory>${docker.location}</directory>
- <include>startup.sh</include>
- </resource>
- </resources>
- <runs>
- <run>chmod 0700 /startup.sh</run>
- </runs>
- <exposes>
- <expose>8080</expose>
- <expose>8443</expose>
- </exposes>
+ <verbose>${docker.verbose}</verbose>
+ <apiVersion>${docker.apiVersion}</apiVersion>
+ <pullRegistry>${docker.pull.registry}</pullRegistry>
+ <pushRegistry>${docker.push.registry}</pushRegistry>
+ <images>
+ <image>
+ <name>${datarouter.prov.image.name}</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>
@@ -350,7 +394,7 @@
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
- <outputDirectory>${basedir}/target/opt/app/datartr/lib</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/lib</outputDirectory>
<archive>
<manifest>
<addClasspath>true</addClasspath>
@@ -379,43 +423,47 @@
</configuration>
<version>3.6.0</version>
</plugin>
+
+ <!-- Copy files to docker-stage to be included in image -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
- <id>copy-docker-file</id>
- <phase>package</phase>
+ <id>copy-dockerfile</id>
+ <phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${docker.location}</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
<overwrite>true</overwrite>
<resources>
<resource>
<directory>${basedir}/src/main/resources/docker</directory>
<filtering>true</filtering>
<includes>
- <include>**/*</include>
+ <include>Dockerfile</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<execution>
- <id>copy-resources-1</id>
+ <id>copy-startup-script</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${basedir}/target/opt/app/datartr/lib</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt</outputDirectory>
+ <overwrite>true</overwrite>
<resources>
<resource>
- <directory>${project.basedir}/src/main/resources</directory>
+ <directory>${basedir}/src/main/resources/docker</directory>
+ <filtering>true</filtering>
<includes>
- <include>**/*.jar</include>
+ <include>startup.sh</include>
</includes>
</resource>
</resources>
@@ -428,7 +476,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${basedir}/target/opt/app/datartr/etc</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/etc</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
@@ -447,7 +495,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${basedir}/target/opt/app/datartr</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr</outputDirectory>
<resources>
<resource>
<directory>${basedir}/data</directory>
@@ -466,7 +514,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${basedir}/target/opt/app/datartr/aaf_certs</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/aaf_certs</outputDirectory>
<resources>
<resource>
<directory>${basedir}/aaf_certs</directory>
@@ -492,7 +540,7 @@
<goal>copy-dependencies</goal>
</goals>
<configuration>
- <outputDirectory>${project.build.directory}/opt/app/datartr/lib</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/aaf_certs</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
diff --git a/datarouter-prov/src/main/resources/docker/Dockerfile b/datarouter-prov/src/main/resources/docker/Dockerfile
new file mode 100644
index 00000000..b11925a0
--- /dev/null
+++ b/datarouter-prov/src/main/resources/docker/Dockerfile
@@ -0,0 +1,33 @@
+#########
+# ============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
+
+RUN apk update && apk add curl
+
+EXPOSE 8080 8443
+
+WORKDIR /opt
+RUN chmod 0700 startup.sh
+ENTRYPOINT ["sh", "startup.sh"]
diff --git a/datarouter-subscriber/pom.xml b/datarouter-subscriber/pom.xml
index d89bcb9a..1f58c42c 100755
--- a/datarouter-subscriber/pom.xml
+++ b/datarouter-subscriber/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.onap.dmaap.datarouter</groupId>
<artifactId>parent</artifactId>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.0.2-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>datarouter-subscriber</artifactId>
@@ -40,6 +40,9 @@
<docker.location>${basedir}/target/${artifactId}</docker.location>
<datarouter.prov.image.name>onap/dmaap/datarouter-subscriber</datarouter.prov.image.name>
+
+ <timestamp>${maven.build.timestamp}</timestamp>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
</properties>
<dependencies>
<dependency>
@@ -163,40 +166,78 @@
</properties>
<build>
<plugins>
+
+ <!-- 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>com.spotify</groupId>
+ <groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
- <version>${docker.maven.plugin.version}</version>
+ <version>0.28.0</version>
<configuration>
- <imageName>${onap.nexus.dockerregistry.daily}/${datarouter.prov.image.name}</imageName>
- <baseImage>java:8</baseImage>
- <serverId>${onap.nexus.dockerregistry.daily}</serverId>
- <skipDockerBuild>false</skipDockerBuild>
- <imageTags>
- <imageTag>${project.version}</imageTag>
- <imageTag>latest</imageTag>
- </imageTags>
- <forceTags>true</forceTags>
- <entryPoint>["/startup.sh", "start"]</entryPoint>
- <resources>
- <resource>
- <targetPath>/opt</targetPath>
- <directory>${project.build.directory}/opt</directory>
- </resource>
- <resource>
- <targetPath>/</targetPath>
- <directory>${docker.location}</directory>
- <include>startup.sh</include>
- </resource>
- </resources>
- <runs>
- <run>chmod 0700 /startup.sh</run>
- </runs>
- <exposes>
- <expose>8080</expose>
- <expose>8443</expose>
- </exposes>
+ <verbose>${docker.verbose}</verbose>
+ <apiVersion>${docker.apiVersion}</apiVersion>
+ <pullRegistry>${docker.pull.registry}</pullRegistry>
+ <pushRegistry>${docker.push.registry}</pushRegistry>
+ <images>
+ <image>
+ <name>${datarouter.prov.image.name}</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>
@@ -242,7 +283,7 @@
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
- <outputDirectory>${basedir}/target/opt/app/subscriber/lib</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/subscriber/lib</outputDirectory>
<archive>
<manifest>
<addClasspath>true</addClasspath>
@@ -277,12 +318,12 @@
<executions>
<execution>
<id>copy-docker-file</id>
- <phase>package</phase>
+ <phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${docker.location}</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
<overwrite>true</overwrite>
<resources>
<resource>
@@ -296,18 +337,20 @@
</configuration>
</execution>
<execution>
- <id>copy-resources-1</id>
+ <id>copy-startup-script</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${basedir}/target/opt/app/subscriber/lib</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt</outputDirectory>
+ <overwrite>true</overwrite>
<resources>
<resource>
- <directory>${project.basedir}/src/main/resources</directory>
+ <directory>${basedir}/src/main/resources/docker</directory>
+ <filtering>true</filtering>
<includes>
- <include>**/*.jar</include>
+ <include>startup.sh</include>
</includes>
</resource>
</resources>
@@ -320,7 +363,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
- <outputDirectory>${basedir}/target/opt/app/subscriber/etc</outputDirectory>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/subscriber/etc</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
diff --git a/datarouter-subscriber/src/main/resources/docker/Dockerfile b/datarouter-subscriber/src/main/resources/docker/Dockerfile
new file mode 100644
index 00000000..fe6d2fc3
--- /dev/null
+++ b/datarouter-subscriber/src/main/resources/docker/Dockerfile
@@ -0,0 +1,31 @@
+#########
+# ============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
+
+EXPOSE 8080 8443
+
+WORKDIR /opt
+RUN chmod 0700 startup.sh
+ENTRYPOINT ["sh", "startup.sh"]
diff --git a/pom.xml b/pom.xml
index 8ef01610..8f3672ce 100755
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
<groupId>org.onap.dmaap.datarouter</groupId>
<artifactId>parent</artifactId>
<name>dmaap-datarouter</name>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<url>https://github.com/att/DMAAP_DATAROUTER</url>
<parent>
@@ -35,7 +35,7 @@
<version>1.2.3</version>
</parent>
<properties>
- <datarouter.version>2.0.1-SNAPSHOT</datarouter.version>
+ <datarouter.version>2.0.2-SNAPSHOT</datarouter.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
@@ -59,7 +59,6 @@
<releaseNexusPath>/content/repositories/releases/</releaseNexusPath>
<stagingNexusPath>/content/repositories/staging/</stagingNexusPath>
<sitePath>/content/sites/site/org/onap/dmaap/datarouter/${project.artifactId}/${project.version}</sitePath>
- <docker.maven.plugin.version>1.0.0</docker.maven.plugin.version>
<skip.docker.build>true</skip.docker.build>
<skip.docker.tag>true</skip.docker.tag>
<skip.docker.push>true</skip.docker.push>
@@ -74,14 +73,6 @@
<build>
<plugins>
<plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>${docker.maven.plugin.version}</version>
- <configuration>
- <skipDockerBuild>true</skipDockerBuild>
- </configuration>
- </plugin>
- <plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.7</version>