我正在尝试在docker上安装ruby。我可以安装1.9版本,但无法安装最新版本,如2.2.0及更高版本。我实际上是想在docker上设置calabash。尝试了this。每当我尝试在其中安装calabash-android时会出现错误
ERROR: Error installing calabash-android:
luffa requires Ruby version >= 2.0.
答案 0 :(得分:11)
如果你正在启动FROM
一个不同的基础Docker实例,你可以简单地RUN
从你的基本实例的包管理系统安装Ruby的命令。例如,this GitHub Gist显示了如何使用apt-get
在Ubuntu实例上安装Ruby:
# Pull base image.
FROM dockerfile/ubuntu
# Install Ruby.
RUN \
apt-get update && \
apt-get install -y ruby
this Gist显示了一个Dockerfile,它被配置为在Ubuntu实例上安装RVM和Ruby:
FROM ubuntu
RUN apt-get update
# basics
RUN apt-get install -y openssl
# install RVM, Ruby, and Bundler
RUN \curl -L https://get.rvm.io | bash -s stable
RUN /bin/bash -l -c "rvm requirements"
RUN /bin/bash -l -c "rvm install 2.0"
RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc"
答案 1 :(得分:10)
答案 2 :(得分:4)
这使得ruby可用于任何未来的RUN命令,而不仅仅是bash:
FROM debian:stretch-slim
RUN \
apt-get update && apt-get install -y --no-install-recommends --no-install-suggests curl bzip2 build-essential libssl-dev libreadline-dev zlib1g-dev && \
rm -rf /var/lib/apt/lists/* && \
curl -L https://github.com/sstephenson/ruby-build/archive/v20180329.tar.gz | tar -zxvf - -C /tmp/ && \
cd /tmp/ruby-build-* && ./install.sh && cd / && \
ruby-build -v 2.5.1 /usr/local && rm -rfv /tmp/ruby-build-* && \
gem install bundler --no-rdoc --no-ri
答案 3 :(得分:3)
信誉低下,所以我无法在线内评论(潜伏了所有这些年,叹息),但是如果在寻找将旧红宝石版本安装到docker的过程中发生任何其他事件,我发现@grosser的回答非常有帮助-至少对于我来说,它根本无法通过RVM进行安装。
但是,我建议使用推荐的方法来安装ruby-build-以下对我有用:
<prior steps>
RUN git clone https://github.com/rbenv/ruby-build.git && \
PREFIX=/usr/local ./ruby-build/install.sh && \
ruby-build -v 2.4.1 /usr/local && \
gem install bundler -v <VERSION HERE> --no-ri --no-rdoc && bundle install
<following steps>
关键点在于,这可以使您了解ruby-build的最新信息,而不是像@grosser的评论中那样被硬编码为2018-03-29版本。
答案 4 :(得分:0)
由于@Jacob和@grosser,我已经设法以类似的方式设置了我的矿井,如果还有更多解压缩的方式:
# Install Local ruby
RUN git clone https://github.com/rbenv/rbenv.git ~/.rbenv \
&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc \
&& echo 'eval "$(rbenv init -)"' >> ~/.bashrc
ENV HOME /home/jenkins # Change this dir as needed.
ENV PATH "$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
ENV RUBY_VERSION 2.6.3
RUN mkdir -p "$(rbenv root)"/plugins \
&& git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
RUN rbenv install $RUBY_VERSION
RUN rbenv global $RUBY_VERSION && rbenv versions && ruby -v
# RUN curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash # Uncomment this to get rbenv to validate your setup.
答案 5 :(得分:0)
如果您想使用bundle install
之类的东西并且不将基本映像与Ubuntu这样的预安装devtools一起使用,则需要安装以下软件包:
RUN apt-get update && apt-get install -y ruby ruby-dev ruby-bundler build-essential
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*