在 Artifactory 从 6.10.4 升级到 7.4.1 之后,我进行了必要的端口更改并且 UI 工作正常,但是当我尝试通过子域方法使用 docker login 时,我在 artifactory-service 日志中看到以下内容:
请求 /v2/ 应该是一个 repo 请求并且不匹配任何 repo key
docker login 命令提示进行身份验证,但随后返回:
来自守护进程的错误响应:登录尝试 http://<local-docker-repo>.<artifactory-url>.com/v2/ 失败,状态为:404 Not Found
Artifactory 在 nginx 入口控制器后面的 Kubernetes 集群中运行,该控制器具有专门设置为通过与 Artifactory UI 相同的后端为 https://<local-docker-repo>.<artifactory-url>.com 提供服务的入口。似乎某些 URL 重写功能不起作用,我只是不确定我是如何错误配置它的,因为我在以前的版本中没有问题。
卷曲结果如下:
curl -i -L -k http://docker-local.<artifactory-url>.com/v2/
HTTP/1.1 308 Permanent Redirect
Server: nginx/1.15.9
Date: Mon, 21 Sep 2020 00:25:32 GMT
Content-Type: text/html
Content-Length: 171
Connection: keep-alive
Location: https://docker-local.<artifactory-url>.com/v2/
X-JFrog-Override-Base-Url: ://docker-local.\<artifactory-url>.com:80
X-Forwarded-Port: 80
Host: docker-local.artifactory.<artifactory-url>.com
X-Forwarded-For: 10.60.1.1
HTTP/2 401
server: nginx/1.15.9
date: Mon, 21 Sep 2020 00:25:32 GMT
content-type: application/json;charset=ISO-8859-1
content-length: 91
www-authenticate: Basic realm="Artifactory Realm"
x-artifactory-id: ea0c76c54c1ef5de:45761df0:174ad9a6887:-8000
x-artifactory-node-id: artifactory-0
x-jfrog-override-base-url: ://docker-local.<artifactory-url>.com:443
x-forwarded-port: 443
host: docker-local.<artifactory-url>.com
x-forwarded-for: 10.60.x.x
strict-transport-security: max-age=15724800; includeSubDomains
{
"errors" : [ {
"status" : 401,
"message" : "Authentication is required"
} ]
任何帮助将不胜感激!
编辑:作为一种解决方法,我启用了存储库路径作为 Docker 访问方法,它工作正常——仍然不确定子域哪里出错了。