docker - 如何从包含提交哈希作为标记名称的 DockerHub 中提取最新(最新)的 docker 映像
问题描述
我已经浏览了很多帖子,但仍然不清楚,所以在这里发布我的问题以便更好地理解。
我有 2 个 git 存储库。1个前端,1个后端。
开发人员编写代码并在测试完成后将代码推送到 DockerHub。Docker 图像具有commit hash
as 标记名称(图像名称 = username/myapp-fe:1906d8f)
我正在使用 Ansible 编写一个 Jenkins 作业,它将执行docker-compose
文件。docker-compose
将执行以下任务
- 创建泊坞窗网络
- 从 DockerHub 拉取并运行最新的前端和后端映像。
我无法弄清楚提取具有commit hash
标签名称的最新 docker 图像的方法?
我应该使用 dockerDigest:sha256
代替commit hash
标签名称吗?我可以从这个替换中获得什么好处?
解决方案
如果您希望执行相当于docker pull username/myapp-fe:1906d8f
每次运行作业的操作,请不要使用 SHA256 哈希。只需使用标签本身。
如果你使用 Docker SHA256,你指定一个特定的图像,而不考虑标签,即如果有多个带有标签的图像,1906d8f
你也可以指定一个较旧的:docker pull username/myapp-fe@sha256:4ecb92a78f71a48c681a4d219a9ede869afd6dbedf27bc5dea44aa3e1a38ccea
. 请注意,这种引用图像的方式没有标签。使用它的好处是您指定的是特定图像而不是浮动标签 - 如果使用错误图像更新该标签,您的管道可能会无缘无故地失败 - 您的代码不会改变,但您的图像会改变!
推荐阅读
- scala - 将元素添加到scala中的xml字符串
- javascript - 使用隐藏属性与有条件地渲染组件
- ios - 谷歌地图自定义标记停留在错误的位置
- python - 空字符串与其他字符串相比如何?
- python - Python/Tkinter 背景在配置为时不改变颜色
- sql-server - 使用谷歌数据工作室处理的大 Postgres 数据大小
- tensorflow - 使用 BERT (TF 1.x) 保存的模型执行推理
- python - 梯度下降 - 作为列表和作为 numpy 数组的 theta 之间的区别
- java - 用于 DFA 最小化算法的 Java 中的 Pair 类的良好替代品?
- python - 使用 PyPlot 更新 Tkinter Canvas:非常奇怪的行为 - Python3