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

Postgres,mariadb,mysql不使用USER.据推测,我们会审查官方图像是否符合最佳实践文档,尽可能使用requires USER.为什么?
最佳答案
从根本上说,用户无法在官方图片中使用.它与“开始用户应该能够在不需要了解–entrypoint”的情况下运行官方图像bash的要求相冲突.如果您没有root,则无法编辑配置文件,安装strace等软件包,特别是修复卷中的UID.实际上,官方形象风格被认为是(a)最佳实践. (因此,Docker用户指南应该强调以非root用户身份运行守护进程,而不是特别关注USER)

IMO这是一个问题.您可以学习的流行示例并未显示需要设置固定UID.否则,如果使用添加其他用户的基本映像进行更新,则必须手动进行干预.最佳实践说你应该考虑设置固定的UID,但它们甚至没有显示它的例子.因此,使用USER的prominentsimple Dockerfiles示例未设置固定UID.官方图像也没有设置固定的UID – 假装这样不是问题 – 但随后用chown强制数据卷,因为它们的入口点脚本以root身份运行.不太令人印象深刻

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

我想另一种选择是路径依赖的更新.也就是说,保持知名度,直到每个人都完成对固定UID的自动更新(几个月?),然后放弃它.

转载注明原文:为什么Docker官方图像不按照“最佳实践”的要求使用USER - 代码日志