forked from FAIMS/FAIMS3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
49 lines (42 loc) · 1.79 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
FROM node:lts-alpine3.14@sha256:889139aa824c8b9dd29938eecfd300d51fc2e984f9cd03df391bcfbe9cf10b53 as build
ARG REACT_APP_CLUSTER_ADMIN_GROUP_NAME
ARG REACT_APP_COMMIT_VERSION
ARG REACT_APP_DIRECTORY_HOST
ARG REACT_APP_POUCH_BATCH_SIZE
ARG REACT_APP_POUCH_BATCHES_LIMIT
ARG REACT_APP_PRODUCTION_BUILD
ARG REACT_APP_SERVER
ARG REACT_APP_SERVICES
ARG REACT_APP_SHOW_MINIFAUXTON
ARG REACT_APP_SHOW_NEW_NOTEBOOK
ARG REACT_APP_SHOW_WIPE
ARG REACT_APP_TAG
ARG REACT_APP_USE_HTTPS
ARG REACT_APP_USE_REAL_DATA
RUN apk --no-cache add python3=~3.9 make=~4.3 g++=~10.3
# we need as build due to line 22
# https://snyk.io/blog/10-best-practices-to-containerize-nodejs-web-applications-with-docker/
WORKDIR /app
COPY --chown=node:node ./ /app/
RUN npm ci
#COPY --chown=node:node package*.json /app/
# https://github.com/FAIMS/FAIMS3/wiki/building-the-webapp
ENV NODE_ENV production
#ENV REACT_APP_COMMIT_VERSION $REACT_APP_COMMIT_VERSION
#RUN sh /app/bin/setVersionExport.sh
ENV REACT_APP_PRODUCTION_BUILD true
ENV REACT_APP_USE_REAL_DATA false
#REACT_APP_USE_REAL_DATA: This configures whether to include local test data in the system or not. REACT_APP_USE_REAL_DATA=true disables test data.
ENV REACT_APP_USE_HTTPS true
#ENV REACT_APP_DIRECTORY_HOST $REACT_APP_DIRECTORY_HOST
ENV REACT_APP_DIRECTORY_PORT 443
# https://blog.knoldus.com/deployment-with-docker-in-ionic/
#USER node
# They say to run with min privs, but since we're building and not running, I CBF'd right now.
RUN npm run-script build
FROM nginx:mainline-alpine@sha256:8e38930f0390cbd79b2d1528405fb17edcda5f4a30875ecf338ebaa598dc994e
RUN rm -rf /usr/share/nginx/html/*
# not /app/www but /app/build because react
COPY ./.nginx/nginx.conf /etc/nginx/nginx.conf
COPY --from=build /app/build/ /usr/share/nginx/html/