Add a Dockerfile for Docker-making 07/8407/1
authorGuangrong Fu <fu.guangrong@zte.com.cn>
Wed, 23 Aug 2017 09:34:37 +0000 (17:34 +0800)
committerGuangrong Fu <fu.guangrong@zte.com.cn>
Wed, 23 Aug 2017 09:34:37 +0000 (17:34 +0800)
Change the package file from *.zip to *.tar.gz for Linux
Add a Dockerfile

Change-Id: I2cd74c9e06caefa7a17d22279e6d1b7ffcd1d62b
Issue-ID: HOLMES-39
Signed-off-by: Guangrong Fu <fu.guangrong@zte.com.cn>
dmaap-dsa-standalone/linux64-assembly.xml
dmaap-dsa-standalone/pom.xml
dmaap-dsa-standalone/src/main/assembly/Dockerfile [new file with mode: 0644]

index 4bb9c11..56676c8 100644 (file)
@@ -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>
index 2155cdd..e702dd9 100644 (file)
 
 -->
 <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.dsa</groupId>
-    <artifactId>holmes-dsa-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.dsa</groupId>
+        <artifactId>holmes-dsa-parent</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
 
-  <artifactId>dmaap-dsa-standalone</artifactId>
-  <modelVersion>4.0.0</modelVersion>
-  <name>holmes-dsa/holmes-dmaap-dsa-standalone</name>
-  <packaging>pom</packaging>
+    <artifactId>holmes-dmaap-dsa-standalone</artifactId>
+    <modelVersion>4.0.0</modelVersion>
+    <name>holmes-dsa/holmes-dmaap-dsa-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.dsa</groupId>
-                  <artifactId>dmaap-dsa</artifactId>
-                  <type>jar</type>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${linux64outputdir}</outputDirectory>
-                  <destFileName>dmaap-dsa.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.dsa</groupId>
-                  <artifactId>dmaap-dsa</artifactId>
-                  <type>jar</type>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${win64outputdir}</outputDirectory>
-                  <destFileName>dmaap-dsa.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.dsa</groupId>
+                                    <artifactId>dmaap-dsa</artifactId>
+                                    <type>jar</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>${linux64outputdir}</outputDirectory>
+                                    <destFileName>dmaap-dsa.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.dsa</groupId>
+                                    <artifactId>dmaap-dsa</artifactId>
+                                    <type>jar</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>${win64outputdir}</outputDirectory>
+                                    <destFileName>dmaap-dsa.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.dsa</groupId>
-      <artifactId>dmaap-dsa</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/dsa</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.dsa</groupId>
+            <artifactId>dmaap-dsa</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
 </project>
diff --git a/dmaap-dsa-standalone/src/main/assembly/Dockerfile b/dmaap-dsa-standalone/src/main/assembly/Dockerfile
new file mode 100644 (file)
index 0000000..f0325da
--- /dev/null
@@ -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-dsa-standalone-*-linux64.tar.gz /home/holmes/
+
+RUN chmod 755 /home/holmes/bin/*.sh
+
+
+CMD /home/holmes/bin/run.sh
+
+