blob: c16993590b296da67a03e36c3064194779135160 [file] [log] [blame]
RehanRazaf9523c12021-01-08 17:54:16 +01001# ============LICENSE_START===============================================
2# Copyright (C) 2020 Nordix Foundation. All rights reserved.
3# ========================================================================
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15# ============LICENSE_END=================================================
16#
17### STAGE 1: Build App ###
18FROM node:14-alpine AS stage1
19WORKDIR /usr/src/app
ecaiyanlinuxac52ed82021-02-23 13:48:13 +010020COPY package.json ./
RehanRazaf9523c12021-01-08 17:54:16 +010021RUN npm install
22COPY . .
ecaiyanlinuxac52ed82021-02-23 13:48:13 +010023
24# RUN karma test
25RUN apk update
26RUN apk add chromium
27RUN export CHROME_BIN=/usr/bin/chromium-browser
28ENV CHROME_BIN /usr/bin/chromium-browser
29RUN ./ng test --browsers ChromeHeadless --code-coverage=true --watch=false
30
elinuxhenrik75f920d2021-06-04 15:45:41 +020031RUN npm run-script build:prod
RehanRazaf9523c12021-01-08 17:54:16 +010032
33### STAGE 2: Run App ###
34FROM nginx:alpine
35COPY nginx.conf /etc/nginx/nginx.conf
ecaiyanlinux1925d022022-01-26 13:44:54 +010036
37## use build-in nginx user
38ARG user=nginx
39
40## change ownership of nginx config files
41RUN chown -R $user /var/log/nginx
42RUN chown -R $user /etc/nginx/conf.d
43RUN chown -R $user /var/cache/nginx/
44RUN touch /var/run/nginx.pid
45RUN chown -R $user /var/run/nginx.pid
46
47USER ${user}
48
49COPY --chown=$user --from=stage1 /usr/src/app/dist/controlpanelApp /usr/share/nginx/html