-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDockerfile
46 lines (35 loc) · 925 Bytes
/
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
# ---- Base ----
FROM node:12.15.0-alpine AS base
# set default working directory
WORKDIR /usr/src/app
# ---- Dependencies ----
FROM base AS dependencies
# install dependencies
COPY ./package.json ./package.json
COPY ./package-lock.json ./package-lock.json
RUN npm install --prod
# copy production node_modules aside
RUN cp -R node_modules prod_node_modules
# ---- Builder ----
FROM base AS builder
# no builder yet
# RUN npm install
# ENV NODE_ENV production
# RUN npm run build
# ---- Tester ----
FROM builder AS tester
# no tester yet
# RUN npm ci
# ---- Runner ----
FROM base AS runner
# copy production code
RUN mkdir -p /usr/src/app
# TODO: COPY should be implicit
COPY . /usr/src/app
# copy production dependencies
COPY --from=dependencies /usr/src/app/prod_node_modules ./node_modules
# copy production built
# COPY --from=builder /usr/src/app/dist ./dist
# start
ENTRYPOINT []
CMD ["npm", "run", "start"]