Move NG-UI Dockerfile to use a build stage
[osm/devops.git] / docker / NG-UI / Dockerfile
index 9ea5d3d..53ec2a9 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM ubuntu:18.04
+FROM ubuntu:18.04 AS BUILD
 
 RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
     DEBIAN_FRONTEND=noninteractive apt-get --yes install \
-    apt-transport-https=1.6.12ubuntu0.2 \
-    curl=7.58.0-2ubuntu3.14 \
-    gnupg2=2.2.4-1ubuntu1.4 \
-    nginx=1.14.0-0ubuntu1.9 \
-    software-properties-common=0.96.24.32.14 \
-    xz-utils=5.2.2-1.3
+    apt-transport-https=1.6.* \
+    curl=7.58.* \
+    gnupg2=2.2.* \
+    nginx=1.14.* \
+    software-properties-common=0.96.* \
+    xz-utils=5.2.*
 
 RUN curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
     echo "deb https://deb.nodesource.com/node_10.x xenial main" | tee -a /etc/apt/sources.list.d/nodesource.list && \
     apt-get update && \
-    apt-get install -y nodejs=10.24.1-1nodesource1
+    apt-get install -y nodejs=10.24.* \
+    && rm -rf /var/lib/apt/lists/*
 
 ARG OSM_NGUI_URL
 
@@ -39,13 +40,22 @@ RUN npm install
 
 # Building app.
 RUN npm run build
-RUN cp /usr/share/osm-ngui/nginx/nginx.conf /etc/nginx/sites-available/default
+
+FROM ubuntu:18.04 AS FINAL
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get --yes update && \
+    DEBIAN_FRONTEND=noninteractive apt-get --yes install \
+    nginx=1.14.* && \
+    rm -rf /var/lib/apt/lists/*
 
 # Removing the Nginx default page.
 RUN rm -rf /usr/share/nginx/html/*
 
+# Copying Nginx configuration
+COPY --from=BUILD /usr/share/osm-ngui/nginx/nginx.conf /etc/nginx/sites-available/default
+
 # Copying angular build to Nginx default page.
-RUN cp -r /usr/share/osm-ngui/dist/osm/* /usr/share/nginx/html
+COPY --from=BUILD /usr/share/osm-ngui/dist/osm /usr/share/nginx/html
 
 EXPOSE 80