forked from PolymeshAssociation/polymesh-portal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
99 lines (66 loc) · 3.37 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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
################################################################
################################################################
################################################################
ARG DEBIAN_VERSION=bookworm
################################################################
ARG NODE_VERSION=hydrogen
ARG NODE_CONTAINER_TAG=${NODE_VERSION}-${DEBIAN_VERSION}-slim
################################################################
################################################################
################################################################
FROM node:${NODE_CONTAINER_TAG} as builder
################################################################
USER root
RUN npm i -g npm && \
npm i -g yarn --force && \
npm i -g node-gyp
################################################################
# npm package dependencies:
RUN apt-get update && \
apt-get install -y python3 python-is-python3 make g++
################################################################
WORKDIR /srv
################################################################
RUN chown -R node:node /srv/ && \
chmod 0750 /srv/
COPY --chown=node:node package.json yarn.lock /srv/
RUN chmod 0640 /srv/package.json /srv/yarn.lock
################################################################
USER node
RUN yarn install --frozen-lockfile
################################################################
COPY --chown=node:node . /srv
RUN sed -n 's/^\(.*\)=.*$/\1=__\1__/p' .env.development > .env.production && \
bash -ac "source .env.production && yarn build"
RUN cat /srv/.env.production | \
xargs -I{} bash -c "echo '{}' | sed 's/^\\(.*\\)=.*$/\\1/' >> /srv/env.var.list"
################################################################
################################################################
################################################################
FROM nginx:stable-bullseye
################################################################
COPY --chown=root:root --from=builder /srv/dist /usr/share/nginx/html
################################################################
COPY --from=builder /srv/env.var.list /srv/env.var.list
COPY --chown=root:root replace-env-var-placeholders.sh /usr/local/bin/replace-env-var-placeholders.sh
COPY --chown=root:root nginx.conf /etc/nginx/conf.d/default.conf
################################################################
ENV VITE_NODE_URL=VITE_NODE_URL_NOT_SET
ENV VITE_SUBSCAN_URL=VITE_SUBSCAN_URL_NOT_SET
ENV VITE_SUBQUERY_MIDDLEWARE_URL=VITE_SUBQUERY_MIDDLEWARE_URL_NOT_SET
ENV VITE_SUBQUERY_MIDDLEWARE_KEY=VITE_SUBQUERY_MIDDLEWARE_KEY_NOT_SET
ENV VITE_PRIVACY_POLICY_URL=VITE_PRIVACY_POLICY_URL_NOT_SET
ENV VITE_TERMS_OF_SERVICE_URL=VITE_TERMS_OF_SERVICE_URL_NOT_SET
ENV VITE_BRIDGE_URL=VITE_BRIDGE_URL_NOT_SET
ENV VITE_DEVELOPER_APP_URL=VITE_DEVELOPER_APP_URL_NOT_SET
ENV VITE_POLKASSEMBLY_URL=VITE_POLKASSEMBLY_URL_NOT_SET
ENV VITE_ONBOARDING_URL=VITE_ONBOARDING_URL_NOT_SET
ENV VITE_ASSIGN_KEY_URL=VITE_ASSIGN_KEY_URL_NOT_SET
################################################################
EXPOSE 80/tcp
################################################################
CMD replace-env-var-placeholders.sh && \
nginx -g 'daemon off;'
################################################################
################################################################
################################################################