尝试在我的容器上安装私有包时出现 404

问题描述 投票:0回答:1

我正在尝试在我的容器中安装一个私有包(@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'

我尝试删除并重建没有缓存的容器,但问题仍然存在

docker docker-compose containers
1个回答
0
投票

您可以采取哪些措施来排查或解决此问题

  1. 您的
    .yarnrc
    文件可能不会复制到您的 Docker 容器。确认您的 docker 文件中有类似的内容
    COPY .yarnrc package.json yarn.lock {Your WORKDIR}
  2. 通过执行
    NPM_TOKEN
    确认
    docker-compose run container echo $NPM_TOKEN
    确实存在于您的容器中。
  3. 如果错误仍然存在,而不是执行
    docker-compose run container yarn add @some-private-package
    ,请尝试运行容器,然后在
    docker-desktop
    中启动终端。在终端中执行
    export ${YOUR_NPM_TOKEN(The actual token)}
    ,然后运行
    yarn add @some-private-package

如果您需要任何其他帮助,请告诉我

© www.soinside.com 2019 - 2024. All rights reserved.