From 7b4f9064c800ede837842305ce97dbec8948bc91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matth=C3=A4us=20Mayer?= Date: Fri, 2 Mar 2018 09:01:34 +0100 Subject: [PATCH] Introduce docker for web app --- web/.dockerignore | 2 ++ web/Dockerfile | 17 +++++++++++++++++ web/nginx/default.conf | 20 ++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 web/.dockerignore create mode 100644 web/Dockerfile create mode 100644 web/nginx/default.conf diff --git a/web/.dockerignore b/web/.dockerignore new file mode 100644 index 00000000..651665bb --- /dev/null +++ b/web/.dockerignore @@ -0,0 +1,2 @@ +node_modules +.git diff --git a/web/Dockerfile b/web/Dockerfile new file mode 100644 index 00000000..eab3b7dc --- /dev/null +++ b/web/Dockerfile @@ -0,0 +1,17 @@ +FROM node:9-alpine as build +COPY package.json package-lock.json ./ +RUN npm set progress=false \ + && npm config set depth 0 \ + && npm cache clean --force +RUN npm i \ + && mkdir /app \ + && cp -R ./node_modules /app +WORKDIR /app +COPY . . +RUN $(npm bin)/ng build --prod --build-optimizer + +FROM nginx:1.13.3-alpine +RUN rm -rf /var/www/html/* +COPY nginx/default.conf /etc/nginx/conf.d/ +COPY --from=build /app/dist /var/www/html +CMD ["nginx", "-g", "daemon off;"] diff --git a/web/nginx/default.conf b/web/nginx/default.conf new file mode 100644 index 00000000..fc9eda49 --- /dev/null +++ b/web/nginx/default.conf @@ -0,0 +1,20 @@ +server { + listen 80; + sendfile on; + default_type application/octet-stream; + gzip on; + gzip_http_version 1.1; + gzip_disable "MSIE [1-6]\."; + gzip_min_length 256; + gzip_vary on; + gzip_proxied expired no-cache no-store private auth; + gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; + gzip_comp_level 9; + + root /var/www/html; + + location / { + try_files $uri $uri/ /index.html =404; + } + +}