如何在VSTS中的Docker容器内验证npm注册表?

时间:2018-02-21 09:00:30

标签: npm docker-compose azure-devops azure-pipelines azure-pipelines-build-task

我有一个Docker Compose构建任务在VSTS上构建一个Node.js项目。因为我们要转移到VSTS上的私有npm注册表,这意味着Docker容器需要一种方法来通过注册表进行身份验证以下载包。

有没有办法将VSTS凭据发送到Docker容器,因此在构建时,它可以访问私有npm注册表?

我想到将VSTS生成的npm凭证硬编码到项目的.npmrc文件中,但即使在这种情况下,它也不会构建在VSTS中,而是给我一个“401 Unauthroized”在做yarn install时:

  

发生意外错误:“https://[VSTS_NAME].pkgs.visualstudio.com/_packaging/[REGISTRY_NAME]/npm/registry/ajv/-/ajv-6.1.1.tgz:请求失败\”401 Unauthorized \“”。

1 个答案:

答案 0 :(得分:0)

您可以将令牌存储在VSTS构建的秘密变量中,然后您可以通过docker-compose(-e xx=xx)设置具有该值的环境变量。

Setting environment variables with ‘docker-compose run’

通过这种方式,您可以使用该环境变量来更新docker中的.npmrc文件。

您还可以在vsts构建期间调用docker-compose之前更新.npmrc文件。