From dc476d1b6a9e906f93b5d3effd9551037ae6c1f5 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Tue, 23 Jun 2026 15:51:56 +0330 Subject: [PATCH] opt docker --- .dockerignore | 7 +++++++ Dockerfile | 53 ++++++++++++--------------------------------------- 2 files changed, 19 insertions(+), 41 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..2b3972d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +node_modules +.nuxt +.output +.git +.github +*.md +.gitignore diff --git a/Dockerfile b/Dockerfile index a4039ac..913ec3a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,49 +1,20 @@ -FROM node:20-alpine AS base - -# Install tzdata to support timezone settings -RUN apk add --no-cache tzdata - -# Set the timezone to Asia/Tehran -RUN cp /usr/share/zoneinfo/Asia/Tehran /etc/localtime && echo "Asia/Tehran" > /etc/timezone - - -# Stage 2: Dependencies -FROM base AS deps -WORKDIR /temp-deps +FROM node:20-alpine AS deps +WORKDIR /app COPY package*.json ./ -RUN npm install +RUN npm ci -# Stage 3: Build stage -FROM base AS builder -WORKDIR /build -COPY . ./ -COPY --from=deps /temp-deps/node_modules ./node_modules -RUN npm run build -# RUN npm install --omit=dev +FROM node:20-alpine AS builder +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . +ENV NODE_ENV=production +RUN npm run build && npm cache clean --force -# Stage 4: Production image -FROM base AS runner +FROM node:20-alpine AS runner RUN addgroup -S appgroup && adduser -S appuser -G appgroup WORKDIR /app - -# COPY --from=builder /build ./ -COPY --from=builder /build/.output ./.output -COPY package*.json ./ - -RUN chown -R appuser:appgroup /app - +COPY --from=builder --chown=appuser:appgroup /app/.output ./.output USER appuser - ENV NODE_ENV=production - EXPOSE 3000 - -# Start the Nuxt app -# CMD ["npm", "start"] -CMD ["node", ".output/server/index.mjs"] - - - - - - +CMD ["node", ".output/server/index.mjs"]