diff options
author | 2019-03-14 17:27:43 -0600 | |
---|---|---|
committer | 2019-03-15 10:18:50 -0600 | |
commit | 93f11cfd5154e754ffe5a766bfa153ba7adc13c0 (patch) | |
tree | 093fb43845ef02d7878a9a221dc65a7027e454aa | |
parent | bf4593cc3c4f3c433b2021af917123b93d9feb0e (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.xml | 173 | ||||
-rw-r--r-- | src/main/docker/Dockerfile | 90 |
2 files changed, 141 insertions, 122 deletions
@@ -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 |