为Dockerfile选择TAG的好方法

时间:2018-08-11 08:58:20

标签: docker dockerfile

我想知道有什么好的方法来确定$sql_login = "SELECT * FROM system_admin WHERE admin_username ='".mysqli_real_escape_string($con,$_POST["username"])."' AND admin_password = '".mysqli_real_escape_string($con,$_POST["password"])."'"; 的TAG。

例如,我很清楚我的要求。

  1. 我需要Python 3.6
  2. 由于尺寸小,我需要Alpine发行。

我应该选择

Dockerfile

FROM python:3.6.6-alpine3.8

1 个答案:

答案 0 :(得分:1)

即使python:3.6-alpinepython:3.6.6-alpine3.8的别名,通常(但这是个人喜好),我还是在选择基本图像时尽可能地精确,所以我宁愿使用{{ 1}}。

它避免了阅读python:3.6.6-alpine3.8的人和使用图像的人的误解,例如:

  

哦!为什么该库在图像中不可用?也许是因为高山版本?顺便问一下,什么是阿尔卑斯版本?我要检查Dockerfile来查看...

对于Python版本,它更为复杂,因为使用/etc/alpine-release标记,如果发布3.6.6版本,您的构建最终可能会在将来失败;实际上,通过查看Python images versions on Docker store,似乎只保留了具有最新修复程序版本的图像。但是,这取决于您是否需要重建映像,或者只是将映像一次推送到您自己的注册表中,然后用作基础映像。如果希望使用常规版本,那么在这种特殊情况下,我可能会使用3.6.7,因为通常修复版本不会删除兼容性,而只会添加一些小的改进/错误修复。

简而言之,选择标签不需要花费任何精确的时间,并且在使用图像时可以节省很多解释:您只需阅读3.6-alpine3.8,就可以确切地知道所扩展的基础图像中的内容。 。但请注意,如果这些标签的预期寿命很短。