我已经看了很多帖子但仍然不清楚所以在这里发布我的问题以便更好地理解。
我有 2 个 git 仓库。前端 1 个,后端 1 个。
开发人员编写代码并在测试完成后将代码推送到 DockerHub。 Docker 映像将 commit hash
作为标记名称(映像名称 = username/myapp-fe:1906d8f)
我正在用 Ansible 编写一个 Jenkins 作业,它将执行 docker-compose
文件。 docker-compose
将执行以下任务
我不知道如何提取以 commit hash
作为标签名称的最新 docker 镜像?
我应该使用 docker 的 Digest:sha256
代替 commit hash
标签名称吗?我可以从这个替换中获得什么好处?
答案 0 :(得分:0)
如果您希望每次运行作业时都执行等效于 docker pull username/myapp-fe:1906d8f
的操作,请不要使用 SHA256 哈希。只需使用标签本身。
如果您使用 Docker SHA256,则指定一个特定的图像而不考虑标签,即如果有多个带有标签 1906d8f
的图像,您也可以指定一个较旧的图像:docker pull username/myapp-fe@sha256:4ecb92a78f71a48c681a4d219a9ede869afd6dbedf27bc5dea44aa3e1a38ccea
。请注意在这种引用图像的方式中没有标签。
使用它的好处是你指定了一个特定的图像而不是一个浮动标签——如果该标签更新了一个错误的图像,你的管道可能会无缘无故地失败——你的代码不会改变,但你的图像会改变!