This commit is contained in:
zlwu committed 2026-06-30 11:20:36 +08:00
1 parent 5b3edb1700
commit 74e5a0f0cf
30 files changed
+9036 -7974

No files matched your search

+22 -5
View File
@@ -5,18 +5,35 @@ ARG NGINX_IMAGE=docker.m.daocloud.io/library/nginx:1.27-alpine
FROM ${NODE_IMAGE} AS builder
ARG NPM_REGISTRY=https://registry.npmmirror.com
ARG PNPM_VERSION=9.15.4
ARG NODE_MAX_OLD_SPACE_SIZE=4096
# corepack 默认走 registry.npmjs.org,国内/受限网络会失败;须显式指定镜像
ENV COREPACK_NPM_REGISTRY=${NPM_REGISTRY}
ENV NODE_OPTIONS="--max-old-space-size=${NODE_MAX_OLD_SPACE_SIZE}"
ENV NODE_ENV=production
# 构建阶段须安装 devDependencies(vite 等);勿设 NODE_ENV=production
ENV HUSKY=0
RUN corepack enable && corepack prepare pnpm@9.15.4 --activate
# 国内机器勿用 registry.npmjs.org;先走镜像元数据,失败再直装 tarball
RUN set -eux; \
npm config set registry "${NPM_REGISTRY}"; \
npm config set fetch-retries 5; \
npm config set fetch-retry-mintimeout 60000; \
npm config set fetch-retry-maxtimeout 600000; \
npm config set fetch-timeout 600000; \
if ! npm install -g "pnpm@${PNPM_VERSION}"; then \
echo "npm 元数据安装 pnpm 失败,尝试 tarball: ${NPM_REGISTRY}/pnpm/-/pnpm-${PNPM_VERSION}.tgz"; \
npm install -g "${NPM_REGISTRY}/pnpm/-/pnpm-${PNPM_VERSION}.tgz"; \
fi; \
pnpm --version
WORKDIR /app
COPY web-admin/package.json web-admin/pnpm-lock.yaml ./
RUN pnpm config set registry "${NPM_REGISTRY}" \
# BuildKit 缓存 pnpm store;提高 fetch 重试与超时,缓解 npmmirror ETIMEDOUT
RUN --mount=type=cache,id=zkxw-pnpm-store,target=/root/.local/share/pnpm/store \
pnpm config set registry "${NPM_REGISTRY}" \
&& pnpm config set fetch-retries 5 \
&& pnpm config set fetch-retry-mintimeout 60000 \
&& pnpm config set fetch-retry-maxtimeout 600000 \
&& pnpm config set network-timeout 600000 \
&& pnpm install --frozen-lockfile
COPY web-admin/ .