chore(web): use prod-only deps in runtime image
All checks were successful
ci/woodpecker/push/web Pipeline was successful

This commit is contained in:
2026-02-18 21:13:12 -06:00
parent 7935d86015
commit fa9f173f8e

View File

@@ -27,6 +27,20 @@ COPY apps/web/package.json ./apps/web/
# Install dependencies (no cache mount — Kaniko builds are ephemeral in CI) # Install dependencies (no cache mount — Kaniko builds are ephemeral in CI)
RUN pnpm install --frozen-lockfile RUN pnpm install --frozen-lockfile
# ======================
# Production dependencies stage
# ======================
FROM base AS prod-deps
# Copy all package.json files for workspace resolution
COPY packages/shared/package.json ./packages/shared/
COPY packages/ui/package.json ./packages/ui/
COPY packages/config/package.json ./packages/config/
COPY apps/web/package.json ./apps/web/
# Install production dependencies only
RUN pnpm install --frozen-lockfile --prod
# ====================== # ======================
# Builder stage # Builder stage
# ====================== # ======================
@@ -87,7 +101,7 @@ RUN rm -rf /usr/local/lib/node_modules/npm /usr/local/bin/npm /usr/local/bin/npx
WORKDIR /app WORKDIR /app
# Copy node_modules from builder (includes all dependencies in pnpm store) # Copy node_modules from builder (includes all dependencies in pnpm store)
COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules COPY --from=prod-deps --chown=nextjs:nodejs /app/node_modules ./node_modules
# Copy built packages (includes dist/ directories) # Copy built packages (includes dist/ directories)
COPY --from=builder --chown=nextjs:nodejs /app/packages ./packages COPY --from=builder --chown=nextjs:nodejs /app/packages ./packages
@@ -98,7 +112,7 @@ COPY --from=builder --chown=nextjs:nodejs /app/apps/web/public ./apps/web/public
COPY --from=builder --chown=nextjs:nodejs /app/apps/web/next.config.ts ./apps/web/ COPY --from=builder --chown=nextjs:nodejs /app/apps/web/next.config.ts ./apps/web/
COPY --from=builder --chown=nextjs:nodejs /app/apps/web/package.json ./apps/web/ COPY --from=builder --chown=nextjs:nodejs /app/apps/web/package.json ./apps/web/
# Copy app's node_modules which contains symlinks to root node_modules # Copy app's node_modules which contains symlinks to root node_modules
COPY --from=builder --chown=nextjs:nodejs /app/apps/web/node_modules ./apps/web/node_modules COPY --from=prod-deps --chown=nextjs:nodejs /app/apps/web/node_modules ./apps/web/node_modules
# Set working directory to web app # Set working directory to web app
WORKDIR /app/apps/web WORKDIR /app/apps/web