main
text 32 lines 614 Bytes
Raw
1 # syntax=docker/dockerfile:1
2
3 FROM --platform=$BUILDPLATFORM node:22-slim AS deps
4 WORKDIR /src
5
6 COPY package.json package-lock.json ./
7 RUN --mount=type=cache,target=/root/.npm npm ci
8
9 FROM deps AS frontend-builder
10 COPY . .
11 RUN npm run build
12
13 FROM deps AS api-builder
14 COPY . .
15 RUN npm run build:api
16
17 FROM node:22-alpine AS api
18 WORKDIR /app
19
20 COPY --from=api-builder /src/dist-api ./dist-api
21
22 ENV PORT=8081
23 EXPOSE 8081
24
25 CMD ["node", "dist-api/api/server.js"]
26
27 FROM nginx:1.27-alpine AS frontend
28
29 COPY nginx.conf /etc/nginx/conf.d/default.conf
30 COPY --from=frontend-builder /src/dist /usr/share/nginx/html
31
32 EXPOSE 8080