ARTIFACTORY:如何使用JFrog CLI为Docker Buildx构建的图像添加构建信息

依琳娜Floim
2022-06-12 12:53

Docker buildx是一个CLI插件,它扩展了Docker命令,并允许创建多架构的Docker映像。
将build-info添加到使用buildx构建的映像的过程与将其添加到常规docker映像的过程相同,但是,有些用户可能难以通过docker客户端将构建的buildx映像导出到本地docker映像。因此,我们将使用JFrog CLI将构建信息添加到已经推送到Artifactory的现有docker映像中。

下面的命令是docker buildx build命令的一个示例,该命令用于从一个简单的Dockerfile创建一个多架构映像。在这种情况下,镜像支持linux/amd64和linux/arm64架构:

docker buildx build——file Dockerfile——platform linux/amd64,linux/arm64——tag /workshop-docker/tdp/multi-arch-test:1.1.1-rc。1——output=type=image——push。

docker推送成功后,推送到Artifactory的图片可以在创建的路径workshop-docker-local/tdp/multi-arch-test下查看:

用户添加图片

现在,为了将构建信息附加到已经推送到Artifactory的映像上,我们将使用JFrog CLI构建docker create命令。这个命令允许在build-info中添加一个已经发布到Artifactory的docker映像。该命令使用必选字段,即存储库名称和-image-file标志。-image-file将是包含如下格式的一行文件的路径:

IMAGE-TAG@sha256: MANIFEST-SHA256

对于本例,我们将使用以下内容添加1.1.1-rc。1图像到build-info:
$ cat image-file-details

< Artifactory_host > / workshop-docker / tdp / multi-arch-test: 1.1.1-rc.1@sha256:08f48947b09fdfdee641f49129cf0e528703f2e63b0afba231dd0324a3f53cb0

jfrog rt bdc命令如下:
Jfrog rt BDC workshop-docker-local——image-file image-file-details——build-name $build-name——build-number $build-number

接下来,我们将使用build-publish命令将build-info发布到Artifactory:
jfrog rt bp myBuild 2

在发布build-info之后,我们将能够在' Builds '部分以及在artifact -build-info存储库下看到它:

用户添加图片

注意:由于目前不支持使用jfrog rt bdc命令将list.manifest.json关联到build-info,所以应该在每个清单上执行bdc命令。Json文件,意思是,在每个标签上。