我正在尝试在我的容器中安装一个私有包(@some-private-package)。我正在使用此命令通过 docker compose 在容器中安装包
docker-compose run container yarn add @some-private-package
但是每当我运行命令时,我都会得到这个
[1/4] Resolving packages...
error An unexpected error occurred: "https://registry.npmjs.org/@some-private-package: Not found".
info If you think this is a bug, please open a bug report with the information provided in "/home/node/app/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
但是,当我在本地运行yarn add命令时,它确实有效。
我可以在容器中看到
.yarnrc
文件以及 NPM_TOKEN
,所以我仍然不确定为什么会收到此错误
可能出了什么问题?
我通过 docker compose yaml 将所有内容传递到我的容器,其定义如下
x-container: &container
build:
context: '../container'
args:
NPM_TOKEN: '${NPM_TOKEN}'
NODE_ENV: 'development'
depends_on:
- mysql
links:
- 'gateway:local'
hostname: container
env_file:
- config/secrets/mysql.env
volumes:
- '../container:/home/node/app:cached'
我尝试删除并重建没有缓存的容器,但问题仍然存在
您可以采取哪些措施来排查或解决此问题
.yarnrc
文件可能不会复制到您的 Docker 容器。确认您的 docker 文件中有类似的内容COPY .yarnrc package.json yarn.lock {Your WORKDIR}
。NPM_TOKEN
确认docker-compose run container echo $NPM_TOKEN
确实存在于您的容器中。docker-compose run container yarn add @some-private-package
,请尝试运行容器,然后在 docker-desktop
中启动终端。在终端中执行 export ${YOUR_NPM_TOKEN(The actual token)}
,然后运行 yarn add @some-private-package
。如果您需要任何其他帮助,请告诉我