如何从包含提交哈希作为标签名称的 DockerHub 中提取最新(最新)docker 镜像

时间:2020-12-29 19:49:33

标签: docker docker-compose

我已经看了很多帖子但仍然不清楚所以在这里发布我的问题以便更好地理解。
我有 2 个 git 仓库。前端 1 个,后端 1 个。
开发人员编写代码并在测试完成后将代码推送到 DockerHub。 Docker 映像将 commit hash 作为标记名称(映像名称 = username/myapp-fe:1906d8f
我正在用 Ansible 编写一个 Jenkins 作业,它将执行 docker-compose 文件。 docker-compose 将执行以下任务

  • 创建docker网络
  • 从 DockerHub 拉取并运行最新的前端和后端映像。

我不知道如何提取以 commit hash 作为标签名称的最新 docker 镜像?
我应该使用 docker 的 Digest:sha256 代替 commit hash 标签名称吗?我可以从这个替换中获得什么好处?

1 个答案:

答案 0 :(得分:0)

如果您希望每次运行作业时都执行等效于 docker pull username/myapp-fe:1906d8f 的操作,请不要使用 SHA256 哈希。只需使用标签本身。

如果您使用 Docker SHA256,则指定一个特定的图像而不考虑标签,即如果有多个带有标签 1906d8f 的图像,您也可以指定一个较旧的图像:docker pull username/myapp-fe@sha256:4ecb92a78f71a48c681a4d219a9ede869afd6dbedf27bc5dea44aa3e1a38ccea。请注意在这种引用图像的方式中没有标签。 使用它的好处是你指定了一个特定的图像而不是一个浮动标签——如果该标签更新了一个错误的图像,你的管道可能会无缘无故地失败——你的代码不会改变,但你的图像会改变!