summaryrefslogtreecommitdiffstats
path: root/deliveries/Dockerfile.portal
diff options
context:
space:
mode:
authorSylvain Desbureaux <sylvain.desbureaux@orange.com>2019-03-04 08:45:37 +0100
committerSylvain Desbureaux <sylvain.desbureaux@orange.com>2019-03-04 08:56:00 +0100
commit3992004ee5f2b0b1635e2aef19c375db87079b52 (patch)
treec0e7819a62062dca539b453a840decc0b50a8d10 /deliveries/Dockerfile.portal
parent5764807810b41edbaa21d6f2fa9f1d44e798ba02 (diff)
Reduce image size of containers
CIA project goal is to reduce image size of container and make the container multi architecture. Portal images are already multi architecure ready and portal-wms and portal-db are also done in an efficient way. Portal-app and portal-sdk although can be shrinked, using multi stage docker builds. This commit allow a noticeable shrink for both of them: from 708Mb to 298Mb for portal-app and from 388Mb to 257Mb for portal-sdk. Change-Id: Id5cca8b78d0d9ee1724259dab40b7ccff910c628 Issue-ID: INT-939 Issue-ID: INT-922 Issue-ID: INT-881 Issue-ID: INT-925 Issue-ID: INT-936 Signed-off-by: Sylvain Desbureaux <sylvain.desbureaux@orange.com>
Diffstat (limited to 'deliveries/Dockerfile.portal')
-rw-r--r--deliveries/Dockerfile.portal43
1 files changed, 27 insertions, 16 deletions
diff --git a/deliveries/Dockerfile.portal b/deliveries/Dockerfile.portal
index 847fdd98..b4c759fa 100644
--- a/deliveries/Dockerfile.portal
+++ b/deliveries/Dockerfile.portal
@@ -1,5 +1,23 @@
# Dockerfile for image with ONAP Portal
+# Multistage to be able to have SDK war content and not war itself
+FROM busybox:latest AS war-decompress
+
+# Arguments are supplied by build.sh script
+# the defaults below only support testing
+ARG PORTAL_WAR=build/ecompportal-be-os.war
+ARG FE_DIR=build/public
+
+# Just variables, never passed in
+ARG PORTALCONTEXT=ONAPPORTAL
+
+RUN mkdir ${PORTALCONTEXT}
+
+# Portal has many parts
+COPY $PORTAL_WAR ${PORTALCONTEXT}
+RUN cd ${PORTALCONTEXT} && unzip -q *.war && rm *.war
+COPY ${FE_DIR} ${PORTALCONTEXT}/public
+
# Yields an image 823 MB
FROM openjdk:8-alpine
# Yields an image 1.4 GB
@@ -14,7 +32,8 @@ ARG HTTPS_PROXY
# ARG PORTAL_CERT=truststoreONAPall.jks
# Just variables, never passed in
-ARG TOMCAT=apache-tomcat-8.0.37
+ARG TOMCAT_VERSION=8.0.37
+ARG TOMCAT=apache-tomcat-${TOMCAT_VERSION}
ARG TOMCATTAR=${TOMCAT}.tar.gz
ARG TOMCATHOME=/opt/${TOMCAT}
ARG PORTALCONTEXT=ONAPPORTAL
@@ -26,22 +45,14 @@ RUN if [ ! -z ${HTTP_PROXY} ]; then echo "Acquire::http::proxy \"${HTTP_PROXY}\
# Install Tomcat. This image already has curl.
WORKDIR /tmp
-RUN wget -q http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.37/bin/apache-tomcat-8.0.37.tar.gz
-RUN tar -xzf ${TOMCATTAR}
-RUN rm ${TOMCATTAR}
-# Remove manager and sample apps
-RUN rm -fr ${TOMCAT}/webapps/*
-RUN mkdir -p /opt
-COPY ${SERVERXML} ${TOMCAT}/conf
-RUN mv ${TOMCAT} /opt
-
-WORKDIR ${TOMCATHOME}/webapps
-RUN mkdir ${PORTALCONTEXT}
+RUN wget -q http://archive.apache.org/dist/tomcat/tomcat-8/v${TOMCAT_VERSION}/bin/${TOMCATTAR} && \
+ tar -xzf ${TOMCATTAR} && \
+ rm ${TOMCATTAR} &&\
+ rm -fr ${TOMCAT}/webapps/* &&\
+ mkdir -p /opt &&\
+ mv ${TOMCAT} /opt
-# Portal has many parts
-COPY $PORTAL_WAR ${PORTALCONTEXT}
-RUN cd ${PORTALCONTEXT} && unzip -q *.war && rm *.war
-COPY ${FE_DIR} ${PORTALCONTEXT}/public
+COPY --from=war-decompress /${PORTALCONTEXT} ${TOMCATHOME}/webapps/${PORTALCONTEXT}/
VOLUME ${TOMCATHOME}/logs