如何在Docker上安装Ruby?

a0zr77ik  于 2022-11-04  发布在  Ruby
关注(0)|答案(6)|浏览(217)

我正在尝试在Docker上安装ruby。我可以安装1.9版本,但不可能安装最新版本,如2.2.0和以上版本。我实际上是在尝试在Docker上设置葫芦。我已经尝试了this。每当我尝试在其中安装葫芦Android时,都会出现错误

ERROR:  Error installing calabash-android:
luffa requires Ruby version >= 2.0.
g0czyy6m

g0czyy6m1#

如果你要启动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显示了一个配置为在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"
ecfsfe2w

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
nwo49xxi

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**。

1yjd4xko

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的评论。

ni65a41a

ni65a41a5#

如果你想使用像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/*
6pp0gazn

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.

相关问题