From bd515fc93a084883bbc53baa760c34a50cdd450d Mon Sep 17 00:00:00 2001 From: Mehdi Mehrmanesh Date: Sat, 13 Dec 2025 18:16:15 +0330 Subject: [PATCH] update deploy-cicd.yaml --- Dockerfile | 85 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 72 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5006d73..19a5ae0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,38 @@ +# -------------------- +# Base +# -------------------- FROM node:22-alpine AS base -RUN apk add --no-cache tzdata && \ +RUN apk add --no-cache tzdata libc6-compat && \ cp /usr/share/zoneinfo/Asia/Tehran /etc/localtime && \ echo "Asia/Tehran" > /etc/timezone -RUN npm install -g corepack -RUN corepack enable && corepack prepare pnpm@latest --activate WORKDIR /app +# -------------------- +# Dependencies +# -------------------- FROM base AS deps -RUN apk add --no-cache libc6-compat git -COPY package*.json ./ -COPY pnpm-lock.yaml ./ -RUN pnpm install --frozen-lockfile --ignore-scripts +COPY package.json package-lock.json ./ +RUN npm ci --ignore-scripts + +# -------------------- +# Build +# -------------------- FROM base AS builder WORKDIR /build + COPY --from=deps /app/node_modules ./node_modules COPY . . -RUN pnpm build && pnpm install --prod --frozen-lockfile --ignore-scripts -FROM base AS runner +RUN npm run build && \ + npm ci --omit=dev --ignore-scripts + +# -------------------- +# Runtime +# -------------------- +FROM node:22-alpine AS runner WORKDIR /app ENV NODE_ENV=production @@ -39,8 +51,55 @@ USER appuser EXPOSE 3000 ENV PORT=3000 ENV HOSTNAME="0.0.0.0" -ENV NEXT_PUBLIC_BASE_URL=https://api.danakcorp.com -ENV NEXT_PUBLIC_TOKEN_NAME=dsc_refresh_token -ENV NEXT_PUBLIC_TOKEN_NAME=dsc_token -CMD ["node", "server.js"] \ No newline at end of file +CMD ["node", "server.js"] + + + + +# FROM node:22-alpine AS base + +# RUN apk add --no-cache tzdata && \ +# cp /usr/share/zoneinfo/Asia/Tehran /etc/localtime && \ +# echo "Asia/Tehran" > /etc/timezone + +# RUN npm install -g corepack +# RUN corepack enable && corepack prepare pnpm@latest --activate +# WORKDIR /app + +# FROM base AS deps +# RUN apk add --no-cache libc6-compat git +# COPY package*.json ./ +# COPY pnpm-lock.yaml ./ +# RUN pnpm install --frozen-lockfile --ignore-scripts + +# FROM base AS builder +# WORKDIR /build +# COPY --from=deps /app/node_modules ./node_modules +# COPY . . +# RUN pnpm build && pnpm install --prod --frozen-lockfile --ignore-scripts + +# FROM base AS runner +# WORKDIR /app + +# ENV NODE_ENV=production +# ENV NEXT_TELEMETRY_DISABLED=1 + +# RUN addgroup -S appgroup && adduser -S appuser -G appgroup +# RUN mkdir .next && chown appuser:appgroup .next + +# COPY --from=builder --chown=appuser:appgroup /build/.next/standalone ./ +# COPY --from=builder --chown=appuser:appgroup /build/.next/static ./.next/static +# COPY --from=builder --chown=appuser:appgroup /build/public ./public +# COPY --from=builder --chown=appuser:appgroup /build/package.json ./package.json + +# USER appuser + +# EXPOSE 3000 +# ENV PORT=3000 +# ENV HOSTNAME="0.0.0.0" +# ENV NEXT_PUBLIC_BASE_URL=https://api.danakcorp.com +# ENV NEXT_PUBLIC_TOKEN_NAME=dsc_refresh_token +# ENV NEXT_PUBLIC_TOKEN_NAME=dsc_token + +# CMD ["node", "server.js"] \ No newline at end of file