Artifactory docker的JFrog X射线祖先

Artifactory docker的JFrog X射线祖先,artifactory,Artifactory,我目前在artifactory中部署了两个A和B工件,它们在X射线中被索引。B是A中的基本图像。我在X光ui中查看B,但在“祖先”选项卡中,我没有找到列为祖先的A 请让我知道我遗漏了什么 编辑: 基本上,我的目标是获取某些工件的祖先,以确定组件关系,运行一些ui回归测试。它处理当前的类型-npm、maven、pypi和docker。任何针对这些类型的类似问题的建议都是值得赞赏的 您在UI中看到的与X射线索引docker图像的方式相关的内容,我将解释。 当Docker映像在X射线中被索引时,它将D

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

请让我知道我遗漏了什么

编辑:


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

您在UI中看到的与X射线索引docker图像的方式相关的内容,我将解释。 当Docker映像在X射线中被索引时,它将Docker映像的manifest.json抽象作为根父映像索引,并将层作为子映像索引

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

如果docker B在成为docker A的基础层后有2层,则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的清单不是清单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) 

在这种情况下,如果您查看基本层B的祖先选项卡,您将看到Docker-A和Docker-B

谢谢您的回复,这是一个很好的解释。为了解决我的一个问题,有没有一种方法可以从B的manifest.json派生出这个新的校验和-Base LayerB+另一个LayerB来计算a的manifest.json?不,它不能从B的manifest.json派生。再次构建Docker-A后,将在此新层上完成基本层B+另一层B计算的新校验和。还有一个相关的问题。我在检查其他类型和祖先,NPM组件根本不返回祖先。docker的类似逻辑也适用于NPM吗?为了查看祖先,包应该具有归档到归档的关系。例如,如果zip文件中包含Jar文件,那么zip将是Jar文件的祖先,依此类推。JFrog X射线支持以下归档类型:Zip系列jar、war、NuGet和ear、tar gz、xz,以及另一种压缩、7Z、RPM、Debian、Binary GolangYes。是的,您可以在docker中打包NPM包,但是在构建docker文件时应该这样做,此时添加docker包。您可以使用NPM客户端通过不同的远程存储库解析NPM包依赖关系,在docker将从dicker文件构建之后,您将能够看到docker映像与NPM包的关系