首页 > 解决方案 > 码头工人的 JFrog xray 祖先

问题描述

我目前在工件中部署了两个 A 和 B 工件,它们在 xray 中被索引。B 是 A 中的基本图像。我在 xray ui 中查看 B,但是在祖先选项卡中我没有找到 A 作为祖先列出。

请让我知道我缺少的任何东西。

编辑:

基本上我的目标是获取某些工件的祖先以确定组件关系,运行一些 ui 回归测试。它处理当前的类型——npm、maven、pypi 和 docker。任何指向这些类型的任何类似问题的指针都值得赞赏。

标签: artifactory

解决方案


你在 UI 中看到的与 Xray 索引 docker 图像的方式有关,我会解释。当 Docker 图像在 Xray 中被索引时,它会将 manifest.json(docker 图像的抽象)作为根父级索引,将层作为它的后代索引。

注意:您在 UI 中看到的祖先/后代视图是基于校验和的关系

如果 docker B 有 2 层,一旦它成为 docker A 的基础层,它将在 Docker A 中显示为 1 层(具有不同的校验和)

在示例中,您在上面提供了:


             Docker-A (manifest.json)                  Docker-B (manifest.json)
                    /          \                            /           \
                   /            \                          /             \
                 1/             2\                       1/              2\    
 Base Layer(B)+Another Layer(B) Another Layer(A)   Base Layer(B)  Another Layer(B)

Docker-A 的 Manifest 不是 Docker-B 的祖先,因此,您不会在 UI 中看到它。

例如,如果 Docker-B 只有一层,并且它是 docker-A 的基础层,那么具有相同校验和的同一层将显示在 Docker-A 中

       Docker-A (manifest.json)                  Docker-B (manifest.json)
                /          \                                  |           
               /            \                                 |            
             1/             2\                               1|                     
      Base Layer(B)    Another Layer(A)                Base layer(B) 

在这种情况下,如果您检查 Base Layer(B) 的祖先选项卡,您将看到 Docker-A 和 Docker-B


推荐阅读