[CORD-2188] Multi-stage build for xos-gui

Change-Id: I83e07c7af8f25af41fdfd46f0401d175253ccc1e
(cherry picked from commit 02784ea7daf995eb361b46bb79868925663419bc)
diff --git a/Dockerfile b/Dockerfile
index 55a7b38..7894b94 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,24 +1,13 @@
 # xosproject/xos-gui
-# To build use: docker build -t xosproject/xos-gui .
+# To build use: docker build -f Dockerfile -t xosproject/xos-gui .
 # To run use: docker run -p 4000:4000 --volumes-from gui-extensions-store -d xosproject/xos-gui
-FROM nginx:candidate
+FROM node:7.9.0 as xos-gui-base
 
 # Set environment vars
 ENV CODE_SOURCE .
 ENV CODE_DEST /var/www
 ENV VHOST /var/www/dist
 
-# Install Node.js
-COPY ${CODE_SOURCE}/nodesource.gpg.key /tmp/nodesource.gpg.key
-RUN apt-get update \
- && apt-get install -y gnupg apt-transport-https \
- && apt-key add /tmp/nodesource.gpg.key \
- && echo "deb https://deb.nodesource.com/node_7.x trusty main" \
-    > /etc/apt/sources.list.d/nodesource.list \
- && apt-get update \
- && apt-get install -y curl git bzip2 nodejs \
- && rm -rf /var/lib/apt/lists/*
-
 # copy over files
 COPY ${CODE_SOURCE}/package.json \
      ${CODE_SOURCE}/typings.json \
@@ -30,16 +19,29 @@
 COPY ${CODE_SOURCE}/gulp_tasks/ ${CODE_DEST}/gulp_tasks/
 COPY ${CODE_SOURCE}/src/ ${CODE_DEST}/src/
 
-# Install deps, build and create logdir
+# Install deps and build
 WORKDIR ${CODE_DEST}
 RUN npm install \
  && npm run typings \
- && npm run build \
- && mkdir -p /var/log/nginx/log
+ && npm run build
+
+
+FROM nginx:candidate
+
+ENV CODE_SOURCE .
+ENV VHOST /var/www/dist
+
+WORKDIR ${VHOST}
+
+# create logdir
+RUN mkdir -p /var/log/nginx/log
 
 # Override nginx configutaion
 COPY ${CODE_SOURCE}/nginx.conf /etc/nginx/conf.d/default.conf
 
+# Copy minified app
+COPY --from=xos-gui-base ${VHOST} .
+
 # expose the app port
 EXPOSE 4000