Azure DevOps流水线中npmAuthenticate任务间歇性失效求助
Azure Artifacts私有仓库npm ci随机401认证失败问题
我们使用Azure Artifacts私有仓库分发私有npm包,Azure流水线通过npmAuthenticate@0任务对该源进行认证,源信息存储在项目的.npmrc文件中,且项目已拥有Contributor权限。但执行npm ci步骤时会随机失败,报错信息如下:
#17 132.8 npm ERR! code E401 #17 132.8 npm ERR! Incorrect or missing password.
开启诊断输出后发现,不同流水线运行中报错的包各不相同,多数包可正常加载,示例错误如下:
#17 55.03 npm http fetch GET 401 https://***/***/_packaging/***/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz 50860ms attempt #2 (cache skip)
近期变更:将Node从16.14.0升级至20.12.1(包含npm 10.5.0)
已尝试的排查手段:
- 在项目.npmrc文件中替换为个人token;
- 验证同一构建代理上存在失败与成功的情况;
- 回退到Node 16.14.0时npm ci可成功运行;
- 使用Node 18.20时问题依旧;
- 搜索Node 18、20版本相关问题但无结果;
- 发现Node 18.18可正常运行,高于该版本则失效。
流水线与Dockerfile片段
流水线片段
[...] - task: npmAuthenticate@0 inputs: workingFile: .npmrc displayName: 'NPM Auth' - bash: | docker build -f ./deployment/ci.Dockerfile -t $(projectName):$(Build.SourceVersion) . displayName: 'CI build docker image' [...]
Dockerfile片段
FROM node:20.12 AS builder RUN apt-get update && \ apt-get install -y chromium && \ wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip -O ~/sonar.zip && \ unzip ~/sonar.zip -d /opt/sonar && \ rm ~/sonar.zip ENV CHROME_BIN=/usr/bin/chromium PATH="/opt/sonar/sonar-scanner-5.0.1.3006-linux/bin:${PATH}" WORKDIR /build COPY package.json /build COPY package-lock.json /build COPY .npmrc /build COPY sonar.properties /build RUN npm -d ci # <-- 报错位置,通常运行时不带-d参数 COPY . /build RUN npm run build:ci [...]
内容的提问来源于stack exchange,提问作者jackie.ms
相关产品推荐
相关产品推荐

