diff options
| author | Saumit <justsaumit@protonmail.com> | 2025-09-27 02:14:26 +0530 |
|---|---|---|
| committer | Saumit <justsaumit@protonmail.com> | 2025-09-27 02:14:26 +0530 |
| commit | 82e03978b89938219958032efb1448cc76baa181 (patch) | |
| tree | 626f3e54d52ecd49be0ed3bee30abacc0453d081 /src/frontend/Dockerfile | |
Initial snapshot - OpenTelemetry demo 2.1.3 -f
Diffstat (limited to 'src/frontend/Dockerfile')
| -rw-r--r-- | src/frontend/Dockerfile | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/frontend/Dockerfile b/src/frontend/Dockerfile new file mode 100644 index 0000000..1dbbbc7 --- /dev/null +++ b/src/frontend/Dockerfile @@ -0,0 +1,60 @@ +# Copyright The OpenTelemetry Authors +# SPDX-License-Identifier: Apache-2.0 + +FROM docker.io/library/node:22-slim 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:22-slim 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/nodejs22-debian12:nonroot + +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"] |
