From 1fe99fd688d7eed9fd696d9988562d0940470ef1 Mon Sep 17 00:00:00 2001 From: adonis Date: Wed, 5 Aug 2026 21:20:29 +0330 Subject: [PATCH] Pull Node image via IranServer Docker mirror by default Avoid slow/blocked docker.io pulls when running deploy-host-build.sh. Co-authored-by: Cursor --- deploy-host-build.sh | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/deploy-host-build.sh b/deploy-host-build.sh index 712246d..52c7998 100644 --- a/deploy-host-build.sh +++ b/deploy-host-build.sh @@ -4,10 +4,13 @@ cd "$(dirname "$0")" MIRROR="${NPM_REGISTRY:-https://registry.npmmirror.com}" MIRROR="${MIRROR%/}" -NODE_IMAGE="${NODE_IMAGE:-node:22-alpine}" + +# میرور ایمیج Docker (ایران) — اگر کار نکرد با NODE_IMAGE عوض کن +NODE_IMAGE="${NODE_IMAGE:-docker.iranserver.com/library/node:22-alpine}" echo "==> npm registry: $MIRROR" -echo "==> build with Docker image: $NODE_IMAGE (Node روی خود سرور لازم نیست)" +echo "==> Node image: $NODE_IMAGE" +echo "==> اگر pull طول کشید صبر کن؛ اولین بار ایمیج دانلود می‌شود" # آماده‌سازی lockfile برای میرور sed -i \ @@ -15,8 +18,23 @@ sed -i \ -e "s|https://mirror.iranserver.com/npm|${MIRROR}|g" \ package-lock.json -# نصب و بیلد داخل یک کانتینر موقت Node (نه داخل docker build) -# شبکه معمولی کانتینر معمولاً از docker build پایدارتر است +pull_node() { + if docker image inspect "$NODE_IMAGE" >/dev/null 2>&1; then + echo "==> Node image already present" + return 0 + fi + echo "==> Pulling Node image..." + if docker pull "$NODE_IMAGE"; then + return 0 + fi + echo "==> میرور اول شکست خورد؛ تلاش با Docker Hub..." + NODE_IMAGE="node:22-alpine" + docker pull "$NODE_IMAGE" +} + +pull_node + +echo "==> npm ci + build داخل کانتینر موقت..." docker run --rm \ -v "$PWD":/app \ -w /app \ @@ -34,7 +52,7 @@ docker run --rm \ npm install prisma ts-node typescript --no-save --no-audit --no-fund --registry='$MIRROR' " -echo "==> ساخت و اجرای کانتینر API (بدون دانلود npm در بیلد)..." +echo "==> ساخت و اجرای API..." export RUN_SEED="${RUN_SEED:-true}" docker compose -f docker-compose.prebuilt.yml up -d --build