我有一个Dockerfile在其中运行npm安装
..。运行npm安装..。
此错误如下所示:
npm ERR! Linux 4.4.0-92-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v7.10.1
npm ERR! npm v4.2.0
npm ERR! code DEPTH_ZERO_SELF_SIGNED_CERT
npm ERR! self signed certificate当直接在同一台机器上运行npm安装时,我不会碰到这个问题。(也就是说,当我运行它时,不是码头建设的一部分)。所以我不认为这个问题与任何http代理有关。
@Tarun,
这是curl -v https://docker.com的输出
-使用TLS1.2 / ECDHE_RSA_AES_128_GCM_SHA256的SSL连接
GET / HTTP/1.1 主机: docker.com 用户-代理: curl/7.47.0
下面是方框中停靠容器中的curl命令。
根@2145cd2e9997:/app/c3PO# curl -v https://docker.com
curl:(60) SSL证书问题:自签名证书
这里有更多详细信息:http://curl.haxx.se/docs/sslcerts.html
curl默认使用证书颁发机构(CA)公钥(CA certs)的“包”来执行SSL证书验证。如果默认的包文件不够,可以使用--cacert选项指定备用文件。
如果此HTTPS服务器使用由包中表示的CA签名的证书,证书验证可能由于证书问题而失败(该证书可能过期,或者该名称可能与URL中的域名不匹配)。
如果要关闭curl对证书的验证,请使用-k (或-不安全)选项。
发布于 2020-01-03 09:37:20
如果您正在从Dockerfile运行一些npm命令,那么您可以在运行npm命令之前添加这个命令:
RUN npm config set strict-ssl false
RUN npm install注意:建议将公司的根证书(如果您在公司防火墙后面)复制到容器中,而不是完全禁用SSL。
发布于 2017-09-14 20:29:19
我想出来了。我在码头主机上运行jenkins,并使用iptables将端口443转发到8080。这与修船师自己的停机坪规则相冲突,这些规则导致了我对自我签名证书的所有问题。
这个堆栈溢出帖子帮助我发现了这个问题:SSL certificate verification fails inside docker container on specific server
https://stackoverflow.com/questions/46224256
复制相似问题