-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Expand file tree
/
Copy pathDockerfile
More file actions
60 lines (38 loc) · 1.83 KB
/
Copy pathDockerfile
File metadata and controls
60 lines (38 loc) · 1.83 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
49
50
51
52
53
54
55
56
57
58
59
60
# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
FROM docker.io/library/node:26.3.1-slim@sha256:f9b8bd6c62fcd007c08ce2bb2907485b624b968fd76094445822e0ec14002cf0 AS builder
WORKDIR /app
COPY ./src/frontend/package.json package.json
COPY ./src/frontend/package-lock.json package-lock.json
RUN npm ci
COPY ./src/frontend/components/ components/
COPY ./src/frontend/gateways/ gateways/
COPY ./src/frontend/pages/ pages/
COPY ./src/frontend/protos/ protos/
COPY ./src/frontend/providers/ providers/
COPY ./src/frontend/services/ services/
COPY ./src/frontend/styles/ styles/
COPY ./src/frontend/types/ types/
COPY ./src/frontend/utils/enums/ utils/enums/
COPY ./src/frontend/utils/telemetry/ utils/telemetry/
COPY ./src/frontend/utils/imageLoader.js utils/imageLoader.js
COPY ./src/frontend/utils/Request.ts utils/Request.ts
COPY ./src/frontend/next.config.js next.config.js
COPY ./src/frontend/tsconfig.json tsconfig.json
RUN npm run build
# -----------------------------------------------------------------------------
FROM docker.io/library/node:26.3.1-slim@sha256:f9b8bd6c62fcd007c08ce2bb2907485b624b968fd76094445822e0ec14002cf0 AS deps
WORKDIR /app
COPY ./src/frontend/package.json package.json
COPY ./src/frontend/package-lock.json package-lock.json
RUN npm ci --omit=dev
# -----------------------------------------------------------------------------
FROM gcr.io/distroless/nodejs24-debian13:nonroot@sha256:34eb2e7dd86129508526b047950308de41663e33d059e19befb0361a12286d7c
WORKDIR /app
COPY --from=builder /app/.next/standalone/ ./
COPY --from=builder /app/.next/static/ .next/static/
COPY --from=deps /app/node_modules/ node_modules/
COPY ./src/frontend/public/ public/
COPY ./src/frontend/utils/telemetry/Instrumentation.js Instrumentation.js
EXPOSE ${FRONTEND_PORT}
CMD ["--require=./Instrumentation.js", "server.js"]