small multi-platform image 13/82313/2
authorsandovalfr <frank.sandoval@oamtechnologies.com>
Thu, 14 Mar 2019 23:27:43 +0000 (17:27 -0600)
committersandovalfr <frank.sandoval@oamtechnologies.com>
Fri, 15 Mar 2019 16:18:50 +0000 (10:18 -0600)
Issue-ID: INT-912
Issue-ID: INT-933

Change-Id: I42dc6a337c335990cb889e8bd33d84b0cc93c809
Signed-off-by: sandovalfr <frank.sandoval@oamtechnologies.com>
pom.xml
src/main/docker/Dockerfile

diff --git a/pom.xml b/pom.xml
index 5de715c..85ac299 100644 (file)
--- a/pom.xml
+++ b/pom.xml
        </developers>
 
        <build>
        </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>
                <plugins>
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                        </execution>
                                </executions>
                        </plugin>
                                        </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>
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-assembly-plugin</artifactId>
                             </execution>
                         </executions>
                     </plugin>
                             </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>
                </profile>
 
        </profiles>
index b7f303d..dd01792 100644 (file)
@@ -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
 
 
 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/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