Newer
Older
# Copyright 2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH.
# SPDX-License-Identifier: MIT
FROM node:22.12.0@sha256:35a5dd72bcac4bce43266408b58a02be6ff0b6098ffa6f5435aeea980a8951d7 as builder
LABEL maintainer="Sebastian Kawelke <sebatian.kawelke@l3montree.com"
# checkov:skip=CKV_DOCKER_2
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
# Disable telemetry
ENV NEXT_TELEMETRY_DISABLED 1
ENV NODE_ENV production
WORKDIR /usr/app/
ENV PORT 3000
EXPOSE 3000
ENV NEXT_PUBLIC_ENVIRONMENT production
COPY package-lock.json .
COPY package.json .
RUN npm ci
COPY . .
ENV NEXT_SHARP_PATH=/usr/app/node_modules/sharp
# Build
RUN npm run build
RUN mkdir -p /usr/app/.next/cache/images && chown -R 53111:53111 /usr/app/.next/cache/images
FROM gcr.io/distroless/nodejs22-debian12:nonroot@sha256:0ae346e809704467179aee46047b46e3dfac399baa98617a58ad1ed53dd689a1
USER 53111
WORKDIR /usr/app/
ENV PORT 3000
ENV NODE_ENV production
ENV NEXT_TELEMETRY_DISABLED 1
COPY --from=builder --chown=53111:53111 /usr/app/.next /usr/app/.next
COPY --from=builder /usr/app/node_modules /usr/app/node_modules
COPY --from=builder /usr/app/package.json /usr/app/package.json
COPY --from=builder --chown=53111:53111 /usr/app/public /usr/app/public
CMD [ "./node_modules/next/dist/bin/next", "start" ]