+13
-2
@@ -26,6 +26,15 @@ COPY --from=deps /deps/node_modules ./node_modules
|
||||
|
||||
RUN npm run build
|
||||
|
||||
# -----------------------
|
||||
# Production dependencies (Nitro externalizes ipx, sharp, etc.)
|
||||
# -----------------------
|
||||
FROM base AS prod-deps
|
||||
WORKDIR /deps
|
||||
|
||||
COPY package*.json ./
|
||||
RUN npm ci --omit=dev
|
||||
|
||||
# -----------------------
|
||||
# Production runtime
|
||||
# -----------------------
|
||||
@@ -33,12 +42,14 @@ FROM node:18-alpine AS runner
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# sharp (used by ipx) needs libc compatibility on Alpine
|
||||
RUN apk add --no-cache libc6-compat
|
||||
|
||||
# create non-root user
|
||||
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
|
||||
|
||||
# only copy what is needed at runtime
|
||||
COPY --from=builder /build/.output ./.output
|
||||
COPY package*.json ./
|
||||
COPY --from=prod-deps /deps/node_modules ./node_modules
|
||||
|
||||
USER appuser
|
||||
|
||||
|
||||
Reference in New Issue
Block a user