aboutsummaryrefslogtreecommitdiffstats
path: root/packages/apex-pdp-docker
diff options
context:
space:
mode:
authormmis <michael.morris@ericsson.com>2018-07-10 10:50:05 +0100
committermmis <michael.morris@ericsson.com>2018-07-10 16:31:01 +0100
commitef24b0561786040752bd46ade5859968d57ea031 (patch)
treee8b9dc58a92a986d285ae44c688e2553f7e1b4b6 /packages/apex-pdp-docker
parentda923d791ae2e3ca67dd9711e7c3f173b500abce (diff)
Create docker image for apex-pdp
Issue-ID: POLICY-866 Change-Id: I6bc322224e087acae1c92a67c48506f061a59d14 Signed-off-by: mmis <michael.morris@ericsson.com>
Diffstat (limited to 'packages/apex-pdp-docker')
-rw-r--r--packages/apex-pdp-docker/README.md3
-rw-r--r--packages/apex-pdp-docker/pom.xml112
-rw-r--r--packages/apex-pdp-docker/src/main/docker/Dockerfile41
3 files changed, 156 insertions, 0 deletions
diff --git a/packages/apex-pdp-docker/README.md b/packages/apex-pdp-docker/README.md
new file mode 100644
index 000000000..9008e00e6
--- /dev/null
+++ b/packages/apex-pdp-docker/README.md
@@ -0,0 +1,3 @@
+To build the onap/policy-apex-pdp docker image:
+1. Build the apex-pdp repository
+2. Run: apex-pdp/docker-verify.sh or apex-pdp/docker-build.sh or apex-pdp/docker-merge.sh as required.
diff --git a/packages/apex-pdp-docker/pom.xml b/packages/apex-pdp-docker/pom.xml
new file mode 100644
index 000000000..314718243
--- /dev/null
+++ b/packages/apex-pdp-docker/pom.xml
@@ -0,0 +1,112 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2018 Ericsson. 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.
+
+ SPDX-License-Identifier: Apache-2.0
+ ============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/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.onap.policy.apex-pdp.packages</groupId>
+ <artifactId>packages</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>apex-pdp-docker</artifactId>
+ <packaging>pom</packaging>
+ <name>Policy APEX PDP - Docker build</name>
+ <description>ONAP Policy APEX PDP Docker Build</description>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-apex-tarball</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/policy-apex-pdp</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.onap.policy.apex-pdp.packages</groupId>
+ <artifactId>apex-pdp-package-full</artifactId>
+ <version>${project.version}</version>
+ <classifier>tarball</classifier>
+ <type>tar.gz</type>
+ <destFileName>apex-pdp-package-full.tar.gz</destFileName>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.2</version>
+ <executions>
+ <execution>
+ <id>copy-resources</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/policy-apex-pdp</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/docker</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.6.0</version>
+ <executions>
+ <execution>
+ <id>get-target-version</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <executable>echo</executable>
+ <workingDirectory>${project.build.directory}</workingDirectory>
+ <arguments>
+ <argument>${project.version}</argument>
+ </arguments>
+ <outputFile>${project.build.directory}/version</outputFile>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+</project>
diff --git a/packages/apex-pdp-docker/src/main/docker/Dockerfile b/packages/apex-pdp-docker/src/main/docker/Dockerfile
new file mode 100644
index 000000000..c16469a84
--- /dev/null
+++ b/packages/apex-pdp-docker/src/main/docker/Dockerfile
@@ -0,0 +1,41 @@
+#
+# Docker file to build an image that runs APEX on Java 8 in Ubuntu
+#
+FROM ubuntu:16.04
+
+RUN apt-get update && \
+ apt-get upgrade -y && \
+ apt-get install -y software-properties-common && \
+ add-apt-repository ppa:openjdk-r/ppa -y && \
+ apt-get update && \
+ apt-get install -y openjdk-8-jdk
+
+# Create apex user and group
+RUN groupadd apexuser
+RUN useradd --create-home -g apexuser apexuser
+
+# Add Apex-specific directories and set ownership as the Apex admin user
+RUN mkdir -p /opt/app/policy/apex-pdp
+RUN mkdir -p /var/log/onap/policy/apex-pdp
+RUN chown -R apexuser:apexuser /var/log/onap/policy/apex-pdp
+
+# Unpack the tarball
+RUN mkdir /packages
+COPY apex-pdp-package-full.tar.gz /packages
+RUN tar xvfz /packages/apex-pdp-package-full.tar.gz --directory /opt/app/policy/apex-pdp
+RUN rm /packages/apex-pdp-package-full.tar.gz
+
+# Ensure everything has the correct permissions
+RUN find /opt/app -type d -perm 755
+RUN find /opt/app -type f -perm 644
+RUN chmod a+x /opt/app/policy/apex-pdp/bin/*
+
+# Copy examples to Apex user area
+RUN cp -pr /opt/app/policy/apex-pdp/examples /home/apexuser
+
+ENV PATH /opt/app/policy/apex-pdp/bin:$PATH
+
+RUN apt-get clean
+
+RUN chown -R apexuser:apexuser /home/apexuser/*
+WORKDIR /home/apexuser