【问题标题】:Artifactory Docker 404 after upgrade to 7.4.1升级到 7.4.1 后的 Artifactory Docker 404
【发布时间】:2020-09-20 20:59:43
【问题描述】:

在 Artifactory 从 6.10.4 升级到 7.4.1 之后,我已经进行了必要的端口更改并且 UI 工作正常,但是当我尝试使用 docker login via 时,我在 artifactory-service 日志中看到以下内容subdomain method:

请求 /v2/ 应该是一个 repo 请求并且不匹配任何 repo key

docker login 命令提示进行身份验证,但随后返回:

来自守护程序的错误响应:登录尝试 http://..com/v2/ 失败,状态为:404 Not Found

Artifactory 在 nginx 入口控制器后面的 Kubernetes 集群中运行,该控制器有一个入口设置,专门通过与人工界面。似乎某些 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 访问方法,它工作正常——仍然不确定子域哪里出错了。

【问题讨论】:

  • 如果你curl -i https://&lt;local-docker-repo&gt;.&lt;artifactory-url&gt;.com/v2/你会得到什么
  • 这是我得到的:HTTP/1.1 308 Permanent Redirect Server: nginx/1.15.9 Date: Mon, 21 Sep 2020 00:17:54 GMT Content-Type: text/html Content-Length: 171 Connection: keep-alive Location: https://docker-local.&lt;artifactory-url&gt;/v2/ X-JFrog-Override-Base-Url: ://docker-local.&lt;artifactory-url&gt;:80 X-Forwarded-Port: 80 Host: docker-local.&lt;artifactory-url&gt;.com X-Forwarded-For: 10.62.x.x
  • 卷曲是否包含斜杠?您可以在 curl 中使用 -L 来跟踪重定向。另外,请在问题上使用编辑,cmets中的多行代码块很难阅读。
  • 抱歉,更新了问题。谢谢!
  • 哦,您错过了 https 并从 http 重定向。该响应看起来很正常,您正在与注册服务器交谈。对于基本身份验证,您应该能够传递 -u 'user:pass' 替换用户并使用您的凭据传递,并且我用单引号括起来以避免特殊字符出现问题。

标签: docker artifactory jfrog


【解决方案1】:

问题是 Artifactory 提供的 nginx 重写规则中的 $repo 变量由于某种原因没有被填充。由于我们在子域方法中只使用了一个注册表,因此我更新了重写规则以提供解决问题的 repo 名称。

举例说明:

rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/$repo/$1/$2;

改为:

rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/docker-local/$1/$2;

【讨论】:

    猜你喜欢
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 2017-03-31
    • 1970-01-01
    相关资源
    最近更新 更多