执行 docker push 到 gitlab-container-registry 时出现 404

Cap*_*rni 5 gitlab-ci docker-registry

我已经在我的服务器上安装了 gitlab-ce 13.2.0,并且容器注册表立即可用。

我可以从其他服务器(或我的本地机器)登录,但是当将图像推送到容器注册表时,我收到 404 错误: error parsing HTTP 404 response body: invalid character '<' looking for beginning of value: "<!DOCTYPE html>\n<html>\n<head>...

在我的 gitlab.rb 我有:

external_url 'https://git.xxxxxxxx.com'
nginx['enable'] = true
nginx['client_max_body_size'] = '250m'
nginx['redirect_http_to_https'] = true

nginx['ssl_certificate'] = "/etc/gitlab/trusted-certs/xxxxxxxx.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/trusted-certs/xxxxxxxx.com.key"
nginx['ssl_protocols'] = "TLSv1.1 TLSv1.2"

registry_external_url 'https://git.xxxxxxxx.com'
Run Code Online (Sandbox Code Playgroud)

令人困惑的是, theregistry_external_url与external_url. gitlab.rb 中有这些行:

### Settings used by GitLab application
# gitlab_rails['registry_enabled'] = true
# gitlab_rails['registry_host'] = "git.xxxxxxxx.com"
# gitlab_rails['registry_port'] = "5005"
# gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"
Run Code Online (Sandbox Code Playgroud)

但是当我取消注释时,我无法登录。

这里有什么问题?

小智 -1

你的图片是怎么命名的?您的图像名称不仅必须与注册表 URL 完全匹配,而且还必须与项目完全匹配。

你不能只构建“ myimage:latest”然后推送它。一定是这样的git.xxxxxxxx.com/mygroup/myproject:latest。您可以从$CI_REGISTRY_IMAGE 预定义变量中获取正确的名称。