2016-02-12 91 views
0

Docker基础镜像rails为Ruby on Rails提供了完整的环境。它从上游图像拉出ruby上游图像。 rails基本映像指定了Ruby和Ruby on Rails版本。如何更改Rails基础Docker镜像的Ruby和Rails版本?

如果我们想要使用不同的Ruby和Ruby on Rails版本,该怎么办?

我们是否在我们的项目文件夹中编辑我们的Dockerfile?或者,我们进入机器,安装我们想要的红宝石版本,然后建立自己的图像?

进一步了解详细:

基本图像文档中说,您的文档文件可以简单地一行代码:

FROM rails:onbuild 

这行代码从轨拉图像Docker Hub。这个图像有它自己的Dockerfile。这Dockerfile的第一行是FROM ruby:2.2

只是为了重申这个问题,根据不同的Ruby和Ruby on Rails版本创建基于rails映像的容器的最佳方法是什么?如果可能的话,一些示例代码可能有助于理解如何执行此操作。

回答

1

我想你想要一个适合大量rails应用程序的docker映像。

我不知道泊坞窗可言,但也许忽略了什么泊坞窗提供给你,做你自己:

与所有伟大的Ruby版本创建的图像,也许是1.9和2.3, 我认为你应该坚持最新的红宝石。

使用https://github.com/rbenv/rbenv提供红宝石ENV

每个Rails应用程序通常附带一个Gemfile中。 在生产版本中,gem版本被锁定在Gemfile.lock文件中。

万一宝石需要更新,你将需要更新应用程序代码,然后用

bundle install 

宝石因此,我认为it's不可能有一个泊坞窗“一个适合所有人“很多照片应用程序的图像很好。

我在安装高效导轨应用程序时所做的一件事就是将它们的宝石安装在应用程序文件夹中。

bundle install --path vendor/bundle 

这会将gem应用程序放入其供应商目录中。我看到这里没有什么大的机会让更新生活变得更容易。


正如我从来没有尝试过搬运工,甚至访问他们的网站,我的帖子可能是无用的(SRY) 我希望我理解你的意图,至少。