From 84aa69884d4bd9da0caf295cb576d9d0305c2dc5 Mon Sep 17 00:00:00 2001 From: Mike Johnston Date: Fri, 20 Mar 2026 02:23:15 +0000 Subject: [PATCH] revert 0e7c9dd890088f1a033fae8cc1fc2fa66bcb43aa revert experimental smaller docker image --- Dockerfile | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/Dockerfile b/Dockerfile index da82b1f..27346d1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,40 +1,23 @@ -FROM node:20-alpine AS base +FROM node:20-alpine + +WORKDIR /app + +# Required for Prisma on Alpine RUN apk add --no-cache openssl -# ── deps: install production deps only ─────────────────────────────────────── -FROM base AS deps -WORKDIR /app -COPY package*.json ./ -COPY prisma ./prisma -RUN npm ci --omit=dev && npm run postinstall - -# ── build: full install + compile ───────────────────────────────────────────── -FROM base AS builder -WORKDIR /app +# Install all deps (including devDeps for tsx worker runtime + build tooling) COPY package*.json ./ COPY prisma ./prisma RUN npm ci + +# Copy source COPY . . + +# Generate Prisma client and build Next.js (postinstall handles prisma generate) RUN npm run build -# ── runner: lean production image ───────────────────────────────────────────── -FROM base AS runner -WORKDIR /app ENV NODE_ENV=production - -# Prisma client + schema (needed at runtime for db push and queries) -COPY --from=deps /app/node_modules ./node_modules -COPY --from=builder /app/.next ./.next -COPY --from=builder /app/public ./public -COPY --from=builder /app/package.json ./package.json -COPY --from=builder /app/next.config.mjs ./next.config.mjs -COPY --from=builder /app/prisma ./prisma -# Worker source (compiled to node_modules/.cache or run via tsx in prod) -COPY --from=builder /app/src/worker ./src/worker -COPY --from=builder /app/src/lib ./src/lib -COPY --from=builder /app/tsconfig.json ./tsconfig.json - EXPOSE 3000 -# Default: web server. Worker container overrides CMD. +# Default: run web server. Worker container overrides this CMD. CMD ["npm", "start"]