docker - 使用 Azure 管道更新 JFrog Docker 注册表中的最新 Artifactory

标签 docker azure-pipelines artifactory

我正在将我的镜像推送到 JFrog Artifactory Docker 注册表,标签为:最新的 Azure 任务

- task: ArtifactoryDocker@1
  displayName: 'Publish a docker image'      
  inputs:
    command: 'push'
    artifactoryService: 'Artifactory'
    targetRepo: 'docker'
    imageName: '$(imageName):latest'

但是它不会重写现有的最新版本,并且在管道中我会看到下一个日志

    394668d88274: Layer already exists
d821d3ad1366: Layer already exists
78d869964af5: Layer already exists
26f565299233: Layer already exists
c952f96d3d90: Layer already exists
29a09581f308: Layer already exists
30ffbe29feab: Layer already exists
af63a7c31ba7: Layer already exists
6153c9b0b282: Layer already exists
25c2968702ec: Layer already exists
610209d4392e: Layer already exists
7cd35e62d6fb: Layer already exists
2de391e51d73: Layer already exists
92d30847d049: Layer already exists
d73dd9e65295: Layer already exists
686245e78935: Layer already exists
d7ff1dc646ba: Layer already exists
644879075e24: Layer already exists
latest: digest: sha256:586235b20caabc398b8da81d79a48e27385456d4a4bc2a343f7cacdd8ce97b38 size: 4078

我可以以某种方式将其覆盖吗?我找不到任何有关此插件任务的文档。

最佳答案

Cannot find any documantation for this task of plugin.

恐怕 Azure DevOps 不存在此插件。

根据我的理解,之前的图像应该被覆盖。在上述管道执行完成后,您可以检查您的图像哪个标签是最新。我认为图像的修改时间应该随着管道的运行而改变。

Layer already exists

这应该是因为您的 dockerfile 那里没有更改。大家知道,Dockerfile的每条指令都会生成一个层。如果指令没有改变,相应的图层也不会改变。

此外,如果您担心该镜像不是您要推送的最新镜像。您可以考虑在推送之前删除该标签。

检查这个JFrog document ,并考虑使用命令行任务来执行此api:

curl -k -u {username}:{password} -X DELETE https://{reverseproxyhost}/artifactory/<repo>/<imgname>/<imgtag>

关于docker - 使用 Azure 管道更新 JFrog Docker 注册表中的最新 Artifactory ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60864943/

相关文章:

docker - docker镜像之间的常用命令

sql-server - docker容器启动后运行命令

docker - 如何为Docker的多个副本分配资源?

Azure Pipeline 使用 YAML 触发 Pipeline

gradle - 如何将默认的Jfrog Artifactory Dependency Declaration坐标更改为Gradle格式?

docker - 将Makefile移植到Jenkinsfile,但是环境变量有问题

azure - DevOps 的 KeyVault secret - Python

azure - 在模板中使用 powershell 脚本

gitlab - 如何在 JFrog 中自动删除 Artifactory ,同时删除 Gitlab 上的特定分支?

apache - 文件与 Artifactory