-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
55 lines (37 loc) · 1.25 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
# Base Stage
FROM node:18.12.1-alpine3.15 AS base
WORKDIR /home/node/app
ENV NODE_ENV="development"
ENV CI=true
RUN wget -q -t3 'https://packages.doppler.com/public/cli/rsa.8004D9FF50437357.key' -O /etc/apk/keys/cli@doppler-8004D9FF50437357.rsa.pub && \
echo 'https://packages.doppler.com/public/cli/alpine/any-version/main' | tee -a /etc/apk/repositories
RUN apk add -u --no-cache \
dumb-init \
fontconfig \
jq \
nodejs \
doppler
COPY --chown=node:node yarn.lock .
COPY --chown=node:node package.json .
COPY --chown=node:node .yarn/ .yarn/
COPY --chown=node:node .yarnrc.yml .
# Remove global cache config line
RUN echo "$(tail -n +2 .yarnrc.yml)" > .yarnrc.yml
ENTRYPOINT [ "dumb-init", "--" ]
# Build Stage
FROM base AS builder
WORKDIR /home/node/app
ENV NODE_ENV="development"
COPY --chown=node:node tsconfig.json tsconfig.json
RUN yarn install --immutable
COPY --chown=node:node src/ src/
RUN yarn run build
# Runner Stage
FROM base AS runner
WORKDIR /home/node/app
ENV NODE_ENV="production"
COPY --chown=node:node --from=builder /home/node/app/dist dist
RUN yarn workspaces focus --all --production
RUN chown node:node /home/node/app
USER node
CMD [ "doppler", "run", "--", "yarn", "start" ]