-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
43 lines (29 loc) · 915 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
FROM node:18 as builder
ARG GITHUB_ACCESS_TOKEN
WORKDIR /usr/src/app
COPY yarn.lock tsconfig.json package*.json *.yml ./
COPY deploy.npmrc .npmrc
COPY src ./src
COPY resources ./resources
RUN yarn install && yarn build
# Install dependencies
FROM node:18-alpine as deps
ARG GITHUB_ACCESS_TOKEN
WORKDIR /deps
COPY deploy.npmrc .npmrc
COPY package.json .
COPY yarn.lock .
RUN yarn install --production --ignore-optional
# Create minimal production image from builder.
# FROM node:18-alpine
FROM gcr.io/distroless/nodejs:18
WORKDIR /usr/src/app
EXPOSE 80
ENV NODE_ENV=production
ENV PORT=80
COPY --from=deps /deps/node_modules /usr/src/app/node_modules/
COPY --from=deps /deps/package.json /usr/src/package.json
COPY --from=builder /usr/src/app/dist ./dist
COPY --from=builder /usr/src/app/openapi.yml /usr/src/app/openapi.yml
COPY --from=builder /usr/src/app/resources ./resources
CMD ["dist/index.js"]