diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..5a9fb25 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +.idea/ +dist/ +node_modules/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ee2cee7..fc7de27 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -44,6 +44,13 @@ build: expire_in: 1 days paths: - dist/cic-staff-client + cache: + key: + files: + - package-lock.json + paths: + - node_modules + policy: pull test:karma: stage: test @@ -57,6 +64,13 @@ test:karma: artifacts: paths: - coverage/ + cache: + key: + files: + - package-lock.json + paths: + - node_modules + policy: pull test:e2e: stage: test @@ -66,6 +80,13 @@ test:e2e: - docker script: - ng e2e + cache: + key: + files: + - package-lock.json + paths: + - node_modules + policy: pull test:nglint: stage: test @@ -74,6 +95,13 @@ test:nglint: - docker script: - ng lint + cache: + key: + files: + - package-lock.json + paths: + - node_modules + policy: pull build_app: stage: build_and_test diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..550cbd0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +### STAGE 1: Build ### +# defining version of the base image +FROM node:15.1.0-alpine as build + +# defining work directory +WORKDIR /app + +# copying the json files into the image +COPY package*.json ./ + +RUN npm install + +# copying rest of project +COPY . . + +# running build script +RUN npm run build --prod + +### STAGE 2: Setup ### +# defining nginx image version +FROM nginx:1.19.4-alpine + +## Remove default nginx website +RUN rm -rf /usr/share/nginx/html/* + +# copy dist output from our first image +COPY --from=build /app/dist/cic-staff-client /usr/share/nginx/html + +# copy nginx configuration file +COPY nginx.conf /etc/nginx/conf.d/default.conf + +EXPOSE 80 443 + +CMD [ "nginx", "-g", "daemon off;" ] diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..1a12d7b --- /dev/null +++ b/nginx.conf @@ -0,0 +1,8 @@ +server { + listen 80; + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html =404; + } +}