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