From 7830af09b0f682f61d9109b2a296b09450f5ae17 Mon Sep 17 00:00:00 2001 From: Dmitry Puzikov Date: Wed, 27 Mar 2019 13:55:13 +0100 Subject: Base and common images for Policy apps Alpine based base and common images to use across Policy project Change-Id: I01d504b48ee361d1751dfa982e1515705b9e343e Issue-ID: INT-996 Signed-off-by: Dmitry Puzikov --- policy-base/alpine/README.md | 3 + policy-base/alpine/pom.xml | 145 +++++++++++++++++++++++ policy-base/alpine/src/main/docker/Dockerfile | 23 ++++ policy-base/pom.xml | 53 +++++++++ policy-common/alpine/README.md | 2 + policy-common/alpine/pom.xml | 147 ++++++++++++++++++++++++ policy-common/alpine/src/main/docker/Dockerfile | 34 ++++++ policy-common/pom.xml | 53 +++++++++ pom.xml | 49 ++++++++ 9 files changed, 509 insertions(+) create mode 100644 policy-base/alpine/README.md create mode 100644 policy-base/alpine/pom.xml create mode 100644 policy-base/alpine/src/main/docker/Dockerfile create mode 100644 policy-base/pom.xml create mode 100644 policy-common/alpine/README.md create mode 100644 policy-common/alpine/pom.xml create mode 100644 policy-common/alpine/src/main/docker/Dockerfile create mode 100644 policy-common/pom.xml create mode 100644 pom.xml diff --git a/policy-base/alpine/README.md b/policy-base/alpine/README.md new file mode 100644 index 00000000..71204051 --- /dev/null +++ b/policy-base/alpine/README.md @@ -0,0 +1,3 @@ +The base image for Policy project images. +Contains basic set of packages used in every Policy app container. + diff --git a/policy-base/alpine/pom.xml b/policy-base/alpine/pom.xml new file mode 100644 index 00000000..cc811af8 --- /dev/null +++ b/policy-base/alpine/pom.xml @@ -0,0 +1,145 @@ + + + + + 4.0.0 + + + org.onap.policy.docker + policy-base + 2.1.0-SNAPSHOT + + + pom + policy-base-alpine + Policy alpine base docker image + Policy alpine base docker image + + + ${project.artifactId}-${project.version} + + + org.codehaus.groovy.maven + gmaven-plugin + 1.0 + + + validate + + execute + + + + 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']; + + + + + + + io.fabric8 + docker-maven-plugin + 0.28.0 + + true + 1.23 + ${docker.pull.registry} + ${docker.push.registry} + + + + onap/policy-base-alpine + + try + Dockerfile + + ${project.version} + ${project.version}-${maven.build.timestamp} + ${project.docker.latesttag.version} + + + + + + + + + clean-images + pre-clean + + remove + + + true + + + + + generate-images + generate-sources + + build + + + + + push-images + deploy + + build + push + + + onap/policy-base-alpine + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + org.apache.maven.plugins + maven-install-plugin + + true + + + + + diff --git a/policy-base/alpine/src/main/docker/Dockerfile b/policy-base/alpine/src/main/docker/Dockerfile new file mode 100644 index 00000000..26f20f52 --- /dev/null +++ b/policy-base/alpine/src/main/docker/Dockerfile @@ -0,0 +1,23 @@ +# +# Docker file to build a base image for all policy apps 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 + +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 diff --git a/policy-base/pom.xml b/policy-base/pom.xml new file mode 100644 index 00000000..4ec12073 --- /dev/null +++ b/policy-base/pom.xml @@ -0,0 +1,53 @@ + + + + 4.0.0 + + org.onap.policy.docker + docker + 2.1.0-SNAPSHOT + + + policy-base + pom + Policy Base Docker images + + + UTF-8 + UTF-8 + ${project.version} + false + false + false + nexus3.onap.org:10001 + nexus3.onap.org:10003 + yyyyMMdd'T'HHmm + + + + + docker + + alpine + + + + diff --git a/policy-common/alpine/README.md b/policy-common/alpine/README.md new file mode 100644 index 00000000..1ac70df5 --- /dev/null +++ b/policy-common/alpine/README.md @@ -0,0 +1,2 @@ +The common image for Policy project images. +Contains common set of packages used in most Policy apps containers. diff --git a/policy-common/alpine/pom.xml b/policy-common/alpine/pom.xml new file mode 100644 index 00000000..3668d893 --- /dev/null +++ b/policy-common/alpine/pom.xml @@ -0,0 +1,147 @@ + + + + + 4.0.0 + + + org.onap.policy.docker + policy-common + 2.1.0-SNAPSHOT + + + pom + policy-common-alpine + Policy alpine common docker image + Policy alpine common docker image + + + ${project.artifactId}-${project.version} + + + org.codehaus.groovy.maven + gmaven-plugin + 1.0 + + + validate + + execute + + + + 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']; + + + + + + + io.fabric8 + docker-maven-plugin + 0.28.0 + + + true + 1.23 + ${docker.pull.registry} + ${docker.push.registry} + + + + onap/policy-common-alpine + + try + Dockerfile + + ${project.version} + ${project.version}-${maven.build.timestamp} + ${project.docker.latesttag.version} + + + + + + + + + clean-images + pre-clean + + remove + + + true + + + + + generate-images + generate-sources + + build + + + + + push-images + deploy + + build + push + + + onap/policy-common-alpine + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + org.apache.maven.plugins + maven-install-plugin + + true + + + + + + diff --git a/policy-common/alpine/src/main/docker/Dockerfile b/policy-common/alpine/src/main/docker/Dockerfile new file mode 100644 index 00000000..19ea230c --- /dev/null +++ b/policy-common/alpine/src/main/docker/Dockerfile @@ -0,0 +1,34 @@ +# +# Docker file to build an image that contains commom packages for Policy apps +# +FROM onap/policy-base-alpine + +LABEL maintainer="Policy Team" + +ARG HTTP_PROXY=${HTTP_PROXY} +ARG HTTPS_PROXY=${HTTPS_PROXY} +ARG BUILD_VERSION=${BUILD_VERSION} + +ENV http_proxy $HTTP_PROXY +ENV https_proxy $HTTPS_PROXY +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 + diff --git a/policy-common/pom.xml b/policy-common/pom.xml new file mode 100644 index 00000000..5e2ac5ba --- /dev/null +++ b/policy-common/pom.xml @@ -0,0 +1,53 @@ + + + + 4.0.0 + + org.onap.policy.docker + docker + 2.1.0-SNAPSHOT + + + policy-common + pom + Policy Common Docker images + + + UTF-8 + UTF-8 + ${project.version} + false + false + false + nexus3.onap.org:10001 + nexus3.onap.org:10003 + yyyyMMdd'T'HHmm + + + + + docker + + alpine + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..af4077bb --- /dev/null +++ b/pom.xml @@ -0,0 +1,49 @@ + + + + 4.0.0 + + org.onap.policy.parent + policy-parent + 2.1.0-SNAPSHOT + + + org.onap.policy.docker + docker + pom + Policy Docker images + + + 1.8 + 1.8 + UTF-8 + + + + + docker + + policy-base + policy-common + + + + -- cgit 1.2.3-korg