我正在尝试在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,捆绑安装工作