diff options
author | Patrick Brady <pb071s@att.com> | 2018-03-15 17:52:35 -0400 |
---|---|---|
committer | Patrick Brady <pb071s@att.com> | 2018-03-21 11:43:30 -0400 |
commit | f92128c85a0e23a90872eff59bcccca36aad0beb (patch) | |
tree | 50ab059bb05d3574efc83237e9013a0259b9a460 | |
parent | dfd963e8d1e67eeab36b8912aa057f292acc7d63 (diff) |
Add docker build for cdt
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
-rw-r--r-- | cdt/pom.xml | 281 | ||||
-rw-r--r-- | cdt/src/main/docker/Dockerfile | 26 | ||||
-rw-r--r-- | cdt/src/main/scripts/installZips.sh | 59 | ||||
-rw-r--r-- | pom.xml | 2 |
4 files changed, 367 insertions, 1 deletions
diff --git a/cdt/pom.xml b/cdt/pom.xml new file mode 100644 index 0000000..9b827a0 --- /dev/null +++ b/cdt/pom.xml @@ -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 index 0000000..d0ab6c8 --- /dev/null +++ b/cdt/src/main/docker/Dockerfile @@ -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 index 0000000..748241e --- /dev/null +++ b/cdt/src/main/scripts/installZips.sh @@ -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 + @@ -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> |