diff options
author | Jimmy Forsyth <jf2512@att.com> | 2019-08-28 16:51:59 -0400 |
---|---|---|
committer | Jimmy Forsyth <jf2512@att.com> | 2019-08-28 16:52:01 -0400 |
commit | 69909b49939f441bb9e80268b9781a3328f12dac (patch) | |
tree | a882ca0260383cc7b92b7e7c2dd9c910e6309128 | |
parent | c558fb8f281651281005b1c584409aab1973ea00 (diff) |
Add docker profile for Alpine
Issue-ID: AAI-2579
Signed-off-by: Jimmy Forsyth <jf2512@att.com>
Change-Id: Ic264e6cf05922c2fb0448a47db0f18fb81bace9a
-rw-r--r-- | champ-service/pom.xml | 140 | ||||
-rw-r--r-- | champ-service/src/main/assembly/descriptor.xml | 50 | ||||
-rw-r--r-- | champ-service/src/main/docker/Dockerfile | 21 |
3 files changed, 164 insertions, 47 deletions
diff --git a/champ-service/pom.xml b/champ-service/pom.xml index 4cfa175..03469b4 100644 --- a/champ-service/pom.xml +++ b/champ-service/pom.xml @@ -357,37 +357,115 @@ limitations under the License. </build> <profiles> - <profile> - <id>docker</id> - <build> - <plugins> - <plugin> - <groupId>com.spotify</groupId> - <artifactId>docker-maven-plugin</artifactId> - <version>0.4.11</version> - <configuration> - <verbose>true</verbose> - <serverId>docker-hub</serverId> - <imageName>${docker.push.registry}/onap/${docker.name}</imageName> - <dockerDirectory>${docker.location}</dockerDirectory> - <imageTags> - <imageTag>latest</imageTag> - </imageTags> - <forceTags>true</forceTags> - </configuration> - <executions> - <execution> - <id>default</id> - <phase>package</phase> - <goals> - <goal>build</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> + <profile> + <id>docker</id> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>3.0.0</version> + <executions> + <execution> + <phase>pre-clean</phase> + <id>parse-version</id> + <goals> + <goal>parse-version</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.groovy.maven</groupId> + <artifactId>gmaven-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <phase>pre-clean</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source> + def userAaiBaseImage = session.userProperties['aai.base.image']; + def userAaiCommonVersion = session.userProperties['aai.base.image.version']; + if (userAaiCommonVersion != null) { + project.properties['aai.base.image.version'] = userAaiCommonVersion; + } + if (userAaiBaseImage != null) { + project.properties['aai.base.image'] = userAaiBaseImage; + } + log.info 'Base image flavour: ' + project.properties['aai.base.image']; + log.info 'Base image version: ' + project.properties['aai.base.image.version']; + </source> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <version>${docker.fabric.version}</version> + <configuration> + <verbose>true</verbose> + <apiVersion>1.23</apiVersion> + <images> + <image> + <name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l + </name> + <build> + <filter>@</filter> + <tags> + <tag>latest</tag> + <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest</tag> + <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-${maven.build.timestamp}</tag> + </tags> + <cleanup>try</cleanup> + <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir> + <assembly> + <inline> + <fileSets> + <fileSet> + <directory>${aai.build.directory}</directory> + <outputDirectory>/${project.artifactId}</outputDirectory> + </fileSet> + </fileSets> + </inline> + </assembly> + </build> + </image> + </images> + </configuration> + <executions> + <execution> + <id>clean-images</id> + <phase>pre-clean</phase> + <goals> + <goal>remove</goal> + </goals> + <configuration> + <removeAll>true</removeAll> + </configuration> + </execution> + <execution> + <id>generate-images</id> + <phase>package</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> </project> diff --git a/champ-service/src/main/assembly/descriptor.xml b/champ-service/src/main/assembly/descriptor.xml new file mode 100644 index 0000000..7cb49a3 --- /dev/null +++ b/champ-service/src/main/assembly/descriptor.xml @@ -0,0 +1,50 @@ +<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> + <id>build</id> + <includeBaseDirectory>false</includeBaseDirectory> + <formats> + <format>dir</format> + </formats> + <fileSets> + <fileSet> + <directory>${project.basedir}/src/main/bin</directory> + <outputDirectory>/bin</outputDirectory> + <includes> + <include>**/*</include> + </includes> + </fileSet> + <fileSet> + <directory>${project.basedir}</directory> + <outputDirectory>/</outputDirectory> + <includes> + <include>**/dynamic/**/*</include> + </includes> + </fileSet> + <fileSet> + <directory>${project.basedir}/../champ-service-deps-janus/target/</directory> + <outputDirectory>/</outputDirectory> + <includes> + <include>**/graph-deps/**/*</include> + </includes> + </fileSet> + <fileSet> + <directory>${project.basedir}/../champ-service-deps-titan/target/</directory> + <outputDirectory>/</outputDirectory> + <includes> + <include>**/graph-deps/**/*</include> + </includes> + </fileSet> + <fileSet> + <directory>${project.build.directory}</directory> + <outputDirectory>/</outputDirectory> + <includes> + <include>*.jar</include> + </includes> + <excludes> + <exclude>Dockerfile</exclude> + <exclude>*.sh</exclude> + </excludes> + </fileSet> + </fileSets> +</assembly> diff --git a/champ-service/src/main/docker/Dockerfile b/champ-service/src/main/docker/Dockerfile index 79791d8..df0ef2d 100644 --- a/champ-service/src/main/docker/Dockerfile +++ b/champ-service/src/main/docker/Dockerfile @@ -1,26 +1,15 @@ -FROM ubuntu:14.04 +FROM @aai.docker.namespace@/aai-common-@aai.base.image@:@aai.base.image.version@ ARG MICRO_HOME=/opt/app/champ-service ARG BIN_HOME=$MICRO_HOME/bin ARG GRAPHLIB_HOME=$MICRO_HOME/graph-deps -RUN apt-get update - -# Install and setup java8 -RUN apt-get update && apt-get install -y software-properties-common -RUN sudo -E add-apt-repository ppa:openjdk-r/ppa && apt-get update && apt-get install -y openjdk-8-jdk -ENV JAVA_HOME usr/lib/jvm/java-8-openjdk-amd64 -RUN export JAVA_HOME - # Build up the deployment folder structure RUN mkdir -p $MICRO_HOME -COPY champ-service.jar $MICRO_HOME/ -RUN mkdir -p $GRAPHLIB_HOME -ADD graph-deps $GRAPHLIB_HOME -RUN mkdir -p $BIN_HOME -COPY *.sh $BIN_HOME -RUN chmod 755 $BIN_HOME/* -RUN ln -s /logs $MICRO_HOME/logs +WORKDIR $MICRO_HOME +COPY /maven/champ-service/ . +RUN chmod 755 $BIN_HOME/* \ + && ln -snf /logs $MICRO_HOME/logs EXPOSE 9522 9522 |