我想知道,有什么好的方法来决定Dockerfile的哪个标记。
例如,我很清楚我的要求。
我应该选
FROM python:3.6.6-alpine3.8或
FROM python3.6-alpine发布于 2018-08-11 13:02:01
即使python:3.6-alpine通常是python:3.6.6-alpine3.8的别名(但这是个人偏好),我在选择基本图像时也尽量精确,所以我宁愿使用python:3.6.6-alpine3.8。
它避免了对阅读Dockerfile的人和使用图像的人的误解,例如:
噢!为什么图像中没有那个库?也许是因为阿尔卑斯的版本?顺便问一下,阿尔卑斯的版本是什么?我要去检查
/etc/alpine-release看看..。
对于Python,它更复杂,因为使用3.6.6标记,如果发布3.6.7版本,您的构建最终可能会失败;实际上,通过查看Docker存储上的Python图像版本,似乎只保留了带有最新修复版本的图像。但是,这一切都取决于您的映像是否需要重建,或者它是否只被推送到您自己的注册表中,然后作为基本映像使用。如果期望定期构建,在这种情况下,我可能会使用3.6-alpine3.8,因为通常是,修复版本不会删除兼容性,只会添加一些小的改进/bug修复。
简而言之,在选择标记时不需要花费任何费用,并且在使用图像时可以节省大量的解释:您可以通过读取Dockerfile准确地知道扩展的基本映像中的内容。但是如果这些标签的寿命很短的话,一定要小心。
https://stackoverflow.com/questions/51798102
复制相似问题