2016-02-12 136 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) 我希望我理解你的意圖,至少。