GitLab Docker构建失败:HTTPS客户端收到HTTP响应错误
解决Docker构建时"https: server gave HTTP response to HTTPS client"报错
以下是针对GitLab CI环境下该报错的排查和解决步骤:
检查GitLab Runner节点的Docker守护进程配置
仅在.gitlab-ci.yaml中配置不安全仓库是不够的,Runner所在节点的Docker daemon需要明确信任这个HTTP仓库:- 编辑
/etc/docker/daemon.json文件(不存在则创建),添加:{ "insecure-registries": ["IP:5000"] } - 重启Docker服务:
sudo systemctl restart docker - 重启GitLab Runner服务:
sudo systemctl restart gitlab-runner
- 编辑
修正Docker-in-Docker(DinD)的CI配置
如果CI使用DinD模式构建,需要在job中关闭TLS并传递不安全仓库参数:
在.gitlab-ci.yaml的对应job里添加:variables: DOCKER_TLS_CERTDIR: "" # 关闭DinD的TLS强制要求 DOCKER_OPTS: "--insecure-registry IP:5000"确保job使用
docker:latest镜像并关联docker:dind服务。验证镜像拉取的基础连通性
在Runner节点上手动执行docker pull IP:5000/project/app:stg,如果同样报错,说明Docker daemon的不安全仓库配置未生效;如果能成功拉取,再检查CI脚本中的构建命令是否正确。确认私有仓库的服务状态
- 用
telnet IP 5000测试Runner节点与仓库的端口连通性 - 确认私有仓库本身运行在HTTP协议下,未配置HTTPS证书
- 用
内容的提问来源于stack exchange,提问作者BlueSky95
相关产品推荐
相关产品推荐

