在 Docker 中使用 Yarn 从私有注册表安装包

Install package from private registry using Yarn in Docker

我尝试在 docker 映像中使用 yarn 从私有注册表安装包,因此我们在其他管道中重复使用该映像。当我使用 npm 时一切正常,但是当我使用 yarn 时我得到 404。

使用 NPM 工作正常:

RUN npm config set @my-scope:registry https://registry.npmjs.org && \
    npm config set //registry.npmjs.org:_authToken ${AUTH_TOKEN_PRIVATE_REGISTRY}

RUN npm i @my-scope/my-package # success!

并且在使用 Yarn 时:

RUN yarn config set @my-scope:registry https://registry.npmjs.org && \
    yarn config set //registry.npmjs.org:_authToken ${AUTH_TOKEN_PRIVATE_REGISTRY}

RUN yarn add @my-scope/my-package # 404!

我真的很想知道我在使用 Yarn 时做错了什么。我看到了很多通过 CLI 登录的选项,这些选项可以工作,但我需要使过程自动化。

经过一些试验,我通过添加 2 个文件解决了这个问题:.yarnrc.npmrc

.yarnrc 包含以下内容:

registry "https://registry.npmjs.org"

.npmrc 包含:

//registry.npmjs.org/:_authToken=[ACCESS_TOKEN]

您现在可以从 Docker 和 运行 yarn add @my-scope/foo-bar 中删除 yarn config set 行来安装您的软件包。