1- FROM node:16.15.0-alpine as client-builder
1+ FROM node:20.14.0-alpine as node
2+ RUN --mount=type=secret,id=NODE_AUTH_TOKEN \
3+ npm config set //npm.pkg.github.com/:_authToken=$(cat /run/secrets/NODE_AUTH_TOKEN)
4+ RUN npm config set @navikt:registry=https://npm.pkg.github.com
5+
6+ # build client
7+ FROM node as client-builder
28WORKDIR /app
39COPY client/package.json client/package-lock.json ./
4- RUN --mount=type=secret,id=NODE_AUTH_TOKEN \
5- echo '//npm.pkg.github.com/:_authToken=' $(cat /run/secrets/NODE_AUTH_TOKEN) >> .npmrc
610RUN npm ci
711COPY client .
8- RUN npm run && npm run build
12+ RUN npm run build
913
10- FROM node:16.15.0-alpine as server-builder
14+ # build server
15+ FROM node as server-builder
1116WORKDIR /app
1217COPY server/package.json server/package-lock.json ./
13- RUN --mount=type=secret,id=NODE_AUTH_TOKEN \
14- NODE_AUTH_TOKEN=$(cat /run/secrets/NODE_AUTH_TOKEN) \
15- npm ci
18+ RUN npm ci
1619COPY server .
17- RUN npm run && npm run build
20+ RUN npm run build
1821
19- FROM node:16.15.0-alpine as server-dependencies
22+ # install server dependencies
23+ FROM node as server-dependencies
2024WORKDIR /app
2125COPY server/package.json server/package-lock.json ./
22- RUN npm install --omit=dev
23-
24- FROM gcr.io/distroless/nodejs:16 as runtime
26+ RUN npm ci --omit dev
2527
28+ # runtime
29+ FROM gcr.io/distroless/nodejs20-debian12 as runtime
2630WORKDIR /app
2731
28- ENV NODE_ENV=production
29- EXPOSE 5000
32+ ARG NODE_ENV=production
33+ ENV NODE_ENV=${NODE_ENV}
34+ ENV TZ="Europe/Oslo"
35+ EXPOSE 3000
3036
3137COPY --from=client-builder /app/dist ./client/dist
3238COPY --from=server-builder /app/dist ./server/dist
@@ -35,4 +41,4 @@ WORKDIR /app/server
3541
3642COPY --from=server-dependencies /app/node_modules ./node_modules
3743
38- CMD [ "-r" , "source-map-support/register " , "-r" , "dotenv/config" , "dist/server.js" ]
44+ CMD [ "--enable-source-maps " , "-r" , "dotenv/config" , "dist/server.js" ]
0 commit comments