From cbbd9ddce98557ba82d342114fdbe602e88ed293 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Sun, 22 Mar 2026 21:06:07 -0700 Subject: [PATCH] fix(docker): upgrade Dockerfiles to node:22-slim + add NODE_TLS + fix next.config.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - backend/Dockerfile: alpine→slim, add NODE_TLS_REJECT_UNAUTHORIZED=0, 3-stage pattern - web/Dockerfile: alpine→slim, add NODE_TLS_REJECT_UNAUTHORIZED=0, remove non-existent public/ COPY - web/next.config.ts: add transpilePackages + webpack symlinks for pnpm @bytelyst/* resolution Docker smoke tests: backend + web builds pass --- backend/Dockerfile | 16 ++++++++++++---- web/Dockerfile | 9 +++++---- web/next.config.ts | 15 +++++++++++++++ 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index f1b7f43..cd72e0f 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,7 +1,8 @@ # Pre-requisite: run ./scripts/docker-prep.sh to pack @bytelyst/* tarballs # ── Stage 1: Build ──────────────────────────────────── -FROM node:22-alpine AS builder +FROM node:22-slim AS builder WORKDIR /app/backend +ENV NODE_TLS_REJECT_UNAUTHORIZED=0 RUN npm config set strict-ssl false COPY backend/package.json ./package.json @@ -14,18 +15,25 @@ COPY shared/ ./shared/ RUN npm run build # ── Stage 2: Runtime ────────────────────────────────── -FROM node:22-alpine +FROM node:22-slim AS deps WORKDIR /app/backend ENV NODE_ENV=production +ENV NODE_TLS_REJECT_UNAUTHORIZED=0 RUN npm config set strict-ssl false COPY backend/package.json ./package.json COPY backend/.docker-deps/ ./.docker-deps/ RUN npm install --omit=dev --ignore-scripts +# ── Stage 3: Runtime ────────────────────────────────── +FROM node:22-slim +WORKDIR /app/backend +ENV NODE_ENV=production + +COPY --from=deps /app/backend/node_modules ./node_modules +COPY --from=deps /app/backend/package.json ./package.json COPY --from=builder /app/backend/dist ./dist -COPY --from=builder /app/backend/shared ./shared +COPY shared/product.json ../shared/product.json EXPOSE 4016 - CMD ["node", "dist/server.js"] diff --git a/web/Dockerfile b/web/Dockerfile index f46f8de..48d8547 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -1,7 +1,8 @@ # Pre-requisite: run ./scripts/docker-prep.sh to pack @bytelyst/* tarballs # ── Stage 1: Install ────────────────────────────────── -FROM node:22-alpine AS builder +FROM node:22-slim AS builder WORKDIR /app/web +ENV NODE_TLS_REJECT_UNAUTHORIZED=0 RUN npm config set strict-ssl false COPY web/package.json ./package.json COPY web/.docker-deps/ ./.docker-deps/ @@ -14,11 +15,12 @@ COPY shared/ ../shared/ ENV NEXT_PUBLIC_BACKEND_URL=http://localhost:4016 ENV NEXT_PUBLIC_PLATFORM_URL=http://localhost:4003 ENV NEXT_TELEMETRY_DISABLED=1 +ENV NODE_TLS_REJECT_UNAUTHORIZED=0 RUN npm run build -# ── Stage 3: Runtime ────────────────────────────────── -FROM node:22-alpine AS runtime +# ── Stage 2: Runtime ────────────────────────────────── +FROM node:22-slim WORKDIR /app ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 @@ -27,5 +29,4 @@ COPY --from=builder /app/web/.next/standalone ./ COPY --from=builder /app/web/.next/static ./.next/static EXPOSE 3000 - CMD ["node", "server.js"] diff --git a/web/next.config.ts b/web/next.config.ts index a721737..f87216d 100644 --- a/web/next.config.ts +++ b/web/next.config.ts @@ -23,6 +23,21 @@ const securityHeaders = [ const nextConfig: NextConfig = { output: "standalone", outputFileTracingRoot: path.join(process.cwd(), ".."), + transpilePackages: [ + "@bytelyst/api-client", + "@bytelyst/blob-client", + "@bytelyst/design-tokens", + "@bytelyst/diagnostics-client", + "@bytelyst/feature-flag-client", + "@bytelyst/kill-switch-client", + "@bytelyst/platform-client", + "@bytelyst/react-auth", + "@bytelyst/telemetry-client", + ], + webpack: (config) => { + config.resolve.symlinks = true; + return config; + }, async headers() { return [ {