【问题标题】:install private npm package in gitlab pipelines在 gitlab 管道中安装私有 npm 包
【发布时间】:2017-07-11 23:33:23
【问题描述】:

如果需要install private repositories with npm,则需要设置环境变量NPM_TOKEN

NPM_TOKEN=00000000-0000-0000-0000-000000000000

我在 gitlab 管道中的构建阶段需要安装一个私有存储库。因此,我将这个 NPM_TOKEN 秘密变量放在了我的 gitlab pipeline 设置中。

我目前的 gitlab-ci 配置:

image: x/node

build_job: 
  script:
  - printenv NPM_TOKEN
  - npm i @x/test

docker 镜像是我制作的,它只是设置了一个.npmrc 文件:

FROM node:latest
COPY .npmrc .  

我在同一目录中有.npmrc

//registry.npmjs.org/:_authToken=${NPM_TOKEN}

我已经通过以下方式尝试了 docker 映像:

 run -it myimage bash
 export NPM_TOKEN=...
 npm i @x/test

成功了,安装了私有包。

但是在 gitlab 管道上它找不到包 (404)。当作业运行时,我可以清楚地看到正在打印的NPM_TOKEN env 变量。所以不知道怎么回事。

【问题讨论】:

    标签: docker npm gitlab gitlab-ci


    【解决方案1】:

    我把 gitlab-ci 改成这样:

    image: dasnoo/node
    
    build_job: 
      script:
      - printenv NPM_TOKEN
      - npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
      - npm i @dasnoo/testpriv
    

    它有效。不知道为什么我必须这样做

    【讨论】:

    • 当我在 GitLab 中运行依赖扫描工具时遇到问题时也为我工作。这很奇怪,因为之前环境中的 ${NPM_TOKEN} 可以用于我们在管道中运行的构建和单元测试,而这些管道也依赖于 NPM_TOKEN。
    猜你喜欢
    • 2021-04-03
    • 2021-07-11
    • 2021-11-04
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2023-02-01
    • 2021-12-15
    相关资源
    最近更新 更多