在gitlab中通过http配置容器注册表



我试图在安装在我的Ubuntu机器上的gitlab中配置容器注册表。我在http上配置了Docker,它工作了,增加了不安全。Gitlab安装在主机http://5.121.32.5

external_url 'http://5.121.32.5'

在gitlab。我已经启用了以下设置

registry_external_url 'http://5.121.32.5'
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "5.121.32.5"
gitlab_rails['registry_port'] = "5005"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"
为了监听端口,我创建了一个文件
sudo mkdir -p /etc/systemd/system/docker.service.d/

内容如下

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

但是当代码运行在gitlab-ci。yaml文件

docker push ${MY_REGISTRY_PROJECT}:latest

那么我得到一个错误

Error response from daemon: Get "https://5.121.32.5:5005/v2/": dial tcp 5.121.32.5:5005: connect: connection refused

有什么问题吗?我错过了什么?如果我配置了http,为什么这里指定https ?

当您使用docker login -u gitlab-ci-token -p ${CI_JOB_TOKEN} ${CI_REGISTRY}时,docker命令默认为HTTPS导致问题。

你需要告诉你的GitLab Runner使用不安全的注册表:

在运行GitLab Runner的服务器上,将以下选项添加到您的docker启动参数中(对我来说,我将其添加到/etc/default/docker中的DOCKER_OPTS中并重新启动docker引擎):——insecure-registry 172.30.100.15:5050,将IP替换为您自己的不安全注册表。

来源此外,您可能想在这个有趣的讨论中阅读更多关于它的内容

最新更新