forked from bgrolleman/fixxx-pakjekraam
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
95 lines (73 loc) · 2.59 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
FROM mhart/alpine-node:12.0.0
# Setup certificates for ADP/Motiv
RUN apk add ca-certificates
COPY certificates/adp_rootca.crt /usr/local/share/ca-certificates/adp_rootca.crt
RUN chmod 644 /usr/local/share/ca-certificates/adp_rootca.crt \
&& update-ca-certificates --fresh
RUN mkdir -p /srv /deploy \
&& addgroup -g 1000 node \
&& adduser \
-D \
-G node \
-h /srv \
-s /bin/sh \
-u 1000 \
node \
&& chown -R node:node /srv \
&& chown -R node:node /deploy
ADD ./deploy/docker-migrate.sh /deploy/
RUN chown node:node /deploy/docker-migrate.sh && chmod +x /deploy/docker-migrate.sh
USER node
WORKDIR /srv/
ADD ./package.json ./package-lock.json /srv/
# Add `NPM_TOKEN` right before the first `npm install`
ARG NPM_TOKEN
# Do not create or update `package-lock.json` inside the container,
# and prevent npm from showing a warning about the lock file.
ARG NODE_ENV
# Performance optimization: skip build process during development.
RUN if test "$NODE_ENV" = 'development'; \
then \
echo "//registry.npmjs.org/:_authToken=\"${NPM_TOKEN}\"" > .npmrc \
&& npm install \
&& rm .npmrc \
&& npm cache clean --force 2> /dev/null \
; fi
ADD --chown=node ./ /srv/
# After building the application, remove the `devDependencies`
# for when NODE_ENV is "production".
RUN if test "$NODE_ENV" != 'development'; \
then \
echo "//registry.npmjs.org/:_authToken=\"${NPM_TOKEN}"\" >> .npmrc \
&& NODE_ENV=development npm install \
&& rm .npmrc \
&& npm cache clean --force 2> /dev/null \
&& npm run build \
&& npm prune \
; fi
ARG BUILD_DATE
ARG VCS_REF
LABEL \
org.label-schema.build-date="${BUILD_DATE}" \
org.label-schema.description="Pak je kraam" \
org.label-schema.name="pakjekraam" \
org.label-schema.schema-version="2.0" \
org.label-schema.url="https://github.com/Amsterdam/fixxx-pakjekraam/" \
org.label-schema.usage="https://github.com/Amsterdam/fixxx-pakjekraam/blob/master/README.md" \
org.label-schema.vcs-ref="${VCS_REF}" \
org.label-schema.vcs-url="https://github.com/Amsterdam/fixxx-pakjekraam" \
org.label-schema.vendor="Amsterdam" \
org.label-schema.version="12.0.0"
# Add lowercase proxy settings for compatibility,
# but use uppercase exports for shellcheck compatibility.
# https://unix.stackexchange.com/a/212972
ENV \
HTTP_PROXY=$HTTP_PROXY \
HTTPS_PROXY=$HTTPS_PROXY \
NO_PROXY=$NO_PROXY \
http_proxy=$HTTP_PROXY \
https_proxy=$HTTPS_PROXY \
no_proxy=$NO_PROXY \
NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-cert-adp_rootca.pem
EXPOSE 8080
CMD ["npm", "run", "start"]