Raz*_* El 3 ruby ruby-on-rails rvm docker dockerfile
我是使用 docker 的新手,到目前为止我无法找到许多包含RVM或 的ruby/rails 图像rbenv。
我看到的最常见的情况是每个容器都有多个标签,并且每个标记的镜像版本只安装了一个版本的 Ruby。例如,请参见此图片。
使用其他版本的唯一方法是为您正在使用的映像使用另一个标签,因为您无法使用 RVM 或 rbenv 安装新版本。
这是故意的吗?
在 docker 容器内使用编程语言的版本管理器是一种不好的做法吗?
为什么?
这在 docker 中被认为是一种不好的做法或反模式。RVM 正在尝试解决 docker 正在解决的类似问题,但采用了截然不同的方法。RVM 专为将所有工具安装在一个位置的主机或虚拟机而设计。Docker 创建了一个隔离的环境,其中仅包含运行单个应用程序所需的工具。
容器在理想情况下是简约的,仅包含应用程序所需的先决条件,使它们更加便携。Docker 还使用层和联合文件系统来为每个映像重用公共基础映像,因此 Ruby 版本 X 之类的任何副本只会下载并写入磁盘一次(忽略对该映像的更新)。