diff --git a/Dockerfile b/Dockerfile index 6c3136b1e..f29ed7c10 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Base build stage (for building Next.js if needed) -FROM node:22-alpine AS builder +FROM node:22-slim AS builder WORKDIR /app @@ -7,11 +7,10 @@ RUN mkdir config COPY package.json pnpm-lock.yaml ./ RUN corepack enable && corepack prepare pnpm@latest --activate -RUN pnpm install --frozen-lockfile +RUN pnpm install --frozen-lockfile --prefer-offline -# Copy all source files +# Copy all source files, .next dir included COPY . . -COPY .next .next ARG CI ARG BUILDTIME @@ -44,21 +43,11 @@ LABEL org.opencontainers.image.licenses='Apache-2.0' WORKDIR /app ENV NODE_ENV=production -COPY package.json pnpm-lock.yaml ./ -RUN corepack enable && corepack prepare pnpm@latest --activate -RUN pnpm install --frozen-lockfile --prod - -COPY --link --chown=1000:1000 package.json next.config.js ./ -COPY --link --chown=1000:1000 /public ./public/ - -# Copy pre-built assets from builder stage -COPY --link --from=builder --chown=1000:1000 /app/.next/standalone ./ -COPY --link --from=builder --chown=1000:1000 /app/.next/static/ ./.next/static/ -COPY --link --chmod=755 docker-entrypoint.sh /usr/local/bin/ - -# Remove unnecessary files -RUN rm -rf /app/.next/cache \ -&& rm -rf /app/node_modules/.pnpm +# Trust the traced production app output — no reinstall needed +COPY --from=builder --chown=1000:1000 /app/.next/standalone/ ./ +COPY --from=builder --chown=1000:1000 /app/.next/static ./.next/static +COPY --from=builder --chown=1000:1000 /app/public ./public +COPY --from=builder --chmod=755 /app/docker-entrypoint.sh /usr/local/bin/ RUN apk add --no-cache su-exec