为什么Docker官方图片不能按照“最佳实践”的要求使用USER

Postgres,mariadb,mysql不要使用USER。 据说正式的图像审查遵守的最佳做法文件,这需要在可能的用户。 为什么?

从根本上说,用户在官方图像中是不可能的。 它与“开始用户应该能够docker run official-image bash而不需要学习 – 入口点”的要求相冲突。 如果你没有root权限,你不能编辑configuration文件,像strace那样安装软件包,或者特别是修复卷中的UID。 实际上,官方形象风格认为是最佳实践。 (所以Docker的用户指南应该把重点放在非root用户上运行守护进程,尤其是在USER上)


海事组织这是一个问题。 您可以从中学习的stream行示例没有显示需要设置固定的UID。 否则,如果使用添加其他用户的基础映像进行更新,则必须手动进行干预。 最佳实践表示你应该考虑设置固定的UID,但是他们甚至没有显示它的一个例子。 所以使用USER的简单Dockerfiles的 突出例子是不设置固定的UID。 官方的图像也没有设置固定的UID – 假装这样做不是问题 – 但是随后使用chown强制数据卷,因为它们的入口点脚本以root身份运行。 不是很有感染力。


从技术上讲,官方的Dockerfiles可以通过添加更多的chown和UID交换到Dockerfile来解决,但这似乎是不可取的。

我想其他的select将是一个path依赖的更新。 也就是说,保持四处播放,直到每个人都完成了对固定UID的自动更新(几个月?),然后将其删除。