move labels to bottom, reduce layers

Change-Id: I56ddbff880f6c68a746f4ffc51ea5424a30b6289
diff --git a/Dockerfile b/Dockerfile
index 507433f..55a7b38 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,6 +3,46 @@
 # To run use: docker run -p 4000:4000 --volumes-from gui-extensions-store -d xosproject/xos-gui
 FROM nginx:candidate
 
+# 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 \
+     ${CODE_SOURCE}/gulpfile.js \
+     ${CODE_SOURCE}/tsconfig.json \
+     ${CODE_SOURCE}/tslint.json \
+     ${CODE_DEST}/
+COPY ${CODE_SOURCE}/conf/ ${CODE_DEST}/conf/
+COPY ${CODE_SOURCE}/gulp_tasks/ ${CODE_DEST}/gulp_tasks/
+COPY ${CODE_SOURCE}/src/ ${CODE_DEST}/src/
+
+# Install deps, build and create logdir
+WORKDIR ${CODE_DEST}
+RUN npm install \
+ && npm run typings \
+ && npm run build \
+ && mkdir -p /var/log/nginx/log
+
+# Override nginx configutaion
+COPY ${CODE_SOURCE}/nginx.conf /etc/nginx/conf.d/default.conf
+
+# expose the app port
+EXPOSE 4000
+
 # Label image
 ARG org_label_schema_schema_version=1.0
 ARG org_label_schema_name=xos-gui
@@ -20,40 +60,3 @@
       org.label-schema.build-date=$org_label_schema_build_date \
       org.opencord.vcs-commit-date=$org_opencord_vcs_commit_date
 
-# Set environment vars
-ENV CODE_SOURCE .
-ENV CODE_DEST /var/www
-ENV VHOST /var/www/dist
-
-# Install nodeJs
-RUN apt-get update
-RUN apt-get install curl git bzip2 gnupg -y
-RUN curl -sL https://deb.nodesource.com/setup_7.x > node_install.sh
-RUN bash node_install.sh
-RUN apt-get install -y nodejs
-
-# Add the app deps
-COPY ${CODE_SOURCE}/package.json ${CODE_DEST}/package.json
-COPY ${CODE_SOURCE}/typings.json ${CODE_DEST}/typings.json
-
-# Install Deps
-WORKDIR ${CODE_DEST}
-RUN npm install
-RUN npm run typings
-
-# Create folder for logs
-RUN mkdir -p /var/log/nginx/log
-
-# Build the app
-EXPOSE 4000
-COPY ${CODE_SOURCE}/conf ${CODE_DEST}/conf
-COPY ${CODE_SOURCE}/gulp_tasks ${CODE_DEST}/gulp_tasks
-COPY ${CODE_SOURCE}/src ${CODE_DEST}/src
-COPY ${CODE_SOURCE}/gulpfile.js ${CODE_DEST}/gulpfile.js
-COPY ${CODE_SOURCE}/tsconfig.json ${CODE_DEST}/tsconfig.json
-COPY ${CODE_SOURCE}/tslint.json ${CODE_DEST}/tslint.json
-RUN npm run build
-
-# Override nginx configutaion
-COPY ${CODE_SOURCE}/nginx.conf ${CODE_DEST}/nginx.conf
-RUN mv ${CODE_SOURCE}/nginx.conf /etc/nginx/conf.d/default.conf