在Phusion Passenger Docker镜像中select特定的Ruby版本

我正在尝试在Phusion-Passenger Docker镜像中部署Rails应用程序:

https://github.com/phusion/passenger-docker

应用程序的Gemfile指定了Ruby 2.3.1版本,但默认情况下该映像带有2.2.5,因此bundle安装失败。

我已经阅读过几次这个文档,但是我不清楚这个图像是否可以使用不同的主要/次要版本的Ruby。

我已经在Dockerfile中尝试了以下内容

FROM phusion/passenger-full ARG app_init=default # Set correct environment variables. ENV HOME /root # Use baseimage-docker's init process. CMD ["/sbin/my_init"] RUN bash -lc 'rvm install ruby-2.3.1' RUN bash -lc 'rvm --default use ruby-2.3.1' 

当安装并设置Ruby 2.3.1作为默认设置时,“Bundle install”步骤在构buildDocker映像时就超时了。

当我打开一个shell的容器,并重置Ruby到2.2.5,捆绑安装工程。

是否有可能使用这个图像与Ruby 2.3.1而不是Ruby 2.2.5?

我解决了这个几个变化。

首先,我使用了ruby23变体而不是完整的变体:

 FROM phusion/passenger-ruby23 

这可能不是必要的,但会减lessbuild立的图像的大小。

其次,我添加了一个额外的运行命令来更新捆绑软件gem:

 RUN bash -lc 'rvm install ruby-2.3.1' RUN bash -lc 'rvm --default use ruby-2.3.1' RUN gem install bundler 

一旦我将这些更改添加到Dockerfile,捆绑安装工作