summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Brady <pb071s@att.com>2018-01-09 12:56:19 -0800
committerPatrick Brady <pb071s@att.com>2018-01-24 16:24:38 -0500
commitcf10ac21a771d790a96d6bc2b7794ecc0f78a23c (patch)
tree4bea03980f833ae41cb3407f87c90405216f51bf
parent8efadca803f1adc30e81510bc376c16d314d680d (diff)
Modify docker scripts to even out layers
Making it so that appc features are added to the docker image in several waves, so that no single layer of the image ends up being massive. Change-Id: I5cf8f1324b4b2991a146f16d958b06077b5c1612 Signed-off-by: Patrick Brady <pb071s@att.com> Issue-ID: APPC-370
-rw-r--r--installation/appc/pom.xml1
-rw-r--r--installation/appc/src/main/docker/Dockerfile10
-rw-r--r--installation/appc/src/main/scripts/installZips.sh36
3 files changed, 39 insertions, 8 deletions
diff --git a/installation/appc/pom.xml b/installation/appc/pom.xml
index 3cebf5e..3711292 100644
--- a/installation/appc/pom.xml
+++ b/installation/appc/pom.xml
@@ -401,6 +401,7 @@
<arguments>
<argument>${basedir}/src/main/scripts/installZips.sh</argument>
<argument>${basedir}/target/docker-stage/opt/onap/appc</argument>
+ <argument>${basedir}/target/docker-stage</argument>
</arguments>
</configuration>
</execution>
diff --git a/installation/appc/src/main/docker/Dockerfile b/installation/appc/src/main/docker/Dockerfile
index 4d72862..3ec21e2 100644
--- a/installation/appc/src/main/docker/Dockerfile
+++ b/installation/appc/src/main/docker/Dockerfile
@@ -7,6 +7,16 @@ ENV APPC_CONFIG_DIR /opt/onap/appc/data/properties
# Copy the opt folder to the container's /opt folder
COPY opt /opt
+
+# We are keeping the feature installers in their
+# own folders in the docker staging repository.
+# The number of feature directories is defined in
+# the installZips.sh file.
+COPY featureDir1 /opt/onap/appc/features
+COPY featureDir2 /opt/onap/appc/features
+COPY featureDir3 /opt/onap/appc/features
+COPY featureDir4 /opt/onap/appc/features
+
RUN ln -s /opt/onap/appc /opt/appc
# Expose port 8181 for ODL REST calls
diff --git a/installation/appc/src/main/scripts/installZips.sh b/installation/appc/src/main/scripts/installZips.sh
index 8d8213d..dca7ec4 100644
--- a/installation/appc/src/main/scripts/installZips.sh
+++ b/installation/appc/src/main/scripts/installZips.sh
@@ -34,7 +34,16 @@ SDNC_HOME=${SDNC_HOME:-/opt/onap/sdnc}
targetDir=${1:-${APPC_HOME}}
sdnc_targetDir=${1:-${SDNC_HOME}}
-featureDir=${targetDir}/features
+#We are going to use a series of directories in the docker-stage folder to extract features to.
+#By extracting features into more than one directory, we can copy them into the docker image in
+#different parts, creating more even layer sizes in the docker image.
+featureDir=$2/featureDir
+
+#This value determine how many feature directories we want. The featutures will be evenly split
+#into the number of directories specified. Any remainder will be put into the last directory.
+#IF THE FEATURES_DIRECTORY_COUNT IS CHANGED, THE DOCKERFILE MUST ALSO BE UPDATED SINCE IT CONTAINS
+#A COPY COMMAND FOR EACH FEATURE DIRECTORY!! See the Dockerfile for more information.
+FEATURE_DIRECTORY_COUNT=4
APPC_FEATURES=" \
appc-sdc-listener \
@@ -64,6 +73,8 @@ APPC_FEATURES=" \
appc-config-params \
appc-aai-client"
+FEATURES_PER_DIRECTORY=$(($(echo $APPC_FEATURES|wc -w)/$FEATURE_DIRECTORY_COUNT))
+
APPC_VERSION=${APPC_VERSION:-0.0.1}
APPC_OAM_VERSION=${APPC_OAM_VERSION:-0.1.1}
@@ -72,22 +83,31 @@ then
mkdir -p ${targetDir}
fi
-if [ ! -d ${featureDir} ]
-then
- mkdir -p ${featureDir}
-fi
-
cwd=$(pwd)
-mavenOpts=${2:-"-s ${SETTINGS_FILE} -gs ${GLOBAL_SETTINGS_FILE}"}
+mavenOpts="-s ${SETTINGS_FILE} -gs ${GLOBAL_SETTINGS_FILE}"
cd /tmp
echo "Installing APP-C version ${APPC_VERSION}"
+
+#The math for splitting up the features into folders
+featureNumber=1
+featureDirNumber=1
for feature in ${APPC_FEATURES}
do
+if (( $featureDirNumber < $FEATURE_DIRECTORY_COUNT ))
+then
+ if (( $featureNumber > $FEATURES_PER_DIRECTORY ))
+ then
+ featureDirNumber=$(($featureDirNumber+1))
+ featureNumber=1
+ fi
+fi
+
rm -f /tmp/${feature}-installer*.zip
mvn -U ${mavenOpts} org.apache.maven.plugins:maven-dependency-plugin:2.9:copy -Dartifact=org.onap.appc:${feature}-installer:${APPC_VERSION}:zip -DoutputDirectory=/tmp -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.ssl.insecure=true
- unzip -d ${featureDir} /tmp/${feature}-installer*zip
+ unzip -d ${featureDir}$featureDirNumber /tmp/${feature}-installer*zip
+featureNumber=$(($featureNumber+1))
done
echo "Installing platform-logic for APP-C"