我有问题让我的docker注册表在gitlab中启动并运行 . 此计算机在AWS EC2环境中运行 . 没有注册表一切正常,我用Letsencrypt为我的证书 . 我有一个像gitlab.xyz.com这样的网址,我希望将registry.xyz.com作为我的注册表 .

在gitlab.rb文件中,我有以下设置:

`nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.xyz.com/fullchain.pem"`

nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.xyz.com/privkey.pem"

我也在gitlab中使用http来https重定向 .

我使用 nginx['custom_gitlab_server_config'] = "location ^~ /.well-known { root /var/www/letsencrypt; }" 来获取gitlab中nginx的letsencrpyt证书 .

正如我已经发现注册表忽略了我的nginx ['ssl_certificate']文件夹并尝试在 /etc/gitlab/ssl/registry.xyz.com.key/etc/gitlab/ssl/registry.xyz.com.crt 上查找证书 . 从letsencrypt certbot我得到4个.pem文件,我将其复制并将 /etc/gitlab/ssl/ 文件夹中的名称从fullchain.pem更改为registry.xyz.com.crt,并将privkey.pem更改为registry.xyz.com.key . 因此Gitlab可以找到所需的所有信息 . 但我总是得到以下错误:

[emerg] 4874#0: SSL_CTX_use_PrivateKey_file("/etc/gitlab/ssl/registry.xyz.com.key") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/gitlab/ssl/registry.xyz.com.key','r') error:20074002:BIO routines:FILE_CTRL:system lib error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib)

请帮忙 .