From 649585b88b758d5c3e702446385ffe733ceea824 Mon Sep 17 00:00:00 2001 From: Dmitry Puzikov Date: Thu, 15 Aug 2019 13:45:56 +0200 Subject: Created maven modules for aai-common docker images. aai-common and aai-haproxy docker images can be build with maven. Change-Id: Iffbc2f4984316e3acc35558bdde0dbea76388ada Issue-ID: INT-1023 Signed-off-by: Dmitry Puzikov --- aai-common-docker/aai-common-images/README.md | 24 +++++ aai-common-docker/aai-common-images/pom.xml | 103 +++++++++++++++++++++ .../src/main/docker/Dockerfile.alpine | 39 ++++++++ .../src/main/docker/Dockerfile.ubuntu | 35 +++++++ 4 files changed, 201 insertions(+) create mode 100644 aai-common-docker/aai-common-images/README.md create mode 100644 aai-common-docker/aai-common-images/pom.xml create mode 100644 aai-common-docker/aai-common-images/src/main/docker/Dockerfile.alpine create mode 100644 aai-common-docker/aai-common-images/src/main/docker/Dockerfile.ubuntu (limited to 'aai-common-docker/aai-common-images') diff --git a/aai-common-docker/aai-common-images/README.md b/aai-common-docker/aai-common-images/README.md new file mode 100644 index 00000000..82131247 --- /dev/null +++ b/aai-common-docker/aai-common-images/README.md @@ -0,0 +1,24 @@ +# AAI Common Docker README + +### Building the image + +Run the following command to build AAI common images at internal network + +```bash + export NEW_VERSION= + export BASE_IMAGE= + sudo docker build -t \ + nexus3.onap.org:10003/onap/aai-common-${BASE_IMAGE}:${NEW_VERSION} \ + -f Dockerfile.${BASE_IMAGE} . +``` + +Replace the **NEW\_VERSION** with the new docker image version for aai-common. +Set **BASE\_IMAGE** to **alpine** or **ubuntu** to build aai-common-alpine or +aai-common-ubuntu image. + +NOTE: In order to push images into Nexus3, you have to be logged into Nexus3 +with appropriate credentials first. + +NOTE2: Both alpine and ubuntu based aai-common images are built automatically +by jenkins jobs and they are available at official ONAP docker registry +(currently nexus3). diff --git a/aai-common-docker/aai-common-images/pom.xml b/aai-common-docker/aai-common-images/pom.xml new file mode 100644 index 00000000..2ecf0295 --- /dev/null +++ b/aai-common-docker/aai-common-images/pom.xml @@ -0,0 +1,103 @@ + + + 4.0.0 + + org.onap.aai.aai-common + aai-common-docker + 1.6.0-SNAPSHOT + + + aai-common-images + 1.6.0-SNAPSHOT + pom + aai-aai-common-images + Contains dockerfiles for aai-common images (alpine and ubuntu based). + + + + io.fabric8 + docker-maven-plugin + ${docker.fabric.version} + + true + 1.23 + + + ${docker.push.registry}/${aai.docker.namespace}/aai-common-alpine:%l + + + @ + + latest + + try + ${project.basedir}/src/main/docker + Dockerfile.alpine + + + + ${docker.push.registry}/${aai.docker.namespace}/aai-common-ubuntu:%l + + + @ + + latest + + try + Dockerfile.ubuntu + ${project.basedir}/src/main/docker + + + + + + + clean-images + pre-clean + + remove + + + true + + + + generate-images + package + + build + + + + push-images + deploy + + push + + + + + + + diff --git a/aai-common-docker/aai-common-images/src/main/docker/Dockerfile.alpine b/aai-common-docker/aai-common-images/src/main/docker/Dockerfile.alpine new file mode 100644 index 00000000..915c511e --- /dev/null +++ b/aai-common-docker/aai-common-images/src/main/docker/Dockerfile.alpine @@ -0,0 +1,39 @@ +FROM openjdk:8-jre-alpine3.9 + +# Set the version of the gosu command and if needs to be, it can be modified at runtime +ENV GOSU_VERSION 1.10 + +# For building the image in a proxy environment if necessary +ARG HTTP_PROXY +ARG HTTPS_PROXY +ARG no_proxy + +ENV HTTP_PROXY ${HTTP_PROXY} +ENV HTTPS_PROXY ${HTTPS_PROXY} +ENV http_proxy ${HTTP_PROXY} +ENV https_proxy ${HTTPS_PROXY} +ENV no_proxy 127.0.0.1,localhost,${no_proxy} + +RUN \ + # Put all the dependencies into this variable to easily install everything + DEPS="ca-certificates \ + curl \ + dpkg \ + fastjar \ + jq \ + loksh \ + bash \ + netcat-openbsd \ + openssl \ + shadow \ + util-linux \ + wget" \ + && apk add --no-cache ${DEPS} \ + # need fastjar for some projects to update app's jar on container restart + && ln -snf /usr/bin/fastjar $JAVA_HOME/bin/jar \ + # Get the dpkg to properly download and install that version compatible to install GOSU on the image + && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ + # Downloads the gosu command based on the dpkg version and gosu version supplied + && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ + # Use GPG to install the gosu application locally + && chmod +x /usr/local/bin/gosu diff --git a/aai-common-docker/aai-common-images/src/main/docker/Dockerfile.ubuntu b/aai-common-docker/aai-common-images/src/main/docker/Dockerfile.ubuntu new file mode 100644 index 00000000..d81579d4 --- /dev/null +++ b/aai-common-docker/aai-common-images/src/main/docker/Dockerfile.ubuntu @@ -0,0 +1,35 @@ +FROM ubuntu:16.04 + +# Set the version of the gosu command and if needs to be, it can be modified at runtime +ENV GOSU_VERSION 1.10 + +# For building the image in a proxy environment if necessary +ARG HTTP_PROXY +ARG HTTPS_PROXY +ARG no_proxy + +ENV HTTP_PROXY ${HTTP_PROXY} +ENV HTTPS_PROXY ${HTTPS_PROXY} +ENV http_proxy ${HTTP_PROXY} +ENV https_proxy ${HTTPS_PROXY} +ENV no_proxy 127.0.0.1,localhost,${no_proxy} + +RUN \ + # Creates the group and user with the name aaiadmin for aai + #groupadd -r aaiadmin && useradd -r -g aaiadmin aaiadmin && \ + # Put all the dependencies into this variable to easily install everything + DEPS="ca-certificates curl git fastjar jq ksh libcurl3 netcat openjdk-8-jre-headless vim uuid-runtime wget" && \ + # Run the update before for the package manager to properly fetch install packages + apt-get update && \ + # Install the recommended dependencies + apt-get install -y --no-install-recommends $DEPS && \ + # Remove all the cache for the apt package manager + rm -rf /var/lib/apt/lists/* && \ + # Get the dpkg to properly download and install that version compatible to install GOSU on the image + dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" && \ + \ + # Downloads the gosu command based on the dpkg version and gosu version supplied + wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ + \ + # Use GPG to install the gosu application locally + chmod +x /usr/local/bin/gosu -- cgit