diff --git a/.env.example b/.env.example index 1070394..486d97f 100644 --- a/.env.example +++ b/.env.example @@ -8,9 +8,9 @@ POSTGRES_DB=fabric_trade POSTGRES_PORT=5432 API_PORT=3000 RUN_SEED=false -# مخزن npm ایرانی برای بیلد Docker -NPM_REGISTRY=https://mirror.iranserver.com/npm/ -# اگر Bake/buildx ارور داد: +# میرور npm کامل (سازگار با package-lock) +# توجه: mirror.iranserver.com/npm ناقص است و 404 می‌دهد +NPM_REGISTRY=https://registry.npmmirror.com COMPOSE_BAKE=false JWT_SECRET="fabric-trade-dev-secret-change-me" diff --git a/Dockerfile b/Dockerfile index 6559bfa..ffdff57 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,23 @@ -# مخزن npm ایرانی (قابل تغییر با --build-arg) -ARG NPM_REGISTRY=https://mirror.iranserver.com/npm/ +# میرور کامل و سازگار با ساختار registry.npmjs.org +# (mirror.iranserver.com/npm ناقص است و خیلی پکیج‌ها 404 می‌دهد) +ARG NPM_REGISTRY=https://registry.npmmirror.com FROM node:22-alpine AS builder -ARG NPM_REGISTRY=https://mirror.iranserver.com/npm/ +ARG NPM_REGISTRY=https://registry.npmmirror.com WORKDIR /app ENV NPM_CONFIG_REGISTRY=${NPM_REGISTRY} COPY package.json package-lock.json ./ -# npm ci از URLهای داخل package-lock استفاده می‌کند؛ باید میرور ایرانی شود +# npm ci از URLهای resolved داخل lockfile استفاده می‌کند RUN set -eux; \ mirror="$(echo "${NPM_REGISTRY}" | sed 's:/*$::')"; \ sed -i \ -e "s|https://registry.npmjs.org|${mirror}|g" \ - -e "s|https://registry.npmmirror.com|${mirror}|g" \ + -e "s|https://mirror.iranserver.com/npm|${mirror}|g" \ package-lock.json; \ - npm config set registry "${mirror}/"; \ + npm config set registry "${mirror}"; \ npm config set fetch-retries 5; \ npm config set fetch-retry-mintimeout 20000; \ npm config set fetch-retry-maxtimeout 120000; \ diff --git a/docker-compose.yml b/docker-compose.yml index 4e90066..2c8648c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: context: . dockerfile: Dockerfile args: - NPM_REGISTRY: ${NPM_REGISTRY:-https://mirror.iranserver.com/npm/} + NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmmirror.com} container_name: fabric_trade_api restart: unless-stopped depends_on: