如何让buildctl通过HTTP连接本地Artifactory镜像仓库
解决buildctl强制使用HTTPS连接本地不安全仓库的问题
针对你使用buildctl 0.11.1连接本地Artifactory仓库时,已添加registry.insecure=true但仍强制走HTTPS的问题,可通过以下几种方式解决:
1. 显式指定HTTP协议前缀
在所有涉及仓库地址的参数中,给地址加上http://前缀,直接告知buildctl使用HTTP协议连接:
buildctl build \ --frontend=dockerfile.v0 \ --local context=. \ --local dockerfile=. \ --output type=image,name=http://192.168.0.110:8082/docker-local/test,push=true,registry.insecure=true \ --export-cache type=registry,ref=http://192.168.0.110:8082/docker-local/test,mode=max,push=true,registry.insecure=true \ --import-cache type=registry,ref=http://192.168.0.110:8082/docker-local/test,registry.insecure=true
2. 配置buildkit守护进程的不安全仓库列表
如果不想每次命令都手动加前缀,可修改buildkitd的配置文件(默认路径为/etc/buildkitd.toml),添加目标仓库的不安全配置:
[registry."192.168.0.110:8082"] insecure = true
修改完成后重启buildkit服务:
systemctl restart buildkit
此后执行buildctl命令时,无需指定HTTP前缀,会自动使用HTTP连接该仓库。
补充说明
在buildctl 0.11.x版本中,registry.insecure=true仅作用于跳过证书验证,不会自动将默认协议从HTTPS切换到HTTP。必须通过显式指定协议前缀,或配置buildkit守护进程的方式,强制使用HTTP连接不安全仓库。
内容的提问来源于stack exchange,提问作者igor
相关产品推荐
相关产品推荐

