summaryrefslogtreecommitdiffstats
path: root/policy-jdk
diff options
context:
space:
mode:
Diffstat (limited to 'policy-jdk')
-rw-r--r--policy-jdk/alpine/README.md3
-rw-r--r--policy-jdk/alpine/pom.xml154
-rw-r--r--policy-jdk/alpine/src/main/docker/Dockerfile54
-rw-r--r--policy-jdk/debian-slim/README.md3
-rw-r--r--policy-jdk/debian-slim/pom.xml154
-rw-r--r--policy-jdk/debian-slim/src/main/docker/Dockerfile48
-rw-r--r--policy-jdk/pom.xml55
7 files changed, 471 insertions, 0 deletions
diff --git a/policy-jdk/alpine/README.md b/policy-jdk/alpine/README.md
new file mode 100644
index 00000000..0798eab7
--- /dev/null
+++ b/policy-jdk/alpine/README.md
@@ -0,0 +1,3 @@
+The common image for Policy project images.
+Contains common set of packages used in most Policy apps containers
+needing maven and a full JDK.
diff --git a/policy-jdk/alpine/pom.xml b/policy-jdk/alpine/pom.xml
new file mode 100644
index 00000000..b5df9e81
--- /dev/null
+++ b/policy-jdk/alpine/pom.xml
@@ -0,0 +1,154 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2019 Ericsson, Tieto. All rights reserved.
+ Modifications Copyright (C) 2020 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.
+
+ 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.docker</groupId>
+ <artifactId>policy-jdk</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </parent>
+
+ <packaging>pom</packaging>
+ <artifactId>policy-jdk-alpine</artifactId>
+ <name>Policy alpine jdk docker image</name>
+ <description>Policy alpine jdk docker image</description>
+
+ <build>
+ <finalName>${project.artifactId}-${project.version}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <phase>pre-clean</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>
+ println 'Project version: ' + project.properties['dist.project.version'];
+ def versionArray;
+ if ( project.properties['dist.project.version'] != null ) {
+ versionArray = project.properties['dist.project.version'].split('-');
+ }
+
+ if ( project.properties['dist.project.version'].endsWith("-SNAPSHOT") ) {
+ project.properties['project.docker.latesttag.version']=versionArray[0] + "-SNAPSHOT-latest";
+ } else {
+ project.properties['project.docker.latesttag.version']=versionArray[0] + "-STAGING-latest";
+ }
+
+ println 'New tag for docker: ' + project.properties['project.docker.latesttag.version'];
+ if ( "aarch64".equals(System.properties['os.arch']) ) {
+ project.properties['project.docker.arch'] = "arm64";
+ } else {
+ project.properties['project.docker.arch'] = System.properties['os.arch'];
+ }
+ println 'Using arch for docker: ' + project.properties['project.docker.arch'];
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+
+ <configuration>
+ <verbose>true</verbose>
+ <apiVersion>1.23</apiVersion>
+ <pullRegistry>${docker.pull.registry}</pullRegistry>
+ <pushRegistry>${docker.push.registry}</pushRegistry>
+ <images>
+ <image>
+ <name>onap/policy-jdk-alpine:latest-${project.docker.arch}</name>
+ <build>
+ <cleanup>try</cleanup>
+ <dockerFile>Dockerfile</dockerFile>
+ <tags>
+ <tag>${project.version}-${project.docker.arch}</tag>
+ <tag>${project.docker.latesttag.version}-${project.docker.arch}</tag>
+ </tags>
+ <args>
+ <BUILD_VERSION>${docker.build.version}</BUILD_VERSION>
+ </args>
+ </build>
+ </image>
+ </images>
+ </configuration>
+
+ <executions>
+ <execution>
+ <id>clean-images</id>
+ <phase>pre-clean</phase>
+ <goals>
+ <goal>remove</goal>
+ </goals>
+ <configuration>
+ <removeAll>true</removeAll>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>generate-images</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>push-images</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>build</goal>
+ <goal>push</goal>
+ </goals>
+ <configuration>
+ <image>onap/policy-jdk-alpine</image>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
+
diff --git a/policy-jdk/alpine/src/main/docker/Dockerfile b/policy-jdk/alpine/src/main/docker/Dockerfile
new file mode 100644
index 00000000..a258a314
--- /dev/null
+++ b/policy-jdk/alpine/src/main/docker/Dockerfile
@@ -0,0 +1,54 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2019 Tieto. All rights reserved.
+# Modifications Copyright (C) 2020 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Docker file to build a base image for all policy components images
+#
+# $JAVA_HOME is set to /usr/lib/jvm/java-11-openjdk
+# more details at https://hub.docker.com/_/openjdk
+
+FROM alpine:latest
+
+LABEL maintainer="Policy Team"
+
+ENV POLICY_HOME=/opt/app/policy
+
+RUN apk update \
+ && apk add --no-cache \
+ bash \
+ busybox-extras \
+ coreutils \
+ curl \
+ findutils \
+ grep \
+ httpie \
+ jq \
+ maven \
+ nss \
+ openjdk11 \
+ openssh \
+ procps \
+ py-pip \
+ python \
+ unzip \
+ wget \
+ zip \
+ && addgroup -S policy \
+ && adduser -S --shell /bin/bash -G policy policy \
+ && mkdir -p ${POLICY_HOME}/etc/ssl \
+ && chown -R policy:policy ${POLICY_HOME}
diff --git a/policy-jdk/debian-slim/README.md b/policy-jdk/debian-slim/README.md
new file mode 100644
index 00000000..0798eab7
--- /dev/null
+++ b/policy-jdk/debian-slim/README.md
@@ -0,0 +1,3 @@
+The common image for Policy project images.
+Contains common set of packages used in most Policy apps containers
+needing maven and a full JDK.
diff --git a/policy-jdk/debian-slim/pom.xml b/policy-jdk/debian-slim/pom.xml
new file mode 100644
index 00000000..2b231498
--- /dev/null
+++ b/policy-jdk/debian-slim/pom.xml
@@ -0,0 +1,154 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2019 Ericsson, Tieto. All rights reserved.
+ Modifications Copyright (C) 2020 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.
+
+ 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.docker</groupId>
+ <artifactId>policy-jdk</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </parent>
+
+ <packaging>pom</packaging>
+ <artifactId>policy-jdk-debian</artifactId>
+ <name>Policy debian-slim jdk docker image</name>
+ <description>Policy debian-slim jdk docker image</description>
+
+ <build>
+ <finalName>${project.artifactId}-${project.version}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <phase>pre-clean</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>
+ println 'Project version: ' + project.properties['dist.project.version'];
+ def versionArray;
+ if ( project.properties['dist.project.version'] != null ) {
+ versionArray = project.properties['dist.project.version'].split('-');
+ }
+
+ if ( project.properties['dist.project.version'].endsWith("-SNAPSHOT") ) {
+ project.properties['project.docker.latesttag.version']=versionArray[0] + "-SNAPSHOT-latest";
+ } else {
+ project.properties['project.docker.latesttag.version']=versionArray[0] + "-STAGING-latest";
+ }
+
+ println 'New tag for docker: ' + project.properties['project.docker.latesttag.version'];
+ if ( "aarch64".equals(System.properties['os.arch']) ) {
+ project.properties['project.docker.arch'] = "arm64";
+ } else {
+ project.properties['project.docker.arch'] = System.properties['os.arch'];
+ }
+ println 'Using arch for docker: ' + project.properties['project.docker.arch'];
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+
+ <configuration>
+ <verbose>true</verbose>
+ <apiVersion>1.23</apiVersion>
+ <pullRegistry>${docker.pull.registry}</pullRegistry>
+ <pushRegistry>${docker.push.registry}</pushRegistry>
+ <images>
+ <image>
+ <name>onap/policy-jdk-debian:latest-${project.docker.arch}</name>
+ <build>
+ <cleanup>try</cleanup>
+ <dockerFile>Dockerfile</dockerFile>
+ <tags>
+ <tag>${project.version}-${project.docker.arch}</tag>
+ <tag>${project.docker.latesttag.version}-${project.docker.arch}</tag>
+ </tags>
+ <args>
+ <BUILD_VERSION>${docker.build.version}</BUILD_VERSION>
+ </args>
+ </build>
+ </image>
+ </images>
+ </configuration>
+
+ <executions>
+ <execution>
+ <id>clean-images</id>
+ <phase>pre-clean</phase>
+ <goals>
+ <goal>remove</goal>
+ </goals>
+ <configuration>
+ <removeAll>true</removeAll>
+ </configuration>
+ </execution>
+
+ <execution>
+ <id>generate-images</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>push-images</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>build</goal>
+ <goal>push</goal>
+ </goals>
+ <configuration>
+ <image>onap/policy-jdk-debian</image>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
+
diff --git a/policy-jdk/debian-slim/src/main/docker/Dockerfile b/policy-jdk/debian-slim/src/main/docker/Dockerfile
new file mode 100644
index 00000000..55b47d1b
--- /dev/null
+++ b/policy-jdk/debian-slim/src/main/docker/Dockerfile
@@ -0,0 +1,48 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2020 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Docker file to build a base image for all policy components images
+#
+
+FROM maven:3.6-jdk-11
+
+LABEL maintainer="Policy Team"
+
+ARG MAVEN_VERSION=3.6.3
+ARG SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+ARG BASE_URL="https://www.apache.org/dyn/mirrors/mirrors.cgi?cca2=us&preferred=http://apache.claz.org/&action=download&filename=maven/maven-3/${MAVEN_VERSION}/binaries"
+
+ENV POLICY_HOME=/opt/app/policy
+
+RUN apt-get -y update \
+ && apt-get -y install \
+ curl \
+ httpie \
+ jq \
+ less \
+ python \
+ python-pip \
+ ssh \
+ unzip \
+ wget \
+ zip \
+ && mkdir /usr/lib/jvm \
+ && ln -s /usr/local/openjdk-11 /usr/lib/jvm/java-11-openjdk \
+ && adduser --shell /bin/bash --disabled-password policy \
+ && mkdir -p ${POLICY_HOME}/etc/ssl \
+ && chown -R policy:policy ${POLICY_HOME}
diff --git a/policy-jdk/pom.xml b/policy-jdk/pom.xml
new file mode 100644
index 00000000..f0959453
--- /dev/null
+++ b/policy-jdk/pom.xml
@@ -0,0 +1,55 @@
+<!--
+ ============LICENSE_START=======================================================
+ Copyright (C) 2019 Ericsson, Tieto. All rights reserved.
+ Modifications Copyright (C) 2020 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.
+
+ 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.docker</groupId>
+ <artifactId>docker</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>policy-jdk</artifactId>
+ <packaging>pom</packaging>
+ <name>Policy Common Docker images</name>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <dist.project.version>${project.version}</dist.project.version>
+ <docker.skip>false</docker.skip>
+ <docker.skip.build>false</docker.skip.build>
+ <docker.skip.push>false</docker.skip.push>
+ <docker.pull.registry>docker.io</docker.pull.registry>
+ <docker.push.registry>docker.io</docker.push.registry>
+ <docker.build.version>${project.version}</docker.build.version>
+ </properties>
+
+ <profiles>
+ <profile>
+ <id>docker</id>
+ <modules>
+ <module>alpine</module>
+ <module>debian-slim</module>
+ </modules>
+ </profile>
+ </profiles>
+</project>