diff options
Diffstat (limited to 'policy-jdk')
-rw-r--r-- | policy-jdk/alpine/README.md | 3 | ||||
-rw-r--r-- | policy-jdk/alpine/pom.xml | 154 | ||||
-rw-r--r-- | policy-jdk/alpine/src/main/docker/Dockerfile | 54 | ||||
-rw-r--r-- | policy-jdk/debian-slim/README.md | 3 | ||||
-rw-r--r-- | policy-jdk/debian-slim/pom.xml | 154 | ||||
-rw-r--r-- | policy-jdk/debian-slim/src/main/docker/Dockerfile | 48 | ||||
-rw-r--r-- | policy-jdk/pom.xml | 55 |
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> |