2015-08-28 116 views
1

Heroku Docker镜像heroku/ruby​​安装ruby 2.2.3。如何更改Docker镜像中的Ruby版本(用2.0.0替换2.2.0)

如何使用该映像,但使用ruby 2.0.0(尝试Dockerize Rails 3.2应用程序)。

我知道Heroku的buildpack为2.0.0的位置是

https://heroku-buildpack-ruby.s3.amazonaws.com/cedar-14/ruby-2.0.0.tgz 

,但不能看到如何修改我的Dockerfile,这样它将使用Ruby的版本代替。

我想:当我运行

# Dockerfile 
FROM heroku/ruby 

# Install Ruby 
ONBUILD RUN curl -s --retry 3 -L https://heroku-buildpack-ruby.s3.amazonaws.com/cedar-14/ruby-2.0.0.tgz | tar xz -C /app/heroku/ruby/ruby-2.2.0 

其中我所希望的,可能会覆盖2.2.0与2.0.0(保持路径等相同),但该命令被忽略docker-compose build

回答

2

这是我落得这样做在同一个泊坞窗文件再生Heroku的环境(红宝石和节点):

FROM heroku/heroku:16 

# Ruby dependencies 
RUN apt-get update -qq && \ 
    apt-get install -y -q --no-install-recommends \ 
    build-essential\ 
    libpq-dev\ 
    libxml2-dev\ 
    libxslt1-dev\ 
    nodejs\ 
    npm \ 
    qt5-default\ 
    libqt5webkit5-dev\ 
    gstreamer1.0-plugins-base\ 
    gstreamer1.0-tools\ 
    gstreamer1.0-x\ 
    xvfb \ 
    && rm -rf /var/lib/apt/lists/* \ 
    && truncate -s 0 /var/log/*log 

# Ruby heroku 
RUN apt remove -y --purge ruby && curl -s --retry 3 -L https://heroku-buildpack-ruby.s3.amazonaws.com/heroku-16/ruby-2.3.4.tgz | tar -xz 

# Node heroku 
RUN export NODE_VERSION=6.11.0 && \ 
    curl -s --retry 3 -L https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz -o /tmp/node-v$NODE_VERSION-linux-x64.tar.gz && \ 
    tar -xzf /tmp/node-v$NODE_VERSION-linux-x64.tar.gz -C /tmp && \ 
    rsync -a /tmp/node-v$NODE_VERSION-linux-x64//&& \ 
    rm -rf /tmp/node-v$NODE_VERSION-linux-x64* 

WORKDIR /var/app 
相关问题