从私有feed安装npm的Docker的Azure DevOps构建已停止工作

我在基于Azure DevOps的React应用程序上有一些Docker构建,其中包括来自私有npm feed的软件包,这些软件包也托管在Azure DevOps上。最近,在npm install命令中,构建开始失败。

为了验证要从私有提要中安装的容器,我一直使用.npmrc文件。它将另存为.npmrc.docker,如下所示:

@<package-scope>:registry=https://<devops-username>.pkgs.visualstudio.com/_packaging/<feed-name>/npm/registry/
//<devops-username>.pkgs.visualstudio.com/_packaging/<feed-name>/npm/registry/:username=<feed-name>
//<devops-username>.pkgs.visualstudio.com/_packaging/<feed-name>/npm/registry/:_password=${NPM_TOKEN}
//<devops-username>.pkgs.visualstudio.com/_packaging/<feed-name>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<devops-username>.pkgs.visualstudio.com/_packaging/<feed-name>/npm/:username=<feed-name>
//<devops-username>.pkgs.visualstudio.com/_packaging/<feed-name>/npm/:_password=${NPM_TOKEN}
//<devops-username>.pkgs.visualstudio.com/_packaging/<feed-name>/npm/:email=npm requires email to be set but doesn't use the value

我在顶部定义了一个有作用域的程序包源,其余的则是通过Azure DevOps的 Connect to feed 向导生成的。 ${NPM_TOKEN}是我的供稿密码,我将其作为构建参数传递给docker build命令。

我的Dockerfile使用该部分的部分如下所示:

FROM node:alpine as build
ARG NPM_TOKEN
COPY ./.npmrc.docker /app/.npmrc
COPY ./package.json /app/package.json
WORKDIR /app
RUN npm install
RUN rm -f .npmrc

在我的Azure DevOps构建管道中,这一直有效。管道的 Build image 部分从这样的变量---build-arg NPM_TOKEN=$(ArtifactsnpmPat)-其中ArtifactsnpmPat是我的库中的变量,向该构建arg提供信息。

最近我的构建开始失败。最初,我假设我的令牌已过期,所以我生成并存储了一个新令牌。这是来自代理的错误:

  

[错误]命令'/ bin / sh -c npm install'返回了非零代码:1

     

[错误]进程'/ usr / bin / docker'失败,退出代码为1

请注意,同一过程将继续在本地运行。所以我不知道如何诊断。我确实发现this SO post导致我将Dockerfile更新为如下形式:

FROM node:alpine as build
ARG NPM_TOKEN
COPY ./.npmrc.docker /app/.npmrc
COPY ./package.json /app/package.json
WORKDIR /app
RUN npm install -g vsts-npm-auth
RUN vsts-npm-auth -config .npmrc
RUN npm install
RUN rm -f .npmrc

但是,docker build现在通过RUN vsts-npm-auth命令产生了一个非常疯狂的错误。

/usr/local/bin/vsts-npm-auth: line 1: MZ�╚╝���@���: not found
/usr/local/bin/vsts-npm-auth: line 1: �ԞO���: not found
/usr/local/bin/vsts-npm-auth: line 57: ╔╚��║[�
                                              ╔0�
&� �@ ╗╝═�╗��╔╚.rsrc�@@.reloc
                             �╗�@�H╗║�?�Y
                                         ╗*═d��╚���╗(&
╗╚s'
}║╝╗╗╚═}═╝*╗{═╝*0╗4╔╗╚(      ═╔╗╚(
═╔╚╚(
     ═╔╗╚(
          ═╔╗╚(
+═*0╔╗╚/(═
+═*0╝M╗╗{║╝o(

═()
�╔,+╚═o*
�╔,s+
z═o,Xo-
╝+║╚╝+╝*0╔╗╚?(═
+═*0╔╗╚#(═
+═*0A╚╚r╔po.
-╗{║╝o/
r╔p(0
+╔
═,║╚
    +╗╚/(═
          +*0╝�╝╗╚╝║(═
═�╔,&═╝╝,r║p╝�S╔╚(1
s2
z╚║+Z╚═o3

╚╚o,═X(4
o5

╝-╚+║rgp║-╗(6
%-═&rgp+║rgp╝-rgp+(7
║+║*0╗║║-  ╚╝o8
+╚╝o9

+═*0╚L╗(&
╗╚}
╝╗║}╝╗═}╝╗╗(═}╝*╝═
╗{╝o:

╗(╗{
    ╝s;
╗(═o
╝+#╝o
║╗     ║(═══�╚,╗
╝o
╝╝o
0�s<╔╗30c

╗{╝ripo=

�╚,E(>
r�p�╔%rip�%�(?
�S╔%;�o@
═       sA
oB
═╚╗{╝sC
oB
═sD
╝+╝*0║╗{╝-rp╔p+║r�╔p
╝═╗{╝oE

+*0╗# ╗{
╝%-
   &╗{╝(═: not found
/usr/local/bin/vsts-npm-auth: line 58: syntax error: unexpected word (expecting ")")

所以我被困住了。 DevOps围绕其私人供稿进行身份验证是否发生了变化?并不是我知道的,但是就像我说的那样,这些构建在10月份的某个时候就停止了工作,而我没有进行任何更改。建议表示赞赏。

JHJ2008JHJ 回答:从私有feed安装npm的Docker的Azure DevOps构建已停止工作

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3153350.html

大家都在问