我想使用 GitLab Docker 注册表。我正在使用 GitLab CE 15.7
我创建了自己的 CA 并签署了证书。 GitLab UI 和 GitLab 运行器工作正常!
谈到 Docker 注册表时,我遇到了一些问题。我这样配置
gitlab.rb
:
registry_external_url 'https://198.18.133.100:5000'
registry['enable'] = true
registry['username'] = "registry"
registry['group'] = "registry"
registry['registry_http_addr'] = "127.0.0.1:5000"
registry['debug_addr'] = "localhost:5001"
registry['env'] = {
'SSL_CERT_DIR' => "/etc/gitlab/ssl/"
}
registry['rootcertbundle'] = "/etc/gitlab/ssl/198.18.133.100.crt"
同样令我困惑的是registry 和registry_nginx 的选项。
我不确定我是否正确配置了它,并且文档对我没有太大帮助。我没有为注册表或任何东西启动任何 docker 容器。我相信这是 GitLab 的二进制文件(如果我没记错的话)。端口 5000 可用,我可以远程登录。
但是,在将映像推送到注册表时,我收到以下错误:
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://198.18.133.100:5000/v2/": x509: certificate signed by unknown authority
Cleaning up project directory and file based variables
00:00
ERROR: Job failed: exit status 1
有什么想法吗?
我已经尝试了很多不同的配置并重新配置了 GitLab 服务器。
已通过在以下路径复制 ca 来修复此问题:
mkdir -p /etc/docker/certs.d/<your_registry_host_name>:<your_registry_host_port>
以及 gitlab.rb 中的正确配置
registry_nginx['enable'] = true
registry_nginx['listen_https'] = true
registry_nginx['redirect_http_to_https'] = true
registry_external_url 'https://registry.YOUR_DOMAIN.gtld'
感谢大家的帮助!