我正在尝试在Docker上安装ruby。我可以安装1.9版本,但不可能安装最新版本,如2.2.0和以上版本。我实际上是在尝试在Docker上设置葫芦。我已经尝试了this。每当我尝试在其中安装葫芦Android时,都会出现错误
ERROR: Error installing calabash-android: luffa requires Ruby version >= 2.0.
g0czyy6m1#
如果你要启动FROM一个不同的基本Docker示例,你可以简单地使用RUN命令,从基本示例的包管理系统安装Ruby。例如,this GitHub Gist展示了如何使用apt-get在Ubuntu示例上安装Ruby:
FROM
RUN
apt-get
# Pull base image. FROM dockerfile/ubuntu # Install Ruby. RUN \ apt-get update && \ apt-get install -y ruby
this Gist显示了一个配置为在Ubuntu示例上安装RVM和Ruby的Dockerfile:
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"
ecfsfe2w2#
这使得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
nwo49xxi3#
您可以从以下内容开始查看停靠文件:
# 2016 FROM ruby:2.3.0 # 2020 # Import your ruby version FROM ruby:2.7.1 # Install bundler gem RUN gem install bundler # Assign a work directory WORKDIR /work
这将使用已经安装了ruby的docker image ruby。2020年版本来自评论中提到的“ArMD“来自**Arjun Das**。
1yjd4xko4#
低声誉,所以我不能评论内联(所有这些年的潜伏,叹息),但如果其他人发生在这同时寻找方法安装旧ruby版本到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,而不是硬编码到2018-03-29版本,因为在以前的@grosser的评论。
ni65a41a5#
如果你想使用像bundle install这样的东西,而不想使用像Ubuntu这样的预装devtools的基础映像,你需要安装以下软件包:
bundle install
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/*
6pp0gazn6#
多亏了@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.
6条答案
按热度按时间g0czyy6m1#
如果你要启动
FROM
一个不同的基本Docker示例,你可以简单地使用RUN
命令,从基本示例的包管理系统安装Ruby。例如,this GitHub Gist展示了如何使用apt-get
在Ubuntu示例上安装Ruby:this Gist显示了一个配置为在Ubuntu示例上安装RVM和Ruby的Dockerfile:
ecfsfe2w2#
这使得ruby可用于以后的任何RUN命令,而不仅仅是bash:
nwo49xxi3#
您可以从以下内容开始查看停靠文件:
这将使用已经安装了ruby的docker image ruby。
2020年版本来自评论中提到的“ArMD“来自**Arjun Das**。
1yjd4xko4#
低声誉,所以我不能评论内联(所有这些年的潜伏,叹息),但如果其他人发生在这同时寻找方法安装旧ruby版本到docker,我发现@grosser的答案很有帮助-它的工作,试图通过RVM安装根本不会,至少对我来说。
然而,我建议使用推荐的方法来安装ruby-build -以下方法对我很有效:
这里关键的一点是,这让你保持最新的ruby-build,而不是硬编码到2018-03-29版本,因为在以前的@grosser的评论。
ni65a41a5#
如果你想使用像
bundle install
这样的东西,而不想使用像Ubuntu这样的预装devtools的基础映像,你需要安装以下软件包:6pp0gazn6#
多亏了@Jacob和@grosser,我成功地以一种类似的方式建立了我的网站,尽管这种方式更加开放: