support multi-platform docker builds

Issue-ID: INT-865

Change-Id: I25dc0ca6c615b60b28f4999ae6fc475155e11daf
Signed-off-by: sandovalfr <frank.sandoval@oamtechnologies.com>
diff --git a/auth/auth-cass/docker/Dockerfile.cass b/auth/auth-cass/docker/Dockerfile.cass
index f842a96..52aa49c 100644
--- a/auth/auth-cass/docker/Dockerfile.cass
+++ b/auth/auth-cass/docker/Dockerfile.cass
@@ -17,9 +17,8 @@
 #  limitations under the License.
 #  ============LICENSE_END====================================================
 #
-# public, multi-platform base image
-FROM nexus3.onap.org:10001/cassandra:3.11
-# FROM cassandra:3.11
+# Use dbuild.sh input parameter to set registry
+FROM ${REGISTRY}cassandra:3.11
 MAINTAINER AAF Team, AT&T 2018
 ENV VERSION=${AAF_VERSION}
 
@@ -33,8 +32,8 @@
 COPY cass_data/*.dat /opt/app/aaf/cass_init/dats/
 
 RUN mkdir -p /opt/app/aaf/status && chmod 777 /opt/app/aaf/status
-#RUN addgroup ${USER} && adduser --no-create-home --ingroup ${USER} --disabled-password --gecos "" --shell /bin/bash ${USER}
-#RUN chown -R ${USER}:${USER} /opt/app/aaf/cass_init
+RUN addgroup ${USER} && adduser --no-create-home --ingroup ${USER} --disabled-password --gecos "" --shell /bin/bash ${USER}
+RUN chown -R ${USER}:${USER} /opt/app/aaf/cass_init
 
 
 ENTRYPOINT ["/bin/bash","/opt/app/aaf/cass_init/cmd.sh"]
diff --git a/auth/auth-cass/docker/dbuild.sh b/auth/auth-cass/docker/dbuild.sh
index c708dad..2913b1a 100644
--- a/auth/auth-cass/docker/dbuild.sh
+++ b/auth/auth-cass/docker/dbuild.sh
@@ -26,19 +26,28 @@
 fi
 DOCKER=${DOCKER:-docker}
 
-echo "Building aaf_cass Container for aaf_cass:$VERSION"
+echo "$0: Building aaf_cass Container for aaf_cass:$VERSION"
+
+# default nexus repo only contains Amd64 images, use docker.io for multi-platform builds
+if [[ $1 && $1 == "docker.io" ]]; then
+    DOCKER_PULL_REGISTRY=''
+else 
+    DOCKER_PULL_REGISTRY='nexus3.onap.org:10001\/'
+fi
+echo "$0: DOCKER_PULL_REGISTRY=${DOCKER_REGISTRY}"
 
 DIR=$(pwd)
 cd ..
 sed -e 's/${AAF_VERSION}/'${VERSION}'/g' \
     -e 's/${USER}/'${USER}'/g' \
+    -e 's/${REGISTRY}/'${DOCKER_PULL_REGISTRY}'/g' \
     $DIR/Dockerfile.cass > Dockerfile
 cd ..
 cp -Rf sample/cass_data auth-cass/cass_data
 cp sample/data/sample.identities.dat auth-cass
 cp auth-batch/target/aaf-auth-batch-$VERSION-full.jar auth-cass
 
-echo $DOCKER build -t ${ORG}/${PROJECT}/aaf_cass:${VERSION} auth-cass
+echo "$0: $DOCKER build -t ${ORG}/${PROJECT}/aaf_cass:${VERSION} auth-cass"
 $DOCKER build -t ${ORG}/${PROJECT}/aaf_cass:${VERSION} auth-cass
 $DOCKER tag ${ORG}/${PROJECT}/aaf_cass:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_cass:${VERSION}
 $DOCKER tag ${ORG}/${PROJECT}/aaf_cass:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_cass:latest
diff --git a/auth/docker/Dockerfile.base b/auth/docker/Dockerfile.base
index 6962794..ad8e271 100644
--- a/auth/docker/Dockerfile.base
+++ b/auth/docker/Dockerfile.base
@@ -17,9 +17,8 @@
 #  limitations under the License.
 #  ============LICENSE_END====================================================
 #
-# Use Public Image
-FROM nexus3.onap.org:10001/openjdk:8-jre-alpine
-#FROM openjdk:8-jre-alpine
+# Use dbuild.sh input parameter to set registry
+FROM ${REGISTRY}openjdk:8-jre-alpine
 MAINTAINER AAF Team, AT&T 2018
 
 LABEL description="aaf_base"
diff --git a/auth/docker/dbuild.sh b/auth/docker/dbuild.sh
index 3f9bfda..cdd97fc 100755
--- a/auth/docker/dbuild.sh
+++ b/auth/docker/dbuild.sh
@@ -20,6 +20,31 @@
 #
 # Docker Building Script.  Reads all the components generated by install, on per-version basis
 #
+
+DOCKER_PULL_REGISTRY='nexus3.onap.org:10001\/'
+AAF_COMPONENTS=ALL
+
+# process input. originally, an optional positional parameter is used to designate a component.
+# A flagged parameter has been added to optionally indicate docker pull registry. Ideally, options
+# would be flagged but we're avoiding ripple effect of changing original usage
+if [ $# -gt 0 ]; then
+    if [ "$1" == "-r" ]; then
+        DOCKER_PULL_REGISTRY=$2
+    else
+        AAF_COMPONENTS=$1
+        if [[ $# -gt 1 && $2 == "-r" ]]; then
+            # If docker.io is indicated, registry var is void as that is docker default
+            if [ $3 == "docker.io" ]; then
+                DOCKER_PULL_REGISTRY=''
+            else
+                DOCKER_PULL_REGISTRY=$3
+            fi
+        fi
+    fi
+fi
+
+echo "$0: AAF_COMPONENTS=$AAF_COMPONENTS DOCKER_PULL_REGISTRY=$DOCKER_PULL_REGISTRY"
+
 # Pull in Variables from d.props
 if [ ! -e ./d.props ]; then
     cp d.props.init d.props
@@ -33,12 +58,13 @@
 
 # AAF_cass now needs a version...
 cd ../auth-cass/docker
-bash ./dbuild.sh
+bash ./dbuild.sh $DOCKER_PULL_REGISTRY
 cd -
 
 # AAF Base version - set the core image, etc
 sed -e 's/${AAF_VERSION}/'${VERSION}'/g' \
     -e 's/${DUSER}/'${DUSER}'/g' \
+    -e 's/${REGISTRY}/'${DOCKER_PULL_REGISTRY}'/g' \
     Dockerfile.base > Dockerfile
 $DOCKER build -t ${ORG}/${PROJECT}/aaf_base:${VERSION} .
 $DOCKER tag ${ORG}/${PROJECT}/aaf_base:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_base:${VERSION}
@@ -97,11 +123,10 @@
 #######
 # Do all the Containers related to AAF Services
 #######
-if ["$1" == ""]; then
+if [ $AAF_COMPONENTS == "ALL" ]; then
     AAF_COMPONENTS=$(ls ../aaf_${VERSION}/bin | grep -v '\.')
-else
-    AAF_COMPONENTS=$1
 fi
+echo "$0: AAF_COMPONENTS=$AAF_COMPONENTS"
 
 cp ../sample/bin/pod_wait.sh  ../aaf_${VERSION}/bin
 for AAF_COMPONENT in ${AAF_COMPONENTS}; do