From 6496d4940f6c374604602288da8d3a572e7628af Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Thu, 25 Jun 2026 19:36:09 +0330 Subject: [PATCH] update docker agin --- Dockerfile | 21 +++++++++------------ delearn.archive | Bin 0 -> 18844 bytes 2 files changed, 9 insertions(+), 12 deletions(-) create mode 100644 delearn.archive diff --git a/Dockerfile b/Dockerfile index 569c9b4..9945b94 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,6 @@ FROM node:20-alpine AS base ENV TZ=Asia/Tehran -ENV NODE_ENV=production RUN apk add --no-cache tzdata RUN corepack enable @@ -10,14 +9,16 @@ WORKDIR /app # ----------------------- -# Install ALL dependencies (important for build) +# Install ALL dependencies (dev + prod) for the build # ----------------------- FROM base AS deps COPY package.json yarn.lock ./ -# IMPORTANT: force devDependencies inclusion -RUN yarn install --frozen-lockfile --production=false +# NODE_ENV must not be "production" here — otherwise devDependencies +# (e.g. @nestjs/cli) are skipped and "nest build" fails. +ENV NODE_ENV=development +RUN yarn install --frozen-lockfile # ----------------------- @@ -27,17 +28,12 @@ FROM base AS builder WORKDIR /app +ENV NODE_ENV=development + COPY package.json yarn.lock nest-cli.json tsconfig.json tsconfig.build.json ./ COPY --from=deps /app/node_modules ./node_modules COPY src ./src -# 🔥 GUARANTEE nest CLI exists (fixes your error) -RUN yarn add -D @nestjs/cli - -# 🔥 SAFETY CHECK (optional but helpful) -RUN npx nest --version - -# Build RUN yarn build \ && mkdir -p dist/config \ && cp src/config/swagger.json dist/config/ @@ -50,6 +46,7 @@ FROM base AS prod-deps COPY package.json yarn.lock ./ +ENV NODE_ENV=production RUN yarn install --frozen-lockfile --production=true @@ -72,4 +69,4 @@ USER appuser EXPOSE 3000 -CMD ["node", "dist/main"] \ No newline at end of file +CMD ["node", "dist/main"] diff --git a/delearn.archive b/delearn.archive new file mode 100644 index 0000000000000000000000000000000000000000..26bc8f8d1a50cf5bfff77d26a777baabe548607d GIT binary patch literal 18844 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 literal 0 HcmV?d00001