|
1 | | -FROM node:20.14.0-alpine as node |
| 1 | +FROM node:lts-alpine AS node |
2 | 2 | RUN --mount=type=secret,id=NODE_AUTH_TOKEN \ |
3 | 3 | npm config set //npm.pkg.github.com/:_authToken=$(cat /run/secrets/NODE_AUTH_TOKEN) |
4 | 4 | RUN npm config set @navikt:registry=https://npm.pkg.github.com |
5 | 5 |
|
6 | 6 | # build client |
7 | | -FROM node as client-builder |
| 7 | +FROM node AS client-builder |
8 | 8 | WORKDIR /app |
9 | 9 | COPY client/package.json client/package-lock.json ./ |
10 | 10 | RUN npm ci |
11 | 11 | COPY client . |
12 | 12 | RUN npm run build |
13 | 13 |
|
14 | 14 | # build server |
15 | | -FROM node as server-builder |
| 15 | +FROM golang:1.25.1-alpine AS server-builder |
16 | 16 | WORKDIR /app |
17 | | -COPY server/package.json server/package-lock.json ./ |
18 | | -RUN npm ci |
19 | | -COPY server . |
20 | | -RUN npm run build |
21 | | - |
22 | | -# install server dependencies |
23 | | -FROM node as server-dependencies |
24 | | -WORKDIR /app |
25 | | -COPY server/package.json server/package-lock.json ./ |
26 | | -RUN npm ci --omit dev |
| 17 | +COPY server ./ |
| 18 | +RUN go build . |
27 | 19 |
|
28 | 20 | # runtime |
29 | | -FROM gcr.io/distroless/nodejs20-debian12 as runtime |
| 21 | +FROM gcr.io/distroless/static-debian12 AS runtime |
30 | 22 | WORKDIR /app |
31 | 23 |
|
32 | | -ARG NODE_ENV=production |
33 | | -ENV NODE_ENV=${NODE_ENV} |
34 | 24 | ENV TZ="Europe/Oslo" |
35 | | -EXPOSE 3000 |
36 | | - |
37 | | -COPY --from=client-builder /app/dist ./client/dist |
38 | | -COPY --from=server-builder /app/dist ./server/dist |
39 | | - |
40 | | -WORKDIR /app/server |
| 25 | +EXPOSE 5000 |
41 | 26 |
|
42 | | -COPY --from=server-dependencies /app/node_modules ./node_modules |
| 27 | +COPY --from=client-builder /app/dist ./dist |
| 28 | +COPY --from=server-builder /app/hm-brilleavtale-frontend . |
43 | 29 |
|
44 | | -CMD [ "--enable-source-maps", "-r", "dotenv/config", "dist/server.mjs" ] |
| 30 | +CMD [ "./hm-brilleavtale-frontend" ] |
0 commit comments