Npm安装在Docker容器中找不到我的自定义注册表

卢卡斯·加里奥

我正在尝试使用docker-compose在node:alpine图像上构建一个React应用。但是,当时间到了时,npm install它不会出现以下错误:

npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://<myCustomRegistry>/packageName failed, reason: getaddrinfo ENOTFOUND <myCustomRegistry>
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network 
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-04-03T15_06_13_130Z-debug.log

myCustomRegistry 是我通过vpn访问的注册表的名称。

我试过的

  • 重新启动VPN
  • 更改.npmrc
  • 使用我公司的DNS在正确服务下的docker-compose.yml文件中添加dns字段,该DNS会知道myCustomRegistry我首先认为这可能是因为docker-compose dns无法识别myCustomRegistry我可能做错了,这仍然是一个可能的假设。
  • 设置一个npm代理(阅读文档,但不知道该怎么做)

文件:

Docker文件

# Builds the react app into 3 static files
FROM node:alpine as builder
WORKDIR /app
COPY . .
RUN npm i && npm run build

# Copies those static files and serve them
FROM node:alpine
RUN yarn global add serve
WORKDIR /app
COPY --from=builder /app/build .
EXPOSE 80
CMD ["serve", "-p", "80", "-s", "."]

Docker-compose配置文件:

version: "3.7"
services:

  <... other services>
  front:
    build: ./front
    container_name: dobby_front
    ports: 
      - "8080:80"
    volumes:
      - './front:/app'
      - '/app/node_modules'
    dns:
      - 10.128.103.16
      - 172.21.103.5

.npmrc

registry=https://<myCustomRegistry>
save-exact=true

提前致谢

卢卡斯·加里奥

最后,我决定使用一种解决方法。对于处理相同问题的任何人,这都将局部解决您的问题。请确保您正在使用的所有远程服务器也以这种方式配置。

据我了解,当前无法在使用docker-compose的构建中使用自定义DNS,它仅在运行时使用。因此,要传递自定义DNS,您必须使用替代方法并将其添加到整个全局配置中。

转到/etc/dockerdaemon.json添加以下内容编辑或创建JSON文件

{
    "dns": ["<your custom remote dns address here>", "8.8.8.8"]
}

重新启动docker,并使用您的VPN,应该很好:)

请注意,这是一个hack /解决方法,绝不是每个人的好习惯。它的作用域不够好:影响了整个docker作用域,而不仅仅是您的应用程序之一。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NPM安装始终无法在随机时间获取Docker容器中的NPM注册表

在Android Studio中找不到我的自定义视图的自定义属性

尝试为 Outlook 重新启用禁用的自定义加载项,但在注册表编辑器中找不到

Wordpress 找不到我的自定义字体

Maven找不到我的自定义Maven原型

Python 找不到我的自定义模块

SimpleCursorAdapter在参数中找不到我的列表的自定义视图-Android

NPM注册表安装在非注册表依赖项上失败

在 vbscript 中调用 EnumKey 作为查询 Windows 注册表的安装程序中的自定义操作会导致 wbemErrNotFound

如何在wix安装程序的自定义操作中添加非常长的十六进制注册表?

找不到安装到自定义 docker 映像中的 python 包

在“ npm”注册表中找不到软件包“ my-custom-package”

在 npm 注册表中找不到 react-router-dom

在“npm”注册表中找不到包“babel-present-react”

numpy python 3.4.1安装:在注册表中找不到Python 3.4

docker本地注册表“ exec:\“ htpasswd \”:在$ PATH中找不到可执行文件”

我在 Docker 容器中找不到 postgresql 表

Prometheus自定义注册表不起作用

Inno Setup:使用“注册表”部分中“自定义向导”页面中的数据

为什么Maven找不到我的自定义Mojo?

为什么找不到我自己的自定义模块?

NodeJs:modules.export:找不到我自己的自定义模块之一

Android 数据绑定错误:找不到我的自定义 @BindingAdapter 的符号

为什么在通过 PhpUnit 运行测试时找不到我的自定义 TestCase 类?

需要python版本2.6,在注册表中找不到

RuntimeException:在注册表中找不到应用程序“”。

处理tfjs错误-在注册表中找不到后端

注册表中吐司通知按钮的自定义URL

注册表中不存在键的自定义Reg文件