Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# pinned by digest.

# Stage 1: Install all dependencies (including dev deps) for the build.
FROM node:24-alpine@sha256:06d7adf3e0ef61a13f1d28682726366f97a15aa1888c934d3ecec86c33918b53 AS deps
FROM node:24-alpine@sha256:a34ab6d7f6f4813f4d0c5469d74685604b962fbdbf5793a7bc7b4998ecb867c8 AS deps
WORKDIR /app
COPY package.json package-lock.json turbo.json ./
COPY packages/shared/package.json packages/shared/
Expand Down Expand Up @@ -46,7 +46,7 @@ RUN if [ "$THINKER_PRICING_SNAPSHOT" != "false" ]; then \
# optionalDependencies; without it, npm hoists @esbuild/linux-x64 (a Go
# binary) into node_modules even though `--omit=dev` strips its parent,
# and CVE scanners then flag the embedded Go stdlib.
FROM node:24-slim@sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205 AS prod-deps
FROM node:24-slim@sha256:01d566e8d94d8c619591d78652babfccd3c6992a3dffa9ed5ab39e11cf6c70e9 AS prod-deps
WORKDIR /app
RUN mkdir -p /app/request-recordings
COPY package.json package-lock.json ./
Expand Down Expand Up @@ -77,7 +77,7 @@ RUN --mount=type=cache,target=/root/.npm \

# Stage 4: Distroless runtime. Runs as the built-in `nonroot` user (UID
# 65532) by default. No shell, no apk/apt, minimal CVE surface.
FROM gcr.io/distroless/nodejs24-debian13:nonroot@sha256:cb606325b7ec4af55462cb0b424a53b452a5b4a894ffe841fcf1048d216fb9f8 AS runtime
FROM gcr.io/distroless/nodejs24-debian13:nonroot@sha256:088a01637f22908632ba09018be2e0b516f2fa6f7869c191d29491139db43c78 AS runtime
WORKDIR /app

# No base.digest label: a hand-written digest drifts from the FROM pin above
Expand Down
Loading