summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsandovalfr <frank.sandoval@oamtechnologies.com>2019-03-14 17:27:43 -0600
committersandovalfr <frank.sandoval@oamtechnologies.com>2019-03-15 10:18:50 -0600
commit93f11cfd5154e754ffe5a766bfa153ba7adc13c0 (patch)
tree093fb43845ef02d7878a9a221dc65a7027e454aa
parentbf4593cc3c4f3c433b2021af917123b93d9feb0e (diff)
small multi-platform image
Issue-ID: INT-912 Issue-ID: INT-933 Change-Id: I42dc6a337c335990cb889e8bd33d84b0cc93c809 Signed-off-by: sandovalfr <frank.sandoval@oamtechnologies.com>
-rw-r--r--pom.xml173
-rw-r--r--src/main/docker/Dockerfile90
2 files changed, 141 insertions, 122 deletions
diff --git a/pom.xml b/pom.xml
index 5de715c..85ac299 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,6 +39,16 @@
</developers>
<build>
+ <!-- Copy files to docker-stage to be included in image -->
+ <resources>
+ <resource>
+ <targetPath>${basedir}/target/docker-stage</targetPath>
+ <directory>${basedir}/src/main/docker</directory>
+ <includes>
+ <include>*</include>
+ </includes>
+ </resource>
+ </resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -183,97 +193,32 @@
</execution>
</executions>
</plugin>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>1.0.0</version>
- <configuration>
- <imageName>onap/dmaap/kafka01101</imageName>
- <dockerDirectory>src/main/docker</dockerDirectory>
- <serverId>docker-hub</serverId>
- <imageTags>
- <imageTag>${dockertag1}</imageTag>
- <imageTag>${dockertag2}</imageTag>
- </imageTags>
- <resources>
- <!-- <resource> <targetPath>/</targetPath> <directory>${dockerLocation}</directory>
- <include>${project.build.finalName}.jar</include> </resource> -->
- <resource>
- <targetPath>/</targetPath>
- <directory>${project.build.directory}</directory>
- <include>**/**</include>
- </resource>
- <resource>
- <targetPath>/</targetPath>
- <directory>${project.build.directory}</directory>
- <include>dmaapMMAgent.jar</include>
- </resource>
- </resources>
- </configuration>
- <executions>
- <execution>
- <id>build-image</id>
- <phase>install</phase>
- <goals>
- <goal>build</goal>
- </goals>
- <configuration>
- <skipDockerBuild>${skip.docker.build}</skipDockerBuild>
- </configuration>
- </execution>
-
- <execution>
- <id>tag-image-project-version</id>
- <phase>install</phase>
- <goals>
- <goal>tag</goal>
- </goals>
- <configuration>
- <image>onap/dmaap/kafka01101</image>
- <newName>${docker.push.registry}/onap/dmaap/kafka01101:${dockertag2}</newName>
- <skipDockerTag>${skip.docker.push}</skipDockerTag>
- </configuration>
- </execution>
-
- <execution>
- <id>tag-image-latest</id>
- <phase>install</phase>
- <goals>
- <goal>tag</goal>
- </goals>
- <configuration>
- <image>onap/dmaap/kafka01101</image>
- <newName>${docker.push.registry}/onap/dmaap/kafka01101:${dockertag1}</newName>
- <skipDockerTag>${skip.docker.push}</skipDockerTag>
- </configuration>
- </execution>
-
- <execution>
- <id>push-image</id>
- <phase>deploy</phase>
- <goals>
- <goal>push</goal>
- </goals>
- <configuration>
- <imageName>${docker.push.registry}/onap/dmaap/kafka01101:${dockertag2}</imageName>
- <skipDockerPush>${skip.docker.push}</skipDockerPush>
- </configuration>
- </execution>
-
- <execution>
- <id>push-image-latest</id>
- <phase>deploy</phase>
- <goals>
- <goal>push</goal>
- </goals>
- <configuration>
- <imageName>${docker.push.registry}/onap/dmaap/kafka01101:${dockertag1}</imageName>
- <skipDockerPush>${skip.docker.push}</skipDockerPush>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
+ <!-- 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>install</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/target</directory>
+ <includes>
+ <include>dmaapMMAgent.jar</include>
+ <include>kafka11aaf-jar-with-dependencies.jar</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
@@ -411,8 +356,50 @@
</execution>
</executions>
</plugin>
- </plugins>
- </build>
+ <!-- build docker image -->
+ <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>
+ <pushRegistry>${docker.push.registry}</pushRegistry>
+ <images>
+ <image>
+ <name>onap/dmaap/kafka01101</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>
diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile
index b7f303d..dd01792 100644
--- a/src/main/docker/Dockerfile
+++ b/src/main/docker/Dockerfile
@@ -1,41 +1,73 @@
-FROM anapsix/alpine-java
+#########
+# ============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-alpine
+
+MAINTAINER DMAAP Team
ARG kafka_version=0.11.0.1
ARG scala_version=2.12
+VOLUME ["/kafka"]
-RUN apk add --update unzip wget curl docker jq coreutils
+ENV KAFKA_VERSION $kafka_version
+ENV SCALA_VERSION $scala_version
+ENV KAFKA_HOME /opt/kafka
+ENV PATH ${PATH}:${KAFKA_HOME}/bin
-ENV KAFKA_VERSION=$kafka_version SCALA_VERSION=$scala_version
-ADD download-kafka.sh /tmp/download-kafka.sh
-ADD kafka_server_jaas.conf /tmp/kafka_server_jaas.conf
-ADD truststoreONAPall.jks /tmp/truststoreONAPall.jks
-ADD org.onap.dmaap.mr.p12 /tmp/org.onap.dmaap.mr.p12
-ADD keyfilenew /tmp/keyfilenew
-ADD cadi.properties /tmp/cadi.properties
-ADD mmagent.config /opt/etc/mmagent.config
-ADD consumer.properties /opt/etc/consumer.properties
-ADD producer.properties /opt/etc/producer.properties
-ADD kafka11aaf-jar-with-dependencies.jar /tmp/kafka11aaf-jar-with-dependencies.jar
-ADD dmaapMMAgent.jar /tmp/dmaapMMAgent.jar
-ADD kafka-run-class.sh /tmp/kafka-run-class.sh
+COPY broker-list.sh \
+ create-topics.sh \
+ start-kafka.sh \
+ start-kafkaOrMirrorMaker.sh \
+ start-mirrormaker.sh \
+ /usr/bin/
-RUN chmod a+x /tmp/download-kafka.sh && sync && /tmp/download-kafka.sh && tar xfz /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz -C /opt && rm /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz && ln -s /opt/kafka_${SCALA_VERSION}-${KAFKA_VERSION} /opt/kafka
+COPY mmagent.config \
+ consumer.properties \
+ producer.properties \
+ /opt/etc/
-VOLUME ["/kafka"]
+COPY cadi.properties \
+ download-kafka.sh \
+ kafka_server_jaas.conf \
+ kafka-run-class.sh \
+ keyfilenew \
+ org.onap.dmaap.mr.p12 \
+ truststoreONAPall.jks \
+ kafka11aaf-jar-with-dependencies.jar \
+ dmaapMMAgent.jar \
+ /tmp/
-ENV KAFKA_HOME /opt/kafka
-ENV PATH ${PATH}:${KAFKA_HOME}/bin
-ADD start-kafka.sh /usr/bin/start-kafka.sh
-ADD broker-list.sh /usr/bin/broker-list.sh
-ADD create-topics.sh /usr/bin/create-topics.sh
-ADD start-kafkaOrMirrorMaker.sh /usr/bin/start-kafkaOrMirrorMaker.sh
-ADD start-mirrormaker.sh /usr/bin/start-mirrormaker.sh
-# The scripts need to have executable permission
-RUN chmod a+x /usr/bin/start-kafka.sh && \
+RUN apk add --update bash unzip wget curl docker jq coreutils && \
+ chmod a+x /usr/bin/start-kafka.sh && \
chmod a+x /usr/bin/broker-list.sh && \
chmod a+x /usr/bin/start-kafkaOrMirrorMaker.sh && \
chmod a+x /usr/bin/start-mirrormaker.sh && \
- chmod a+x /usr/bin/create-topics.sh
-# Use "exec" form so that it runs as PID 1 (useful for graceful shutdown)
-CMD ["start-kafkaOrMirrorMaker.sh"]
+ chmod a+x /usr/bin/create-topics.sh && \
+ chmod a+x /tmp/download-kafka.sh && \
+ sync && \
+ /tmp/download-kafka.sh && \
+ tar xfz /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz -C /opt && \
+ rm /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz && \
+ ln -s /opt/kafka_${SCALA_VERSION}-${KAFKA_VERSION} /opt/kafka
+
+
+WORKDIR /usr/bin
+CMD ["start-kafkaOrMirrorMaker.sh"] \ No newline at end of file