Update docker images for java 11 66/100266/8
authorJim Hahn <jrh3@att.com>
Mon, 13 Jan 2020 21:36:38 +0000 (16:36 -0500)
committerJim Hahn <jrh3@att.com>
Tue, 14 Jan 2020 22:29:56 +0000 (17:29 -0500)
Added debian-slim images based off of jre-slim.
Removed alpine images from the build.

If it's determined that we need a jdk instead of a jre, then
"jre" can be changed to "jdk" in the policy-base Dockerfile.
As an alternative, a new policy-docker-jdk image could be created,
based off of "jdk" and all of the apt packages added to it.  In that
case, it would probably be appropriate to removed maven from the
packages that are loaded into the policy-common image.
Addressed first round of review comments:
- use specific version of java 11
- removed docker-maven-plugin version
- replaced the images with policy-jre-debian and policy-jdk-debian
- added a policy-jdk-alpine image, which includes the jdk & maven, but
  is significantly smaller than the debian-slim version
- added a policy-jre-alpine image
Addressed additional review comments:
- removed BUILD_VERSION
- installed maven packages instead of downloading via curl
- added link to /usr/lib/jvm

Issue-ID: POLICY-1586
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I43fd6a5c5ff9c4a0b537d3f297fdf2ad8248ba75

17 files changed:
docker_push_manifest.sh
policy-base/alpine/README.md [deleted file]
policy-jdk/alpine/README.md [moved from policy-common/alpine/README.md with 76% similarity]
policy-jdk/alpine/pom.xml [moved from policy-common/alpine/pom.xml with 93% similarity]
policy-jdk/alpine/src/main/docker/Dockerfile [new file with mode: 0644]
policy-jdk/debian-slim/README.md [new file with mode: 0644]
policy-jdk/debian-slim/pom.xml [new file with mode: 0644]
policy-jdk/debian-slim/src/main/docker/Dockerfile [new file with mode: 0644]
policy-jdk/pom.xml [moved from policy-common/pom.xml with 92% similarity]
policy-jre/alpine/README.md [new file with mode: 0644]
policy-jre/alpine/pom.xml [new file with mode: 0644]
policy-jre/alpine/src/main/docker/Dockerfile [moved from policy-common/alpine/src/main/docker/Dockerfile with 55% similarity]
policy-jre/debian-slim/README.md [new file with mode: 0644]
policy-jre/debian-slim/pom.xml [moved from policy-base/alpine/pom.xml with 93% similarity]
policy-jre/debian-slim/src/main/docker/Dockerfile [moved from policy-base/alpine/src/main/docker/Dockerfile with 62% similarity]
policy-jre/pom.xml [moved from policy-base/pom.xml with 92% similarity]
pom.xml

index 48ad65e..210529f 100755 (executable)
@@ -1,6 +1,7 @@
 #!/bin/bash -ex
 #   ============LICENSE_START=======================================================
 #    Copyright (C) 2019 ENEA AB. 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.
@@ -21,7 +22,7 @@
 
 # shellcheck source=/dev/null
 source version.properties
-IMAGES="onap/policy-base-alpine onap/policy-common-alpine"
+IMAGES="onap/policy-jre-alpine onap/policy-jre-debian onap/policy-jdk-alpine onap/policy-jdk-debian"
 ARCHES="amd64 arm64"
 TIMESTAMP=$(date -u +"%Y%m%d%H%M%S")
 MT_RELEASE='v0.9.0'
diff --git a/policy-base/alpine/README.md b/policy-base/alpine/README.md
deleted file mode 100644 (file)
index 7120405..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-The base image for Policy project images.
-Contains basic set of packages used in every Policy app container.
-
similarity index 76%
rename from policy-common/alpine/README.md
rename to policy-jdk/alpine/README.md
index 1ac70df..0798eab 100644 (file)
@@ -1,2 +1,3 @@
 The common image for Policy project images.
-Contains common set of packages used in most Policy apps containers.
+Contains common set of packages used in most Policy apps containers
+needing maven and a full JDK.
similarity index 93%
rename from policy-common/alpine/pom.xml
rename to policy-jdk/alpine/pom.xml
index b36221c..b5df9e8 100644 (file)
@@ -1,6 +1,7 @@
 <!--
   ============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.
 
     <parent>
         <groupId>org.onap.policy.docker</groupId>
-        <artifactId>policy-common</artifactId>
+        <artifactId>policy-jdk</artifactId>
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
     <packaging>pom</packaging>
-    <artifactId>policy-common-alpine</artifactId>
-    <name>Policy alpine common docker image</name>
-    <description>Policy alpine common docker image</description>
+    <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>
@@ -76,8 +77,7 @@
             <plugin>
                 <groupId>io.fabric8</groupId>
                 <artifactId>docker-maven-plugin</artifactId>
-                <version>0.28.0</version>
-                
+
                 <configuration>
                     <verbose>true</verbose>
                     <apiVersion>1.23</apiVersion>
@@ -85,7 +85,7 @@
                     <pushRegistry>${docker.push.registry}</pushRegistry>
                     <images>
                         <image>
-                            <name>onap/policy-common-alpine:latest-${project.docker.arch}</name>
+                            <name>onap/policy-jdk-alpine:latest-${project.docker.arch}</name>
                             <build>
                                 <cleanup>try</cleanup>
                                 <dockerFile>Dockerfile</dockerFile>
                             <goal>push</goal>
                         </goals>
                         <configuration>
-                            <image>onap/policy-common-alpine</image>
+                            <image>onap/policy-jdk-alpine</image>
                         </configuration>
                     </execution>
                 </executions>
diff --git a/policy-jdk/alpine/src/main/docker/Dockerfile b/policy-jdk/alpine/src/main/docker/Dockerfile
new file mode 100644 (file)
index 0000000..a258a31
--- /dev/null
@@ -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 (file)
index 0000000..0798eab
--- /dev/null
@@ -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 (file)
index 0000000..2b23149
--- /dev/null
@@ -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 (file)
index 0000000..55b47d1
--- /dev/null
@@ -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}
similarity index 92%
rename from policy-common/pom.xml
rename to policy-jdk/pom.xml
index d63bf4e..f095945 100644 (file)
@@ -1,6 +1,7 @@
 <!--
   ============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.
@@ -26,7 +27,7 @@
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>policy-common</artifactId>
+    <artifactId>policy-jdk</artifactId>
     <packaging>pom</packaging>
     <name>Policy Common Docker images</name>
 
@@ -47,6 +48,7 @@
             <id>docker</id>
             <modules>
                 <module>alpine</module>
+                <module>debian-slim</module>
             </modules>
         </profile>
     </profiles>
diff --git a/policy-jre/alpine/README.md b/policy-jre/alpine/README.md
new file mode 100644 (file)
index 0000000..1701b2a
--- /dev/null
@@ -0,0 +1,3 @@
+The common image for Policy project images.
+Contains common set of packages used in most Policy apps containers
+needing a JRE, but not a full JDK.
diff --git a/policy-jre/alpine/pom.xml b/policy-jre/alpine/pom.xml
new file mode 100644 (file)
index 0000000..302364c
--- /dev/null
@@ -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-jre</artifactId>
+        <version>2.0.0-SNAPSHOT</version>
+    </parent>
+
+    <packaging>pom</packaging>
+    <artifactId>policy-jre-alpine</artifactId>
+    <name>Policy alpine jre docker image</name>
+    <description>Policy alpine jre 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-jre-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-jre-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>
+
@@ -1,5 +1,6 @@
 #   ============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.
 #   SPDX-License-Identifier: Apache-2.0
 #   ============LICENSE_END=========================================================
 
+# Docker file to build a base image for all policy components images
 #
-# Docker file to build an image that contains common packages for Policy components
-#
-FROM onap/policy-base-alpine:latest-${project.docker.arch}
+# $JAVA_HOME is set to /usr/lib/jvm/java-11-openjdk
+# more details at https://hub.docker.com/_/openjdk
 
-LABEL maintainer="Policy Team"
+FROM alpine:latest
 
-ARG BUILD_VERSION=${BUILD_VERSION}
+LABEL maintainer="Policy Team"
 
-ENV BUILD_VERSION ${BUILD_VERSION}
 ENV POLICY_HOME=/opt/app/policy
 
-# Install common packages used in 6 out of 7 images
-RUN apk add --no-cache \
-    busybox-extras \
-    httpie \
-    jq \
-    maven \
-    py-pip \
-    python
-
-# Create policy user and group
-RUN addgroup -S policy && \
-    adduser -S  --shell /bin/bash -G policy policy
-
-# Create common directories and change owner
-RUN mkdir -p \
-    ${POLICY_HOME}/etc/ssl \
-    && chown  -R policy:policy ${POLICY_HOME} ${POLICY_HOME}/etc/ssl
-
+RUN apk update \
+    && apk add --no-cache \
+        bash \
+        busybox-extras \
+        coreutils \
+        curl \
+        findutils \
+        grep \
+        httpie \
+        jq \
+        nss \
+        openjdk11-jre \
+        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-jre/debian-slim/README.md b/policy-jre/debian-slim/README.md
new file mode 100644 (file)
index 0000000..40c870e
--- /dev/null
@@ -0,0 +1,4 @@
+The common image for Policy project images.
+Contains basic set of packages used in every Policy app container
+needing a JRE, but not a full JDK.
+
similarity index 93%
rename from policy-base/alpine/pom.xml
rename to policy-jre/debian-slim/pom.xml
index d58a777..b49710c 100644 (file)
@@ -1,6 +1,7 @@
 <!--
   ============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.
 
     <parent>
         <groupId>org.onap.policy.docker</groupId>
-        <artifactId>policy-base</artifactId>
+        <artifactId>policy-jre</artifactId>
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
     <packaging>pom</packaging>
-    <artifactId>policy-base-alpine</artifactId>
-    <name>Policy alpine base docker image</name>
-    <description>Policy alpine base docker image</description>
+    <artifactId>policy-jre-debian</artifactId>
+    <name>Policy debian-slim jre docker image</name>
+    <description>Policy debian-slim jre docker image</description>
 
     <build>
         <finalName>${project.artifactId}-${project.version}</finalName>
@@ -76,7 +77,6 @@
             <plugin>
                 <groupId>io.fabric8</groupId>
                 <artifactId>docker-maven-plugin</artifactId>
-                <version>0.28.0</version>
                 <configuration>
                     <verbose>true</verbose>
                     <apiVersion>1.23</apiVersion>
@@ -85,7 +85,7 @@
 
                     <images>
                         <image>
-                            <name>onap/policy-base-alpine:latest-${project.docker.arch}</name>
+                            <name>onap/policy-jre-debian:latest-${project.docker.arch}</name>
                             <build>
                                 <cleanup>try</cleanup>
                                 <dockerFile>Dockerfile</dockerFile>
                             <goal>push</goal>
                         </goals>
                         <configuration>
-                            <image>onap/policy-base-alpine</image>
+                            <image>onap/policy-jre-debian</image>
                         </configuration>
                     </execution>
                 </executions>
@@ -1,5 +1,5 @@
 #   ============LICENSE_START=======================================================
-#    Copyright (C) 2019 Tieto. All rights reserved.
+#    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.
 
 # Docker file to build a base image for all policy components images
 #
-# $JAVA_HOME is set to /usr/lib/jvm/java-1.8-openjdk
-# more details at https://hub.docker.com/_/openjdk
 
-FROM openjdk:8-alpine
+FROM openjdk:11.0.5-jre-slim
 
 LABEL maintainer="Policy Team"
 
-# used in 7 out of 7 images
-RUN apk add --no-cache \
-    bash \
-    coreutils \
-    curl \
-    findutils \
-    grep \
-    nss \
-    openssh \
-    procps \
-    unzip \
-    wget \
-    zip
+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}
similarity index 92%
rename from policy-base/pom.xml
rename to policy-jre/pom.xml
index ac4eaca..7e49493 100644 (file)
@@ -1,6 +1,7 @@
 <!--
   ============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.
@@ -26,7 +27,7 @@
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>policy-base</artifactId>
+    <artifactId>policy-jre</artifactId>
     <packaging>pom</packaging>
     <name>Policy Base Docker images</name>
 
@@ -46,6 +47,7 @@
             <id>docker</id>
             <modules>
                 <module>alpine</module>
+                <module>debian-slim</module>
             </modules>
         </profile>
     </profiles>
diff --git a/pom.xml b/pom.xml
index 60a7b34..90d3705 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,7 @@
 <!--
   ============LICENSE_START=======================================================
    Copyright (C) 2018 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.
@@ -44,8 +45,8 @@
         <profile>
             <id>docker</id>
             <modules>
-                <module>policy-base</module>
-                <module>policy-common</module>
+                <module>policy-jre</module>
+                <module>policy-jdk</module>
             </modules>
         </profile>
     </profiles>