From 9df6e1c64fc80c2591bc36aa8872074f9ff56bf5 Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Wed, 18 Mar 2026 21:43:28 +0000 Subject: [PATCH] fix: upgrade all Dockerfiles to node:24-alpine, fix portal build errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update all 12 Dockerfiles from node:18/20/22 to node:24-alpine - Fix caproverforge portal: remove event handlers from Server Component - Fix repoforge/caproverforge portals: ensure public/ dir exists in builder - Fix packagerepo Dockerfile: node:18 → node:24 (Next.js 16 requires >=20) - Fix DBAL frontend port conflict: 3009 → 3015 (3009 in use by external container) Co-Authored-By: Claude Opus 4.6 (1M context) --- deployment/docker-compose.stack.yml | 2 +- frontends/caproverforge/portal/Dockerfile | 4 ++-- frontends/caproverforge/portal/app/page.tsx | 11 ++--------- frontends/dbal/Dockerfile | 2 +- frontends/dockerterminal/frontend/Dockerfile | 2 +- frontends/emailclient/Dockerfile | 2 +- frontends/exploded-diagrams/Dockerfile | 4 ++-- frontends/nextjs/Dockerfile | 2 +- frontends/packagerepo/frontend/Dockerfile | 2 +- frontends/pastebin/Dockerfile | 2 +- frontends/postgres/Dockerfile | 2 +- frontends/repoforge/portal/Dockerfile | 4 ++-- frontends/workflowui/Dockerfile | 2 +- storybook/Dockerfile | 2 +- 14 files changed, 18 insertions(+), 25 deletions(-) diff --git a/deployment/docker-compose.stack.yml b/deployment/docker-compose.stack.yml index fdb7c1c6c..dd6042e55 100644 --- a/deployment/docker-compose.stack.yml +++ b/deployment/docker-compose.stack.yml @@ -756,7 +756,7 @@ services: container_name: metabuilder-dbal-frontend restart: unless-stopped ports: - - "3009:3000" + - "3015:3000" environment: NODE_ENV: production PORT: 3000 diff --git a/frontends/caproverforge/portal/Dockerfile b/frontends/caproverforge/portal/Dockerfile index 6e5d2f997..113c482ac 100644 --- a/frontends/caproverforge/portal/Dockerfile +++ b/frontends/caproverforge/portal/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20-alpine AS base +FROM node:24-alpine AS base FROM base AS deps RUN apk add --no-cache libc6-compat @@ -10,7 +10,7 @@ FROM base AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . -RUN npm run build +RUN mkdir -p public && npm run build FROM base AS runner WORKDIR /app diff --git a/frontends/caproverforge/portal/app/page.tsx b/frontends/caproverforge/portal/app/page.tsx index 38072aed0..557fe74cb 100644 --- a/frontends/caproverforge/portal/app/page.tsx +++ b/frontends/caproverforge/portal/app/page.tsx @@ -51,6 +51,8 @@ export default function Home() {
- ((e.currentTarget as HTMLAnchorElement).style.background = - "var(--accent-hover)") - } - onMouseOut={(e) => - ((e.currentTarget as HTMLAnchorElement).style.background = - "var(--accent)") - } > Download APK diff --git a/frontends/dbal/Dockerfile b/frontends/dbal/Dockerfile index adf766f5d..defbe7b51 100644 --- a/frontends/dbal/Dockerfile +++ b/frontends/dbal/Dockerfile @@ -31,7 +31,7 @@ done RUN cd frontends/dbal && npx next build # --- Runtime stage --- -FROM node:20-alpine +FROM node:24-alpine WORKDIR /app COPY --from=builder /app/frontends/dbal/.next/standalone ./ diff --git a/frontends/dockerterminal/frontend/Dockerfile b/frontends/dockerterminal/frontend/Dockerfile index 0942ad798..5aba5b28c 100644 --- a/frontends/dockerterminal/frontend/Dockerfile +++ b/frontends/dockerterminal/frontend/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20-alpine AS base +FROM node:24-alpine AS base # Install dependencies only when needed FROM base AS deps diff --git a/frontends/emailclient/Dockerfile b/frontends/emailclient/Dockerfile index 06f397591..ac49447a0 100644 --- a/frontends/emailclient/Dockerfile +++ b/frontends/emailclient/Dockerfile @@ -61,7 +61,7 @@ done RUN cd frontends/emailclient && npx next build --webpack # --- Runtime stage --- -FROM node:20-alpine +FROM node:24-alpine WORKDIR /app COPY --from=builder /app/frontends/emailclient/.next/standalone ./ diff --git a/frontends/exploded-diagrams/Dockerfile b/frontends/exploded-diagrams/Dockerfile index a2444f295..ca4459073 100644 --- a/frontends/exploded-diagrams/Dockerfile +++ b/frontends/exploded-diagrams/Dockerfile @@ -1,6 +1,6 @@ # Multi-stage build (standalone - no monorepo deps) # Context: monorepo root (..) -FROM node:22-alpine AS deps +FROM node:24-alpine AS deps WORKDIR /app COPY frontends/exploded-diagrams/package.json ./frontends/exploded-diagrams/ @@ -17,7 +17,7 @@ COPY frontends/exploded-diagrams/ ./frontends/exploded-diagrams/ RUN cd frontends/exploded-diagrams && npx next build --webpack # --- Runtime stage --- -FROM node:22-alpine +FROM node:24-alpine WORKDIR /app COPY --from=builder /app/frontends/exploded-diagrams/.next/standalone ./ diff --git a/frontends/nextjs/Dockerfile b/frontends/nextjs/Dockerfile index 0436d9187..dc62a8359 100644 --- a/frontends/nextjs/Dockerfile +++ b/frontends/nextjs/Dockerfile @@ -61,7 +61,7 @@ done RUN cd frontends/nextjs && npx next build --webpack # --- Runtime stage --- -FROM node:20-alpine +FROM node:24-alpine WORKDIR /app COPY --from=builder /app/frontends/nextjs/.next/standalone ./ diff --git a/frontends/packagerepo/frontend/Dockerfile b/frontends/packagerepo/frontend/Dockerfile index dd1fb0704..04c01a022 100644 --- a/frontends/packagerepo/frontend/Dockerfile +++ b/frontends/packagerepo/frontend/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18-alpine AS base +FROM node:24-alpine AS base # Install dependencies only when needed FROM base AS deps diff --git a/frontends/pastebin/Dockerfile b/frontends/pastebin/Dockerfile index bedefafb9..bcbe2798f 100644 --- a/frontends/pastebin/Dockerfile +++ b/frontends/pastebin/Dockerfile @@ -61,7 +61,7 @@ done RUN cd frontends/pastebin && npx next build --webpack # --- Runtime stage --- -FROM node:20-alpine +FROM node:24-alpine WORKDIR /app COPY --from=builder /app/frontends/pastebin/.next/standalone ./ diff --git a/frontends/postgres/Dockerfile b/frontends/postgres/Dockerfile index 1a7adb3c2..03c5b1677 100644 --- a/frontends/postgres/Dockerfile +++ b/frontends/postgres/Dockerfile @@ -65,7 +65,7 @@ ENV NODE_OPTIONS="--max-old-space-size=3072" RUN cd frontends/postgres && npx next build --webpack # --- Runtime stage --- -FROM node:20-alpine +FROM node:24-alpine WORKDIR /app COPY --from=builder /app/frontends/postgres/.next/standalone ./ diff --git a/frontends/repoforge/portal/Dockerfile b/frontends/repoforge/portal/Dockerfile index 6e5d2f997..113c482ac 100644 --- a/frontends/repoforge/portal/Dockerfile +++ b/frontends/repoforge/portal/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20-alpine AS base +FROM node:24-alpine AS base FROM base AS deps RUN apk add --no-cache libc6-compat @@ -10,7 +10,7 @@ FROM base AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . -RUN npm run build +RUN mkdir -p public && npm run build FROM base AS runner WORKDIR /app diff --git a/frontends/workflowui/Dockerfile b/frontends/workflowui/Dockerfile index a59f92679..ecafbdf19 100644 --- a/frontends/workflowui/Dockerfile +++ b/frontends/workflowui/Dockerfile @@ -65,7 +65,7 @@ done RUN cd frontends/workflowui && npx next build --turbopack # --- Runtime stage --- -FROM node:20-alpine +FROM node:24-alpine WORKDIR /app # Install Python for Flask backend diff --git a/storybook/Dockerfile b/storybook/Dockerfile index f129186d3..490a402c6 100644 --- a/storybook/Dockerfile +++ b/storybook/Dockerfile @@ -1,6 +1,6 @@ # Multi-stage build: deps cached separately from source changes # Context: monorepo root (..) -FROM node:20-alpine AS deps +FROM node:24-alpine AS deps WORKDIR /app COPY package.json .npmrc ./