Gitlab 注册表选项卡不工作

Gitlab 注册表选项卡不工作,gitlab,Gitlab,我已经在AWS服务器上安装了gitlab,它正在按预期工作 但当我点击“注册表”选项卡时,我看到页面未找到错误(500) 来自/etc/gitlab/gitlab.rb的相关部分 gitlab_rails['gitlab_default_projects_features_container_registry'] = true # registry_external_url 'https://registry.gitlab.example.com' registry_external_ur

我已经在AWS服务器上安装了gitlab,它正在按预期工作

但当我点击“注册表”选项卡时,我看到页面未找到错误(500)


来自/etc/gitlab/gitlab.rb的相关部分

gitlab_rails['gitlab_default_projects_features_container_registry'] = true

# registry_external_url 'https://registry.gitlab.example.com'
registry_external_url 'http://ec2-54-167-34-63.compute-1.amazonaws.com:4567'

# Settings used by GitLab application
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "http://ec2-54-167-34-63.compute-1.amazonaws.com"
gitlab_rails['registry_port'] = "5005"
gitlab_rails['registry_api_url'] = "http://localhost:5000"
gitlab_rails['registry_key_path'] = "/var/opt/gitlab/gitlab-rails/certificate.key"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"
gitlab_rails['registry_issuer'] = "omnibus-gitlab-issuer"

# Settings used by Registry application
registry['enable'] = true
registry['username'] = "registry"
registry['group'] = "registry"
registry['uid'] = nil
registry['gid'] = nil
registry['dir'] = "/var/opt/gitlab/registry"
registry['log_directory'] = "/var/log/gitlab/registry"
registry['log_level'] = "info"
registry['rootcertbundle'] = "/var/opt/gitlab/registry/certificate.crt"
registry['storage_delete_enabled'] = true

更新

根据下面的日志,我需要将gitlab registry.key文件放在正确的位置。这个文件是什么?如何生成

tail/var/log/gitlab/gitlab rails/production.log

Started GET "/root/test/container_registry" for 125.99.49.46 at 2016-10-24 08:29:27 +0000
Processing by Projects::ContainerRegistryController#index as HTML
  Parameters: {"namespace_id"=>"root", "project_id"=>"test"}
Completed 500 Internal Server Error in 23ms (ActiveRecord: 3.5ms)

Errno::ENOENT (No such file or directory @ rb_sysopen - /var/opt/gitlab/gitlab-rails/etc/gitlab-registry.key):
  lib/json_web_token/rsa_token.rb:20:in `read'
  lib/json_web_token/rsa_token.rb:20:in `key_data'
  lib/json_web_token/rsa_token.rb:24:in `key'
  lib/json_web_token/rsa_token.rb:28:in `public_key'
  lib/json_web_token/rsa_token.rb:33:in `kid'
  lib/json_web_token/rsa_token.rb:12:in `encoded'
  app/services/auth/container_registry_authentication_service.rb:30:in `full_access_token'
  app/models/project.rb:421:in `container_registry_repository'
  app/controllers/projects/container_registry_controller.rb:28:in `container_registry_repository'
  app/controllers/projects/container_registry_controller.rb:8:in `index'
  lib/gitlab/request_profiler/middleware.rb:15:in `call'
  lib/gitlab/middleware/go.rb:16:in `call'

更新2

我想我需要像这里解释的那样生成一个证书


检查GitLab服务器日志(因为这是一个错误500。此类日志的示例:)

GitLab 8.13:存在一个未决问题,存在合并请求。
它们可能与您的问题有关

还提到“整理自签名证书问题(我的注册表与gitlab本身位于不同的域中)”:这里不应该是这种情况

(推到注册表仍然经常遇到
未经授权:需要身份验证
)表明R docker 1.11+的错误已经消失(因此这取决于您在AWS上使用的docker版本)


关于OP编辑中提到的
gitlab registry.key
,如果声明正确,应该通过简单的
reconfigure
创建它

因此,请仔细检查:

原来是我的打字错误。
配置键是
registry\u nginx[“ssl\u证书”]
而不是
registry\u nginx[ssl\u证书]

  • 显示了该功能是如何添加的

尝试只设置少数注册表设置,如:

registry_external_url 'http://ec2-54-167-34-63.compute1.amazonaws.com:4567'
如果要保留默认值,请不要设置
gitlab_rail['registry']
registry['xxxxx']
,如果不知道要修改什么,请不要设置值

关于证书,请查看
gitlab.rb
文件的最底部,在这里您可以为注册表设置证书:

registry_nginx['ssl_certificate'] = "/path/to/my/cert.crt"
registry_nginx['ssl_certificate_key'] = "/path/to/my/key.key"
还要检查以下命令的输出,以检查GitLab实例:

sudo gitlab-rake gitlab:check
与之前一样,将注册表的证书设置为:

registry\u nginx['ssl\u certificate']=“/path/to/my/cert.crt”

registry\u nginx['ssl\u certificate\u key']=“/path/to/my/key.key”
假设500错误是HTTP错误,不是“440页未找到”,而是“500内部服务器错误”。某个地方可能有一个错误日志,该日志扩展了该一般错误消息。@shantanuo OK。我添加了几个链接来探索