Add docker build for cdt 75/36075/4
authorPatrick Brady <pb071s@att.com>
Thu, 15 Mar 2018 21:52:35 +0000 (17:52 -0400)
committerPatrick Brady <pb071s@att.com>
Wed, 21 Mar 2018 15:43:30 +0000 (11:43 -0400)
Adding the scripts and docker file to build a docker
image for cdt, based on httpd image.

Change-Id: I10a99c6776dede642615e3da9654e62f644b3276
Signed-off-by: Patrick Brady <pb071s@att.com>
Issue-ID: APPC-748

cdt/pom.xml [new file with mode: 0644]
cdt/src/main/docker/Dockerfile [new file with mode: 0644]
cdt/src/main/scripts/installZips.sh [new file with mode: 0644]
pom.xml

diff --git a/cdt/pom.xml b/cdt/pom.xml
new file mode 100644 (file)
index 0000000..9b827a0
--- /dev/null
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============LICENSE_START==========================================
+ONAP : APPC
+===================================================================
+Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+===================================================================
+
+Unless otherwise specified, all software contained herein is licensed
+under the Apache License, Version 2.0 (the License);
+you may not use this software 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============================================
+-->
+<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/maven-v4_0_0.xsd">
+
+    <parent>
+        <groupId>org.onap.appc.deployment</groupId>
+        <artifactId>appc-docker-project</artifactId>
+        <version>1.3.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>pom</packaging>
+    <groupId>org.onap.appc.deployment</groupId>
+    <artifactId>installation-cdt</artifactId>
+    <version>1.3.0-SNAPSHOT</version>
+
+    <name>Installation - CDT Docker</name>
+    <description>Creates APPC CDT Docker container</description>
+
+    <properties>
+        <image.name>onap/appc-cdt-image</image.name>
+        <appc.release.version>1.6.0</appc.release.version>
+        <appc.snapshot.version>1.6.0-SNAPSHOT</appc.snapshot.version>
+                <!--This version will be over-ridden by jenkins 
+                    injecting the version.properties variable file during docker build-->
+        <appc.docker.staging.version>1.0.0</appc.docker.staging.version>
+        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format>
+    </properties>
+
+
+    <build>
+        <plugins>
+            
+            <!-- This is to add any extra scripts, sql dump files, properties files APPC may need even after inheriting from the sdnc base image -->
+            <plugin>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>2.6</version>
+                <executions>
+                    <execution>
+                        <id>copy-dockerfile</id>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals><!-- here the phase you need -->
+                        <phase>validate</phase>
+                        <configuration>
+                            <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/main/docker</directory>
+                                    <includes>
+                                        <include>Dockerfile</include>
+                                    </includes>
+                                    <filtering>true</filtering>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+
+                    <!--<execution>
+                        <id>copy-scripts</id>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <phase>validate</phase>
+                        <configuration>
+                            <outputDirectory>${basedir}/target/docker-stage/opt/onap/appc/bin</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/main/scripts</directory>
+                                    <includes>
+                                        <include>*.sh</include>
+                                    </includes>
+                                    <filtering>false</filtering>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution> -->
+                    
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>exec-maven-plugin</artifactId>
+                <groupId>org.codehaus.mojo</groupId>
+                <version>1.5.0</version>
+                <executions>
+                    <execution>
+                        <id>Get features</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <configuration>
+                            <executable>bash</executable>
+                            <environmentVariables>
+                                <APPC_VERSION>${appc.version}</APPC_VERSION>
+                                <APPC_OAM_VERSION>${project.version}</APPC_OAM_VERSION>
+                                <SDNC_OAM_VERSION>${project.version}</SDNC_OAM_VERSION>
+                            </environmentVariables>
+                            <arguments>
+                                <argument>${basedir}/src/main/scripts/installZips.sh</argument>
+                                <argument>${basedir}/target/docker-stage</argument>
+                            </arguments>
+                        </configuration>
+                    </execution>
+
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>docker</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.groovy.maven</groupId>
+                        <artifactId>gmaven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <phase>validate</phase>
+                                <goals>
+                                    <goal>execute</goal>
+                                </goals>
+                                <configuration>
+                                    <properties>
+                                        <ver>${project.version}</ver>
+                                        <timestamp>${maven.build.timestamp}</timestamp>
+                                    </properties>
+                                    <source>
+                                        println project.properties['ver'];
+                                        def versionArray;
+                                        if ( project.properties['ver'] != null ) {
+                                        versionArray = project.properties['ver'].split('\\.');
+                                        }
+                                        if ( project.properties['ver'].endsWith("-SNAPSHOT") ) {
+                                        project.properties['dockertag1']=project.properties['ver'] + "-latest";
+                                        project.properties['dockertag2']="latest";
+                                        project.properties['appc.version']=project.properties['appc.snapshot.version'];
+                                        } else {
+                                        project.properties['dockertag1']=versionArray[0] + '.' + versionArray[1] + "-STAGING-latest";
+                                        project.properties['dockertag2']=project.properties['ver'] + "-STAGING-" + project.properties['timestamp'];
+                                        project.properties['appc.version']=project.properties['appc.release.version'];
+                                        }
+                                        println 'docker tag 1: ' + project.properties['dockertag1'];
+                                        println 'docker tag 2: ' + project.properties['dockertag2'];
+                                    </source>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>io.fabric8</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <version>0.16.5</version>
+                        <inherited>false</inherited>
+                        <configuration>
+                            <images>
+                                <image>
+                                    <name>${image.name}</name>
+                                    <build>
+                                        <cleanup>try</cleanup>
+                                        <dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>
+                                        <dockerFile>${basedir}/target/docker-stage/Dockerfile</dockerFile>
+                                        <tags>
+                                            <tag>${dockertag1}</tag>
+                                            <tag>${dockertag2}</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>
+
+                    <!-- This is to add any extra scripts, sql dump files, properties files 
+                        APPC may need even after inheriting from the sdnc base image -->
+                    <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <version>2.6</version>
+                        <executions>
+                            <execution>
+                                <id>copy-dockerfile</id>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals><!-- here the phase you need -->
+                                <phase>validate</phase>
+                                <configuration>
+                                    <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+                                    <resources>
+                                        <resource>
+                                            <directory>src/main/docker</directory>
+                                            <includes>
+                                                <include>Dockerfile</include>
+                                            </includes>
+                                            <filtering>true</filtering>
+                                        </resource>
+                                    </resources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>exec-maven-plugin</artifactId>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <version>1.5.0</version>
+                        <executions>
+                            <execution>
+                                <id>Get features</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>exec</goal>
+                                </goals>
+                                <configuration>
+                                    <executable>bash</executable>
+                                    <environmentVariables>
+                                        <APPC_VERSION>${appc.version}</APPC_VERSION>
+                                        <APPC_OAM_VERSION>${project.version}</APPC_OAM_VERSION>
+                                        <SDNC_OAM_VERSION>${project.version}</SDNC_OAM_VERSION>
+                                    </environmentVariables>
+                                    <arguments>
+                                        <argument>${basedir}/src/main/scripts/installZips.sh</argument>
+                                        <argument>${basedir}/target/docker-stage</argument>
+                                        <argument>${basedir}/target/docker-stage</argument>
+                                    </arguments>
+                                </configuration>
+                            </execution>
+
+
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+
+        </profile>
+    </profiles>
+    
+    <organization>
+        <name>ONAP</name>
+    </organization>
+    
+</project>
diff --git a/cdt/src/main/docker/Dockerfile b/cdt/src/main/docker/Dockerfile
new file mode 100644 (file)
index 0000000..d0ab6c8
--- /dev/null
@@ -0,0 +1,26 @@
+# ============LICENSE_START==========================================
+# ONAP : APPC
+# ===================================================================
+# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the License);
+# you may not use this software 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============================================
+
+# Base ubuntu with added packages needed for ONAP
+FROM httpd
+MAINTAINER APP-C Team (appc@lists.openecomp.org)
+
+COPY config-design-tool /usr/local/apache2/htdocs/
diff --git a/cdt/src/main/scripts/installZips.sh b/cdt/src/main/scripts/installZips.sh
new file mode 100644 (file)
index 0000000..748241e
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+###
+# ============LICENSE_START=======================================================
+# APPC
+# ================================================================================
+# Copyright (C) 2018 AT&T Intellectual Property. 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=========================================================
+###
+
+if [ -z "$SETTINGS_FILE" -a -z "$GLOBAL_SETTINGS_FILE" -a -s "$HOME"/.m2/settings.xml ]
+then
+  DEFAULT_MAVEN_SETTINGS=${HOME}/.m2/settings.xml
+  SETTINGS_FILE=${SETTINGS_FILE:-${DEFAULT_MAVEN_SETTINGS}}
+  GLOBAL_SETTINGS_FILE=${GLOBAL_SETTINGS_FILE:-${DEFAULT_MAVEN_SETTINGS}}
+fi
+
+APPC_HOME=${APPC_HOME:-/opt/onap/appc}
+SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
+
+targetDir=${1}
+sdnc_targetDir=${1}
+
+
+
+APPC_VERSION=${APPC_VERSION:-0.0.1}
+APPC_OAM_VERSION=${APPC_OAM_VERSION:-0.1.1}
+
+if [ ! -d ${targetDir} ]
+then
+  mkdir -p ${targetDir}
+fi
+
+cwd=$(pwd)
+
+mavenOpts="-s ${SETTINGS_FILE} -gs ${GLOBAL_SETTINGS_FILE}"
+cd /tmp
+
+
+
+echo "Downloading cdt code from nexus"
+mvn -U ${mavenOpts} org.apache.maven.plugins:maven-dependency-plugin:2.9:copy -Dartifact=org.onap.appc.cdt:config-design-tool:${APPC_VERSION}:zip -DoutputDirectory=/tmp
+unzip -d ${targetDir}/config-design-tool /tmp/config-design-tool*.zip
+
+
+cd $cwd
+
diff --git a/pom.xml b/pom.xml
index 030e98b..034717f 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,6 @@ 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.
 
-ECOMP is a trademark and service mark of AT&T Intellectual Property.
 ============LICENSE_END============================================
 -->
 <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/maven-v4_0_0.xsd">
@@ -114,6 +113,7 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property.
     <modules>
         <module>platform-logic</module>
         <module>installation</module>
+        <module>cdt</module>
     </modules>
     <organization>
         <name>ONAP</name>