diff options
author | Guangrong Fu <fu.guangrong@zte.com.cn> | 2017-08-23 17:33:56 +0800 |
---|---|---|
committer | Guangrong Fu <fu.guangrong@zte.com.cn> | 2017-08-23 17:33:56 +0800 |
commit | 0ab31f4e9e13066be37c4d4dc6b5c117a64b9a18 (patch) | |
tree | 80ed97933957ecdd8f690bd9f8afc8b19eddf837 | |
parent | 601799e1017e8731fa44512cf699127c9f494fe8 (diff) |
Add a Dockerfile for Docker-making
Change the package file from *.zip to *.tar.gz for Linux
Add a Dockerfile
Change-Id: I9b8213822961bf0997bc32c8ed667b0ea8b3843e
Issue-ID: HOLMES-39
Signed-off-by: Guangrong Fu <fu.guangrong@zte.com.cn>
-rw-r--r-- | engine-d-standalone/linux64-assembly.xml | 2 | ||||
-rw-r--r-- | engine-d-standalone/pom.xml | 371 | ||||
-rw-r--r-- | engine-d-standalone/src/main/assembly/Dockerfile | 42 |
3 files changed, 263 insertions, 152 deletions
diff --git a/engine-d-standalone/linux64-assembly.xml b/engine-d-standalone/linux64-assembly.xml index 4bb9c11..56676c8 100644 --- a/engine-d-standalone/linux64-assembly.xml +++ b/engine-d-standalone/linux64-assembly.xml @@ -19,7 +19,7 @@ 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>linux64</id> <formats> - <format>zip</format> + <format>tar.gz</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> diff --git a/engine-d-standalone/pom.xml b/engine-d-standalone/pom.xml index bb72317..791dc8f 100644 --- a/engine-d-standalone/pom.xml +++ b/engine-d-standalone/pom.xml @@ -17,158 +17,227 @@ --> <project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <parent> - <groupId>org.onap.holmes.engine-management</groupId> - <artifactId>holmes-engine-parent</artifactId> - <version>1.0.0-SNAPSHOT</version> - </parent> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>org.onap.holmes.engine-management</groupId> + <artifactId>holmes-engine-parent</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> - <artifactId>holmes-engine-d-standalone</artifactId> - <modelVersion>4.0.0</modelVersion> - <name>holmes-engine/holmes-engine-d-standalone</name> - <packaging>pom</packaging> + <artifactId>holmes-engine-d-standalone</artifactId> + <modelVersion>4.0.0</modelVersion> + <name>holmes-engine/holmes-engine-d-standalone</name> + <packaging>pom</packaging> - <build> - <plugins> - <plugin> - <artifactId>maven-resources-plugin</artifactId> - <executions> - <execution> - <id>copy-resources-${linux64id}</id> - <phase>process-resources</phase> - <goals> - <goal>copy-resources</goal> - </goals> - <configuration> - <outputDirectory>${linux64outputdir}</outputDirectory> - <resources> - <resource> - <directory>src/main/assembly/</directory> - <filtering>false</filtering> - <includes> - <include>**/*</include> - </includes> - <excludes> - <exclude>**/*.bat</exclude> - </excludes> - </resource> - </resources> - <overwrite>true</overwrite> - </configuration> - </execution> - <execution> - <id>copy-resources-${win64id}</id> - <phase>process-resources</phase> - <goals> - <goal>copy-resources</goal> - </goals> - <configuration> - <outputDirectory>${win64outputdir}</outputDirectory> - <resources> - <resource> - <directory>src/main/assembly/</directory> - <filtering>false</filtering> - <includes> - <include>**/*</include> - </includes> - <excludes> - <exclude>**/*.sh</exclude> - </excludes> - </resource> - </resources> - <overwrite>true</overwrite> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - <execution> - <id>copy-jar-${linux64id}</id> - <goals> - <goal>copy</goal> - </goals> - <phase>prepare-package</phase> - <configuration> - <artifactItems> - <artifactItem> - <groupId>org.onap.holmes.engine-management</groupId> - <artifactId>holmes-engine-d</artifactId> - <type>jar</type> - <overWrite>true</overWrite> - <outputDirectory>${linux64outputdir}</outputDirectory> - <destFileName>holmes-engine-d.jar</destFileName> - </artifactItem> - </artifactItems> - </configuration> - </execution> - <execution> - <id>copy-jar-${win64id}</id> - <goals> - <goal>copy</goal> - </goals> - <phase>prepare-package</phase> - <configuration> - <artifactItems> - <artifactItem> - <groupId>org.onap.holmes.engine-management</groupId> - <artifactId>holmes-engine-d</artifactId> - <type>jar</type> - <overWrite>true</overWrite> - <outputDirectory>${win64outputdir}</outputDirectory> - <destFileName>holmes-engine-d.jar</destFileName> - </artifactItem> - </artifactItems> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-assembly-plugin</artifactId> - <executions> - <execution> - <id>linux64</id> - <configuration> - <descriptors> - <descriptor>linux64-assembly.xml</descriptor> - </descriptors> - <appendAssemblyId>true</appendAssemblyId> - <outputDirectory>target/version</outputDirectory> - </configuration> - <phase>package</phase> - <goals> - <goal>attached</goal> - </goals> - </execution> - <execution> - <id>win64</id> - <configuration> - <descriptors> - <descriptor>win64-assembly.xml</descriptor> - </descriptors> - <appendAssemblyId>true</appendAssemblyId> - <outputDirectory>target/version</outputDirectory> - </configuration> - <phase>package</phase> - <goals> - <goal>attached</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> + <build> + <plugins> + <plugin> + <artifactId>maven-resources-plugin</artifactId> + <executions> + <execution> + <id>copy-resources-${linux64id}</id> + <phase>process-resources</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <outputDirectory>${linux64outputdir}</outputDirectory> + <resources> + <resource> + <directory>src/main/assembly/</directory> + <filtering>false</filtering> + <includes> + <include>**/*</include> + </includes> + <excludes> + <exclude>**/*.bat</exclude> + </excludes> + </resource> + </resources> + <overwrite>true</overwrite> + </configuration> + </execution> + <execution> + <id>copy-resources-${win64id}</id> + <phase>process-resources</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <outputDirectory>${win64outputdir}</outputDirectory> + <resources> + <resource> + <directory>src/main/assembly/</directory> + <filtering>false</filtering> + <includes> + <include>**/*</include> + </includes> + <excludes> + <exclude>**/*.sh</exclude> + </excludes> + </resource> + </resources> + <overwrite>true</overwrite> + </configuration> + </execution> + <execution> + <id>copy-dockerfile</id> + <phase>process-resources</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <outputDirectory>target/version</outputDirectory> + <resources> + <resource> + <directory>src/main/assembly/</directory> + <filtering>false</filtering> + <includes> + <include>Dockerfile</include> + </includes> + </resource> + </resources> + <overwrite>true</overwrite> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>copy-jar-${linux64id}</id> + <goals> + <goal>copy</goal> + </goals> + <phase>prepare-package</phase> + <configuration> + <artifactItems> + <artifactItem> + <groupId>org.onap.holmes.engine-management</groupId> + <artifactId>holmes-engine-d</artifactId> + <type>jar</type> + <overWrite>true</overWrite> + <outputDirectory>${linux64outputdir}</outputDirectory> + <destFileName>holmes-engine-d.jar</destFileName> + </artifactItem> + </artifactItems> + </configuration> + </execution> + <execution> + <id>copy-jar-${win64id}</id> + <goals> + <goal>copy</goal> + </goals> + <phase>prepare-package</phase> + <configuration> + <artifactItems> + <artifactItem> + <groupId>org.onap.holmes.engine-management</groupId> + <artifactId>holmes-engine-d</artifactId> + <type>jar</type> + <overWrite>true</overWrite> + <outputDirectory>${win64outputdir}</outputDirectory> + <destFileName>holmes-engine-d.jar</destFileName> + </artifactItem> + </artifactItems> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <executions> + <execution> + <id>linux64</id> + <configuration> + <descriptors> + <descriptor>linux64-assembly.xml</descriptor> + </descriptors> + <appendAssemblyId>true</appendAssemblyId> + <outputDirectory>target/version</outputDirectory> + </configuration> + <phase>package</phase> + <goals> + <goal>attached</goal> + </goals> + </execution> + <execution> + <id>win64</id> + <configuration> + <descriptors> + <descriptor>win64-assembly.xml</descriptor> + </descriptors> + <appendAssemblyId>true</appendAssemblyId> + <outputDirectory>target/version</outputDirectory> + </configuration> + <phase>package</phase> + <goals> + <goal>attached</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> - <dependencies> - <dependency> - <groupId>org.onap.holmes.engine-management</groupId> - <artifactId>holmes-engine-d</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> + <profiles> + <profile> + <id>docker</id> + <build> + <plugins> + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <version>0.16.5</version> + <inherited>false</inherited> + <configuration> + <images> + <image> + <name>onap/holmes/engine-management</name> + <build> + <cleanup>try</cleanup> + <dockerFileDir>${basedir}/target/version/</dockerFileDir> + <dockerFile>${basedir}/target/version/Dockerfile</dockerFile> + <tags> + <tag>${project.version}-STAGING-latest</tag> + </tags> + </build> + </image> + </images> + </configuration> + <executions> + <execution> + <id>generate-images</id> + <phase>package</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + + <execution> + <id>push-images</id> + <phase>deploy</phase> + <goals> + <goal>build</goal> + <goal>push</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> + + <dependencies> + <dependency> + <groupId>org.onap.holmes.engine-management</groupId> + <artifactId>holmes-engine-d</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> </project> diff --git a/engine-d-standalone/src/main/assembly/Dockerfile b/engine-d-standalone/src/main/assembly/Dockerfile new file mode 100644 index 0000000..03f09c2 --- /dev/null +++ b/engine-d-standalone/src/main/assembly/Dockerfile @@ -0,0 +1,42 @@ +FROM openresty/openresty:alpine + +MAINTAINER "Guangrong Fu" <fu.guangrong@zte.com.cn> + +#install java-1.8-openjdk + +ENV LANG C.UTF-8 + +# add a simple script that can auto-detect the appropriate JAVA_HOME value +# based on whether the JDK or only the JRE is installed +RUN { \ + echo '#!/bin/sh'; \ + echo 'set -e'; \ + echo; \ + echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \ + } > /usr/local/bin/docker-java-home \ + && chmod +x /usr/local/bin/docker-java-home +ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk +ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin + +ENV JAVA_VERSION 8u131 +ENV JAVA_ALPINE_VERSION 8.131.11-r2 + +RUN set -x \ + && apk add --no-cache \ + openjdk8="$JAVA_ALPINE_VERSION" \ + && [ "$JAVA_HOME" = "$(docker-java-home)" ] + +#add holmes related resources to the docker image + +RUN mkdir /home/holmes + +WORKDIR /home/holmes + +ADD holmes-engine-d-standalone-*-linux64.tar.gz /home/holmes/ + +RUN chmod 755 /home/holmes/bin/*.sh + + +CMD /home/holmes/bin/run.sh + + |