草庐IT

docker - docker build 上的 yarn 警告

coder 2023-05-06 原文

在我的 docker 容器中运行 yarn install 时,它会发出关于没有连接的警告。 https://hub.docker.com/r/tavern/rpg-web/~/dockerfile/

警告您似乎没有互联网连接。尝试使用 --offline 标志以将缓存用于注册表查询。

这可能是什么原因造成的?

最佳答案

由于您的 Dockerfile 有一行读取 RUN yarn(即不使用 yarn 的离线选项),因此 yarn 会尝试确定互联网是否可能会自动可用而不发送任何数据包。

yarn如何查看在线状态?

这是通过使用节点的 os.networkInterfaces() 枚举 docker builder 上下文中的可用网络接口(interface)来完成的。 ,记录在 here .

这又会调用 GetInterfaceAddresses由 libuv 的 uv_interface_addresses 支持. libuv 函数只返回分配了 IP 地址并设置了 IFF_UPIFF_RUNNING 标志的接口(interface)。

要查看实际将哪些地址返回到 Javascript 代码,您可以暂时将此行添加到 Dockerfile:

运行节点 -e 'const os = require("os");常量接口(interface) = os.networkInterfaces(); for (const interface in interfaces) {console.log(interface);常量地址=接口(interface)[接口(interface)]; for (const addr of addrs) {console.log(addr.address)}}'

至少在我的情况下,这只返回了环回地址,yarn 在 1 中明确忽略了该地址。 :

lo 127.0.0.1 ::1

但是在 docker 镜像中运行 ifconfig 也会显示一个 eth0 接口(interface)。该接口(interface)的 HWaddr 与运行 docker 守护进程的机器上的 docker0 接口(interface)相匹配。这表明构建器上下文与 docker bridge 网络一起运行。

那么从 libuv 的列表中排除桥接网络的标准是什么?

在我的例子中,docker 网络没有设置 IFF_RUNNING。这并不像 Linux documentation 那样令人惊讶。表示该字段是为了向后兼容。

要验证您的实例是否属于这种情况,您可以使用 this document 中示例程序的略微修改版本。 , 在第一个 printf() 调用之后添加此代码:

printf("RUNNING: %s", (ifa->ifa_flags & IFF_RUNNING) ? "TRUE": "FALSE");

为什么 docker 没有设置 IFF_RUNNING

设置接口(interface)标志是 docker 不会自行处理的低级操作。 Docker 的 libnetwork 委托(delegate)给 netlink 库 here , 但仅限网络链接 sets IFF_UP .

如何解决?

与此问题相关的事件部分是开源的!

netlink 是 changed公开 IFF_RUNNING 以供阅读 - 可以通过进一步更改 netlink 来启用 libnetwork(以及 docker)来设置该标志。

libuv 也可以在 Github issue on the subject 之后进行扩展。 .这样一个新的 API 最终可以在 node.js 和 yarn 中使用,无论分配的 IP 地址和 IFF_RUNNING 状态如何,都会列出接口(interface)。

关于docker - docker build 上的 yarn 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40186104/

有关docker - docker build 上的 yarn 警告的更多相关文章

  1. ruby - 在院子里用@param 标签警告 - 2

    我试图使用yard记录一些Ruby代码,尽管我所做的正是所描述的here或here#@param[Integer]thenumberoftrials(>=0)#@param[Float]successprobabilityineachtrialdefinitialize(n,p)#initialize...end虽然我仍然得到这个奇怪的错误@paramtaghasunknownparametername:the@paramtaghasunknownparametername:success然后生成的html看起来很奇怪。我称yard为:$yarddoc-mmarkdown我做错了什么?

  2. ruby-on-rails - active_admin 目录中的常量警告重新声明 - 2

    我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA

  3. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  4. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  5. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  6. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  7. ruby-on-rails - 我更新了 ruby​​ gems,现在到处都收到解析树错误和弃用警告! - 2

    简而言之错误:NOTE:Gem::SourceIndex#add_specisdeprecated,useSpecification.add_spec.Itwillberemovedonorafter2011-11-01.Gem::SourceIndex#add_speccalledfrom/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91./opt/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in`==':und

  8. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  9. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  10. ruby-on-rails - Ruby - 如何从 ruby​​ 上的 .pfx 文件中提取公钥、rsa 私钥和 CA key - 2

    我有一个.pfx格式的证书,我需要使用ruby​​提取公共(public)、私有(private)和CA证书。使用shell我可以这样做:#ExtractPublicKey(askforpassword)opensslpkcs12-infile.pfx-outfile_public.pem-clcerts-nokeys#ExtractCertificateAuthorityKey(askforpassword)opensslpkcs12-infile.pfx-outfile_ca.pem-cacerts-nokeys#ExtractPrivateKey(askforpassword)o

随机推荐