我正在尝试使用Jenkins来构建docker镜像并将其推送到私有注册表。但是,在尝试docker login
命令时,出现此错误:
http: server gave HTTP response to HTTPS client
我知道可能会发生这种情况,因为未将私有注册表添加为不安全的注册表。但是,如何在CI管道中解决此问题?
Jenkins是在Kubernetes集群上设置的,我正在尝试自动在集群上部署应用程序。
答案 0 :(得分:1)
这与Jenkins CI管道或Kubernetes无关。除非按照以下任一步骤进行配置,否则Jenkins将无法推送您的图片
您在这里有两个选择
1)配置您的Docker客户端以通过HTTPS使用安全注册表。这将包括设置自签名证书或从您本地的证书颁发机构获取证书。
2)第二种解决方案是在未加密的HTTP连接上使用注册表。
因此,如果您在kubernetes上运行docker。您将必须在daemon.json
中配置/etc/docker/daemon.json
文件。
PS:该文件可能不存在。您将必须创建它。
然后添加以下内容。确保您更改网址以匹配您的Docker注册表
{
"insecure-registries" : ["myregistrydomain.com:5000"]
}
然后根据群集上安装的Linux发行版的版本,使用systemctl restart docker
或etc/init.d/docker restart
重新启动Docker
如果您有任何疑问,请告诉我