Problem
docker compose up -d fails with:
docker compose up -d
[+] Running 0/2
- spottransfer-backend Warning 1.6s
- spottransfer-frontend Warning 1.5s
[+] Building 16.8s (15/22)
=> [spottransfer-frontend:latest internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 843B 0.0s
=> [spottransfer-backend:latest internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 999B 0.0s
=> [spottransfer-frontend:latest internal] load metadata for docker.io/library/node:20-alpine 2.4s
=> [spottransfer-backend:latest internal] load metadata for docker.io/library/python:3.12-slim 2.4s
=> [spottransfer-frontend:latest internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [spottransfer-backend:latest internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [spottransfer-frontend:latest build 1/7] FROM docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c 9.3s
=> => resolve docker.io/library/node:20-alpine@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293 0.1s
=> => sha256:11cedc39e663e7c5d5cb9cc77a461a0d2adc25537b94e6831a6108f09cb2001b 6.52kB / 6.52kB 0.0s
=> => sha256:6a0ac1617861a677b045b7ff88545213ec31c0ff08763195a70a4a5adda577bb 3.86MB / 3.86MB 0.6s
=> => sha256:4feea04c154301db6f4a496efa397b3db96603b1c009c797cfdde77bea8b3287 43.23MB / 43.23MB 7.8s
=> => sha256:b2cbbfe903b0821005780971ddc5892edcc4ce74c5a48d82e1d2b382edac3122 1.26MB / 1.26MB 0.9s
=> => sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293 7.67kB / 7.67kB 0.0s
=> => sha256:afdf98210b07b586eb71fa22ba2e432e058e4cd1304d31ed60888755b8c865fb 1.72kB / 1.72kB 0.0s
=> => extracting sha256:6a0ac1617861a677b045b7ff88545213ec31c0ff08763195a70a4a5adda577bb 0.1s
=> => sha256:fff4e2c1b189bf87d63ad8bd07f7f4eb288d6f2b6a07a8bb44c60e8c075d2096 445B / 445B 0.8s
=> => extracting sha256:4feea04c154301db6f4a496efa397b3db96603b1c009c797cfdde77bea8b3287 1.1s
=> => extracting sha256:b2cbbfe903b0821005780971ddc5892edcc4ce74c5a48d82e1d2b382edac3122 0.0s
=> => extracting sha256:fff4e2c1b189bf87d63ad8bd07f7f4eb288d6f2b6a07a8bb44c60e8c075d2096 0.0s
=> [spottransfer-frontend:latest internal] load build context 0.0s
=> => transferring context: 1.92kB 0.0s
=> [spottransfer-backend:latest 1/6] FROM docker.io/library/python:3.12-slim@sha256:d764629ce0ddd8c71fd371e9901efb324a95789d 14.3s
=> => resolve docker.io/library/python:3.12-slim@sha256:d764629ce0ddd8c71fd371e9901efb324a95789d2315a47db7e4d27e78f1b0e9 0.1s
=> => sha256:d764629ce0ddd8c71fd371e9901efb324a95789d2315a47db7e4d27e78f1b0e9 10.37kB / 10.37kB 0.0s
=> => sha256:c2d8472b831337ab296a8ce652e1ba786e9e3034fc445dc58b50a7f5251f0003 1.75kB / 1.75kB 0.0s
=> => sha256:2931a495646803fbd78108564c5d73260b6b75539aa7adc8283d038fb22cc66b 5.65kB / 5.65kB 0.0s
=> => sha256:72c03230f1363a3fb61d2f98504cf168bad3fe22f511ad2005dc021515d7ce97 29.79MB / 29.79MB 12.1s
=> => sha256:6ec7f4e699d76dee8107525bf275ad5506fc96ae25aeaf21fbd1633853ed49a2 1.29MB / 1.29MB 1.5s
=> => sha256:4b6b2afbcb1ea17577af7be93b9dfd8431a3e3a1dc834ede13df40147db94d77 12.11MB / 12.11MB 4.9s
=> => sha256:6dc8148c4b61cf7dd8cff2c6146ffb5855f3d0cc2770312e6795a8fd68072e02 249B / 249B 5.1s
=> => extracting sha256:72c03230f1363a3fb61d2f98504cf168bad3fe22f511ad2005dc021515d7ce97 1.0s
=> => extracting sha256:6ec7f4e699d76dee8107525bf275ad5506fc96ae25aeaf21fbd1633853ed49a2 0.1s
=> => extracting sha256:4b6b2afbcb1ea17577af7be93b9dfd8431a3e3a1dc834ede13df40147db94d77 0.5s
=> => extracting sha256:6dc8148c4b61cf7dd8cff2c6146ffb5855f3d0cc2770312e6795a8fd68072e02 0.0s
=> [spottransfer-backend:latest internal] load build context 0.1s
=> => transferring context: 280B 0.0s
=> [spottransfer-frontend:latest build 2/7] WORKDIR /app 0.2s
=> [spottransfer-frontend:latest build 3/7] RUN corepack enable && corepack prepare pnpm@latest --activate 3.8s
=> [spottransfer-frontend:latest build 4/7] COPY package.json pnpm-lock.yaml ./ 0.1s
=> ERROR [spottransfer-frontend:latest build 5/7] RUN pnpm install --frozen-lockfile 0.8s
=> [spottransfer-backend:latest 2/6] WORKDIR /app 0.1s
------
> [spottransfer-frontend:latest build 5/7] RUN pnpm install --frozen-lockfile:
#0 0.418 warn: This version of pnpm requires at least Node.js v22.13
#0 0.418 warn: The current version of Node.js is v20.20.2
#0 0.418 warn: Visit https://r.pnpm.io/comp to see the list of past pnpm versions with respective Node.js version support.
#0 0.700 node:internal/modules/cjs/loader:1031
#0 0.700 throw new ERR_UNKNOWN_BUILTIN_MODULE(request);
#0 0.700 ^
#0 0.700
#0 0.700 Error [ERR_UNKNOWN_BUILTIN_MODULE]: No such built-in module: node:sqlite
#0 0.700 at Module._load (node:internal/modules/cjs/loader:1031:13)
#0 0.700 at Module.require (node:internal/modules/cjs/loader:1289:19)
#0 0.700 at require (node:internal/modules/helpers:182:18)
#0 0.700 at ../store/index/lib/index.js (file:///root/.cache/node/corepack/v1/pnpm/11.7.0/dist/pnpm.mjs:54379:25)
#0 0.700 at __init (file:///root/.cache/node/corepack/v1/pnpm/11.7.0/dist/pnpm.mjs:17:58)
#0 0.700 at ../resolving/npm-resolver/lib/index.js (file:///root/.cache/node/corepack/v1/pnpm/11.7.0/dist/pnpm.mjs:65323:5)
#0 0.700 at __init (file:///root/.cache/node/corepack/v1/pnpm/11.7.0/dist/pnpm.mjs:17:58)
#0 0.700 at ../workspace/projects-graph/lib/index.js (file:///root/.cache/node/corepack/v1/pnpm/11.7.0/dist/pnpm.mjs:65461:5)
#0 0.700 at __init (file:///root/.cache/node/corepack/v1/pnpm/11.7.0/dist/pnpm.mjs:17:58)
#0 0.700 at ../workspace/projects-filter/lib/index.js (file:///root/.cache/node/corepack/v1/pnpm/11.7.0/dist/pnpm.mjs:72968:5) {
#0 0.700 code: 'ERR_UNKNOWN_BUILTIN_MODULE'
#0 0.700 }
#0 0.700
#0 0.700 Node.js v20.20.2
------
failed to solve: process "/bin/sh -c pnpm install --frozen-lockfile" did not complete successfully: exit code: 1
Root cause
The frontend Dockerfile uses corepack prepare pnpm@latest --activate, which recently resolved to pnpm 11.7.0. This version requires Node ≥22.13, but the image uses node:20-alpine (Node 20.20.2).
Solution
Pin pnpm to v9, which matches pnpm-lock.yaml lockfileVersion 9.0 and is compatible with Node 20:
frontend/Dockerfile, Line 7
# Previously: RUN corepack enable && corepack prepare pnpm@latest --activate
# Fix:
RUN corepack enable && corepack prepare pnpm@9 --activate
Notes
Alternatives:
- could add
"packageManager": "pnpm@9.x.x" to package.json
- Could update
Problem
docker compose up -dfails with:Root cause
The frontend Dockerfile uses
corepack prepare pnpm@latest --activate, which recently resolved to pnpm 11.7.0. This version requires Node ≥22.13, but the image usesnode:20-alpine(Node 20.20.2).Solution
Pin pnpm to v9, which matches
pnpm-lock.yamllockfileVersion 9.0 and is compatible with Node 20:frontend/Dockerfile, Line 7
Notes
Alternatives:
"packageManager": "pnpm@9.x.x"topackage.json