在构建Docker容器时,我遇到了这个错误Step 6/17 : RUN bower install --allow-root ---> Running in 20f9229dcd1e bower angular-touch#~1.5.0 CERT_HAS_EXPIRED Request to https://registry.bower.io/packages/angular-touch failed: certificate has expired
建立这个形象是工作正常约2年,然后突然拒绝合作。如何刷新丢失的证书?
4条答案
按热度按时间vcudknz31#
你可能都在使用一个基于旧节点docker镜像的“非常旧”的构建堆栈,它使用旧的Debian发行版作为其基础镜像(即。例如
node:6
=〉Debian Stretch)。看起来是www. example的letsencrypt证书 www.example.com .这在较旧的Debian发行版中是不可用的/已知的。
当然,现在是时候升级堆栈了,但与此同时,你可以将其添加到你的Dockerfile中,就在你做
bower install
之前,作为一个变通方法:然后使用此标志告诉bower使用系统范围的CA系统:
ykejflvf2#
在我的例子中,我只添加了两行。鲍氏锉
这是一种变通方法,而且是一种糟糕的做法。但是使用bower和过时的插件也是不好的做法
gmxoilav3#
我从昨天开始就犯了这些错误。我解决了如下:如果你有你的依赖在鲍尔。json像这样:
然后将其更改为:
使用指定的版本和git url。你可以在这里找到所有bower包的git url:https://registry.bower.io/packages
qzwqbdag4#
bower install
仍然适用于较新版本的node。从我注意到的,证书停止工作的版本6,7和8。作为解决方法:只有
bower install
命令我在较新的节点(例如12)上执行,其余用于构建项目的命令我在所需的版本上执行。它在我们的项目中起作用了。