refactor(Dockerfile): Improve layer caching and use lighter base image

Signed-off-by: shaerpour <amirhosseinshaerpour1@gmail.com>
This commit is contained in:
Amirhossein Shaerpour 2025-01-20 18:08:27 +03:30 committed by shaerpour
parent 6f5431456f
commit 34dc70e289
No known key found for this signature in database
GPG key ID: D89285D72B39ED8F

View file

@ -1,11 +1,37 @@
FROM node:20.10.0
FROM node:20.10.0-alpine AS base
FROM base AS deps
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci --legacy-peer-deps
FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm install --force
RUN npm run build
EXPOSE 6080
FROM base AS runner
WORKDIR /app
CMD ["npm", "run", "start"]
ENV NODE_ENV=production
RUN addgroup --system --gid 1001 nodejs && \
adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
USER nextjs
EXPOSE 3000
ENV PORT=3000
ENV HOSTNAME="0.0.0.0"
CMD ["node", "server.js"]