chore(docker): Node.js 20 → 24 LTS
Build and Push Multi-Platform Images / build-and-push (push) Successful in 1m22s

Node 20 ist seit April 2026 End-of-Life. Backend- und Frontend-Images
laufen jetzt auf node:24-alpine; @types/node im Backend auf ^24 angehoben.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bjoernpoettkerandClaude Opus 5.5 committed 2026-10-30 10:00:57 +01:00
1 parent cdcee29c5b
commit 33457c19c2
4 files changed
+12 -23

No files matched your search

+2 -2
View File
@@ -1,5 +1,5 @@
# Backend # Backend
FROM node:20-alpine AS builder FROM node:24-alpine AS builder
RUN apk add --no-cache git RUN apk add --no-cache git
WORKDIR /app WORKDIR /app
COPY package*.json ./ COPY package*.json ./
@@ -8,7 +8,7 @@ COPY . .
RUN npm run build RUN npm run build
# Production # Production
FROM node:20-alpine FROM node:24-alpine
RUN apk add --no-cache ghostscript imagemagick font-liberation fontconfig RUN apk add --no-cache ghostscript imagemagick font-liberation fontconfig
WORKDIR /app WORKDIR /app
COPY --from=builder /app/dist ./dist COPY --from=builder /app/dist ./dist
+8 -19
View File
@@ -55,7 +55,7 @@
"@types/jest": "^30.0.0", "@types/jest": "^30.0.0",
"@types/mailparser": "^3.4.6", "@types/mailparser": "^3.4.6",
"@types/multer": "^2.1.0", "@types/multer": "^2.1.0",
"@types/node": "^22.10.7", "@types/node": "^24.19.2",
"@types/nodemailer": "^8.0.0", "@types/nodemailer": "^8.0.0",
"@types/qrcode": "^1.5.6", "@types/qrcode": "^1.5.6",
"@types/supertest": "^6.0.2", "@types/supertest": "^6.0.2",
@@ -4105,12 +4105,12 @@
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "22.19.15", "version": "24.19.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.2.tgz",
"integrity": "sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==", "integrity": "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"undici-types": "~6.21.0" "undici-types": ">=7.24.0 <7.24.7"
} }
}, },
"node_modules/@types/nodemailer": { "node_modules/@types/nodemailer": {
@@ -13062,21 +13062,10 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/undici": {
"version": "6.25.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-6.25.0.tgz",
"integrity": "sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==",
"license": "MIT",
"optional": true,
"peer": true,
"engines": {
"node": ">=18.17"
}
},
"node_modules/undici-types": { "node_modules/undici-types": {
"version": "6.21.0", "version": "7.24.6",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/universalify": { "node_modules/universalify": {
+1 -1
View File
@@ -70,7 +70,7 @@
"@types/jest": "^30.0.0", "@types/jest": "^30.0.0",
"@types/mailparser": "^3.4.6", "@types/mailparser": "^3.4.6",
"@types/multer": "^2.1.0", "@types/multer": "^2.1.0",
"@types/node": "^22.10.7", "@types/node": "^24.19.2",
"@types/nodemailer": "^8.0.0", "@types/nodemailer": "^8.0.0",
"@types/qrcode": "^1.5.6", "@types/qrcode": "^1.5.6",
"@types/supertest": "^6.0.2", "@types/supertest": "^6.0.2",
+1 -1
View File
@@ -1,5 +1,5 @@
# Build # Build
FROM node:20-alpine AS builder FROM node:24-alpine AS builder
WORKDIR /app WORKDIR /app
COPY package*.json ./ COPY package*.json ./
RUN npm ci RUN npm ci