繁体   English   中英

在Docker容器中使用像RVM这样的版本管理器是不好的做法吗?

[英]Is it a bad practice to use version managers like RVM inside docker containers?

我是使用rbenv ,到目前为止,我无法找到包含RVMrbenv许多ruby / rails图像。

我看到的最常见的事情是每个容器都有多个标签 ,每个标记的图像版本安装了一个 Ruby版本。 例如,请参见此图片

使用其他版本的唯一方法是为您正在使用的映像使用另一个标记,因为您无法使用RVM或rbenv安装新版本。

这是故意的吗?

在docker容器中使用版本管理器编程语言是不好的做法吗?

为什么?

这在docker中被认为是一种不好的做法或反模式。 RVM正在尝试解决docker正在解决的类似问题,但采用了一种截然不同的方法。 RVM专为主机或VM而设计,所有工具都安装在一个位置。 Docker创建了一个隔离的环境,其中只包含运行单个应用程序所需的工具。

容器理想上是简约的,只包含应用程序所需的先决条件,使它们更具可移植性。 Docker还使用层和联合文件系统来重用每个映像的公共基础映像,因此任何类似Ruby版本X的副本只会下载并写入磁盘一次(忽略对该映像的更新)。

这取决于你将如何使用它。 如果你需要在自定义docker镜像上安装任何版本的ruby,而不必担心下载tarball和应用补丁RVM可能是完美的。 RVM基本上是一个bash脚本,因此在docker容器中使用它与在docker容器中使用任何其他bash脚本一样糟糕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM