Ruby on Docker:确定我需要哪个图像

Ruby on Docker:确定我需要哪个图像,ruby,docker,Ruby,Docker,我有一个Sinatra应用程序,我想开始在Docker做开发和生产。看到这样的博客:提倡使用瘦身的阿尔卑斯山图片。我理解拥有一个更小的图像的价值,但是在我对这个主题的研究中,我找不到一个明确的解释,如何确切地知道我现在或将来是否需要完整的docker ruby图像?我是否从Alpine for dev和prod开始,然后假设如果以后需要更大的图像,我会切换到它?什么样的新需求需要更大的docker ruby映像?谢谢这取决于项目的依赖关系以及项目的工作流程。到目前为止,只有你知道这一点 在以后的

我有一个Sinatra应用程序,我想开始在Docker做开发和生产。看到这样的博客:提倡使用瘦身的阿尔卑斯山图片。我理解拥有一个更小的图像的价值,但是在我对这个主题的研究中,我找不到一个明确的解释,如何确切地知道我现在或将来是否需要完整的docker ruby图像?我是否从Alpine for dev和prod开始,然后假设如果以后需要更大的图像,我会切换到它?什么样的新需求需要更大的docker ruby映像?谢谢

这取决于项目的依赖关系以及项目的工作流程。到目前为止,只有你知道这一点

在以后的构建过程中,您仍然可以使用
Dockerfile
安装一些,比如Ruby包管理器(rpm)(可能已经出现在许多映像中)和一些即使使用较大的Ruby基映像也不必出现的Ruby包(因此,较大的映像对这些依赖项没有帮助,您仍然需要安装它们)

其他服务(例如数据库)可以(也应该)由其他容器(例如
mysql
)轻松处理,因此不需要扩展ruby映像


这个问题非常广泛,因此很难给出一个非常具体的答案。

决定使用alpine,并根据回答看看它会带来什么。

谢谢,所以我现在看到这个:它说:“ruby:alpine基于alpine Linux。它是最小的ruby基础映像,但主要的警告是它确实使用musl libc而不是glibc和friends,因此某些软件可能会遇到问题,具体取决于其libc要求的深度"。这给了我更多的见解,但仍然不能真正回答是否从Alpine开始的问题。我记不起我参与过的任何项目,其中一项新功能需要gem安装以外的任何东西。因此,如果Alpine支持gem安装,为什么我需要Alpine以外的任何东西来开始?@David这确实取决于你的想法eed。我不能告诉你。:/我建议你尝试使用alpine,如果你发现一些不易安装的需求,请重新考虑你的基本映像选择。谢谢@vmonteco。其他人是否可以提供alpine映像不支持的sinatra应用程序功能的任何具体示例?