如何更改Rails基础Docker镜像的Ruby和Rails版本?

时间:2016-02-12 01:19:44

标签: ruby-on-rails ruby docker

Docker基础映像 rails 为Ruby on Rails提供了完整的环境。它来自 ruby 上游图片。 rails 基本映像指定了Ruby和Ruby on Rails版本。

如果我们想使用不同的Ruby和Ruby on Rails版本会怎样?

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

进一步详情:

rails 基本图片文档说明您的doc文件只能是一行代码:

FROM rails:onbuild

此代码行来自Docker Hub上的 rails 图像。此映像具有自己的Dockerfile。此Dockerfile的第一行是FROM ruby:2.2

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

1 个答案:

答案 0 :(得分:1)

我假设你想要一个可以容纳大量rails应用程序的docker镜像。

我根本不了解docker,但可能会忽略Docker为您提供的功能,并自行完成:

使用所有非常好的红宝石版本创建一个图像,可能是1.9和2.3, 但是我认为你应该坚持使用最新的红宝石。

  

使用https://github.com/rbenv/rbenv提供ruby env

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

如果宝石需要更新,您需要更新应用代码,然后使用

更新宝石
bundle install

所以我认为不可能很好地为大量的rails应用程序提供一个“一刀切”的图像。

我在安装高效的rails应用程序时所做的一件事就是将他们的宝石安装到app文件夹中。

bundle install --path vendor/bundle

这会将gem应用程序放在其供应商目录中。我认为这里没有大的机会让更新生活更轻松。

由于我从未尝试过码头工作,甚至没有访问过他们的网站,我的帖子可能毫无用处(sry) 我希望至少可以理解你的意图。