-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDockerfile
84 lines (71 loc) · 1.89 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# CLIENT
FROM node:20.4.0-alpine as client
ARG NODE_ENV=production
ARG REACT_APP_API_ADDRESS
ARG REACT_APP_ESRI_API_KEY
ARG REACT_APP_HOSTNAME
ARG REACT_APP_TECHNICAL_CONTACT
ARG REACT_APP_TILESERV_BASE_URL
WORKDIR /client
RUN echo "NODE_ENV=$NODE_ENV" > .env
RUN echo "REACT_APP_API_ADDRESS=$REACT_APP_API_ADDRESS" >> .env
RUN echo "REACT_APP_ESRI_API_KEY=$REACT_APP_ESRI_API_KEY" >> .env
RUN echo "REACT_APP_HOSTNAME=$REACT_APP_HOSTNAME" >> .env
RUN echo "REACT_APP_TECHNICAL_CONTACT=$REACT_APP_TECHNICAL_CONTACT" >> .env
RUN echo "REACT_APP_TILESERV_BASE_URL=$REACT_APP_TILESERV_BASE_URL" >> .env
COPY client .
RUN npm ci --force --omit=dev
RUN npm run build
# API
FROM node:20.4.0-alpine
ARG ALLOWED_ORIGINS
ARG DEPLOYMENT_ENV=production
ARG HOSTNAME
ARG KEY
ARG MONGO_DB
ARG MONGO_HOST
ARG MONGO_PASSWORD
ARG MONGO_USERNAME
ARG NODE_ENV=production
ARG ODP_HOSTNAME
ARG ODP_SSO_CLIENT_ID
ARG ODP_SSO_CLIENT_REDIRECT
ARG ODP_SSO_CLIENT_SCOPES
ARG ODP_SSO_CLIENT_SECRET
ARG PASSPORT_SSO_SESSION_ID
ARG PG_DB
ARG PG_HOST
ARG PG_PASSWORD
ARG PG_PORT
ARG PG_USERNAME
ARG PORT
ARG TZ=utc
ENV ALLOWED_ORIGINS=$ALLOWED_ORIGINS
ENV DEPLOYMENT_ENV=$DEPLOYMENT_ENV
ENV HOSTNAME=$HOSTNAME
ENV KEY=$KEY
ENV MONGO_DB=$MONGO_DB
ENV MONGO_HOST=$MONGO_HOST
ENV MONGO_PASSWORD=$MONGO_PASSWORD
ENV MONGO_USERNAME=$MONGO_USERNAME
ENV NODE_ENV=$NODE_ENV
ENV ODP_HOSTNAME=$ODP_HOSTNAME
ENV ODP_SSO_CLIENT_ID=$ODP_SSO_CLIENT_ID
ENV ODP_SSO_CLIENT_REDIRECT=$ODP_SSO_CLIENT_REDIRECT
ENV ODP_SSO_CLIENT_SCOPES=$ODP_SSO_CLIENT_SCOPES
ENV ODP_SSO_CLIENT_SECRET=$ODP_SSO_CLIENT_SECRET
ENV PASSPORT_SSO_SESSION_ID=$PASSPORT_SSO_SESSION_ID
ENV PG_DB=$PG_DB
ENV PG_HOST=$PG_HOST
ENV PG_PASSWORD=$PG_PASSWORD
ENV PG_PORT=$PG_PORT
ENV PG_USERNAME=$PG_USERNAME
ENV PORT=$PORT
ENV TZ=$TZ
WORKDIR /app
COPY api .
COPY --from=client /client/build /app/client
RUN npm ci --force --omit=dev
EXPOSE 3000
ENTRYPOINT [ "node" ]
CMD ["--no-warnings", "src"]