From 56caedb8b2baa724d51dffa39fe8c43cc36f004a Mon Sep 17 00:00:00 2001 From: mahmood Date: Thu, 10 Sep 2026 00:25:43 +0330 Subject: [PATCH] fix use mirror --- .env.example | 4 ++++ apps/admin-panel/Dockerfile | 12 ++++++++---- apps/api/Dockerfile | 12 ++++++++---- apps/user-app/Dockerfile | 12 ++++++++---- docker-compose.yml | 6 ++++++ 5 files changed, 34 insertions(+), 12 deletions(-) diff --git a/.env.example b/.env.example index 8b7655e..7df963d 100644 --- a/.env.example +++ b/.env.example @@ -11,3 +11,7 @@ DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGR # API Configuration PORT=3000 + +# npm/pnpm registry used during Docker build (server often cannot reach registry.npmjs.org) +# Alternatives: https://package-mirror.liara.ir/repository/npm/ | https://registry.npmmirror.com +NPM_REGISTRY=https://mirror.kargadan.ir/repository/npm-group/ diff --git a/apps/admin-panel/Dockerfile b/apps/admin-panel/Dockerfile index 2943656..3b56ec5 100644 --- a/apps/admin-panel/Dockerfile +++ b/apps/admin-panel/Dockerfile @@ -1,13 +1,17 @@ FROM node:20-bookworm AS base -# Setup pnpm — no apt/apk (build host often cannot reach package mirrors) +# Server often cannot reach registry.npmjs.org (Cloudflare). Override in Dokploy if needed. +ARG NPM_REGISTRY=https://mirror.kargadan.ir/repository/npm-group/ +ENV npm_config_registry=${NPM_REGISTRY} ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable pnpm + +# Skip corepack (it fetches pnpm from npmjs/Cloudflare). Install from mirror instead. +RUN npm install -g pnpm@9.0.0 turbo@2.10.12 \ + && printf 'registry=%s\n' "${NPM_REGISTRY}" > /root/.npmrc FROM base AS builder WORKDIR /app -RUN pnpm i -g turbo COPY . . RUN turbo prune admin-panel --docker @@ -17,7 +21,7 @@ WORKDIR /app COPY .gitignore .gitignore COPY --from=builder /app/out/json/ . COPY --from=builder /app/out/pnpm-lock.yaml ./pnpm-lock.yaml -RUN pnpm install +RUN pnpm install --frozen-lockfile # Build the project COPY --from=builder /app/out/full/ . diff --git a/apps/api/Dockerfile b/apps/api/Dockerfile index b886a6b..4abbdae 100644 --- a/apps/api/Dockerfile +++ b/apps/api/Dockerfile @@ -1,13 +1,17 @@ FROM node:20-bookworm AS base -# Setup pnpm — base image already includes openssl/ca-certificates (no apt needed) +# Server often cannot reach registry.npmjs.org (Cloudflare). Override in Dokploy if needed. +ARG NPM_REGISTRY=https://mirror.kargadan.ir/repository/npm-group/ +ENV npm_config_registry=${NPM_REGISTRY} ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable pnpm + +# Skip corepack (it fetches pnpm from npmjs/Cloudflare). Install from mirror instead. +RUN npm install -g pnpm@9.0.0 turbo@2.10.12 \ + && printf 'registry=%s\n' "${NPM_REGISTRY}" > /root/.npmrc FROM base AS builder WORKDIR /app -RUN pnpm i -g turbo COPY . . RUN turbo prune api --docker @@ -18,7 +22,7 @@ WORKDIR /app COPY .gitignore .gitignore COPY --from=builder /app/out/json/ . COPY --from=builder /app/out/pnpm-lock.yaml ./pnpm-lock.yaml -RUN pnpm install +RUN pnpm install --frozen-lockfile # Build the project and its dependencies COPY --from=builder /app/out/full/ . diff --git a/apps/user-app/Dockerfile b/apps/user-app/Dockerfile index 3b2206c..0c16b0c 100644 --- a/apps/user-app/Dockerfile +++ b/apps/user-app/Dockerfile @@ -1,13 +1,17 @@ FROM node:20-bookworm AS base -# Setup pnpm — no apt/apk (build host often cannot reach package mirrors) +# Server often cannot reach registry.npmjs.org (Cloudflare). Override in Dokploy if needed. +ARG NPM_REGISTRY=https://mirror.kargadan.ir/repository/npm-group/ +ENV npm_config_registry=${NPM_REGISTRY} ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable pnpm + +# Skip corepack (it fetches pnpm from npmjs/Cloudflare). Install from mirror instead. +RUN npm install -g pnpm@9.0.0 turbo@2.10.12 \ + && printf 'registry=%s\n' "${NPM_REGISTRY}" > /root/.npmrc FROM base AS builder WORKDIR /app -RUN pnpm i -g turbo COPY . . RUN turbo prune user-app --docker @@ -17,7 +21,7 @@ WORKDIR /app COPY .gitignore .gitignore COPY --from=builder /app/out/json/ . COPY --from=builder /app/out/pnpm-lock.yaml ./pnpm-lock.yaml -RUN pnpm install +RUN pnpm install --frozen-lockfile # Build the project COPY --from=builder /app/out/full/ . diff --git a/docker-compose.yml b/docker-compose.yml index e9adf37..c871402 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,6 +18,8 @@ services: build: context: . dockerfile: apps/api/Dockerfile + args: + NPM_REGISTRY: ${NPM_REGISTRY:-https://mirror.kargadan.ir/repository/npm-group/} container_name: goldbank_api depends_on: - db @@ -32,6 +34,8 @@ services: build: context: . dockerfile: apps/admin-panel/Dockerfile + args: + NPM_REGISTRY: ${NPM_REGISTRY:-https://mirror.kargadan.ir/repository/npm-group/} container_name: goldbank_admin_panel ports: - "8080:80" @@ -43,6 +47,8 @@ services: build: context: . dockerfile: apps/user-app/Dockerfile + args: + NPM_REGISTRY: ${NPM_REGISTRY:-https://mirror.kargadan.ir/repository/npm-group/} container_name: goldbank_user_app ports: - "8081:80"