-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDockerfile
More file actions
48 lines (31 loc) · 1.53 KB
/
Copy pathDockerfile
File metadata and controls
48 lines (31 loc) · 1.53 KB
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
47
48
FROM --platform=$BUILDPLATFORM node:26.7.0 AS frontend
WORKDIR /usr/src/app
COPY package*.json ./
COPY packages/frontend/package.json packages/frontend/
RUN --mount=type=cache,target=/root/.npm npm ci --no-audit --no-fund
COPY packages/frontend packages/frontend
RUN npm run build -w frontend
FROM node:26.7.0 AS dependencies
WORKDIR /usr/src/app
COPY package*.json ./
COPY packages/clients/base-client/package.json packages/clients/base-client/
COPY packages/clients/bme280/package.json packages/clients/bme280/
COPY packages/clients/dht22/package.json packages/clients/dht22/
COPY packages/clients/dirigera-universal/package.json packages/clients/dirigera-universal/
COPY packages/clients/hcsr501/package.json packages/clients/hcsr501/
COPY packages/clients/mijia/package.json packages/clients/mijia/
COPY packages/clients/senseair/package.json packages/clients/senseair/
COPY packages/clients/parasoll/package.json packages/clients/parasoll/
COPY packages/clients/vallhorn/package.json packages/clients/vallhorn/
COPY packages/clients/weather/package.json packages/clients/weather/
COPY packages/logger/package.json packages/logger/
COPY packages/backend/package.json packages/backend/
RUN --mount=type=cache,target=/root/.npm npm ci --omit=dev --no-audit --no-fund
COPY . .
FROM node:26.7.0-slim AS target
ENV NODE_ENV=production
WORKDIR /usr/src/app
COPY --from=dependencies /usr/src/app ./
COPY --from=frontend /usr/src/app/packages/frontend/build ./packages/frontend/build
WORKDIR /usr/src/app/packages/backend
CMD ["node", "src/index.js"]