在 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
行来安装您的软件包。
我尝试在 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
行来安装您的软件包。