如何检查泊坞窗容器内的红宝石版本
问题描述:
我必须通过创建以下文件泊坞窗如何检查泊坞窗容器内的红宝石版本
# Select ubuntu as the base image
FROM ubuntu
# Install nginx, nodejs and curl
RUN apt-get update -q
RUN apt-get install -qy nginx
RUN apt-get install -qy curl
RUN apt-get install -qy nodejs
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
# Install rvm, ruby, bundler
RUN curl -sSL https://get.rvm.io | bash -s stable
RUN /bin/bash -l -c "rvm requirements"
RUN /bin/bash -l -c "rvm install 2.1.0"
RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc"
# Add configuration files in repository to filesystem
ADD config/container/nginx-sites.conf /etc/nginx/sites-enabled/default
ADD config/container/start-server.sh /usr/bin/start-server
RUN chmod +x /usr/bin/start-server
# Add rails project to project directory
ADD ./ /rails
# set WORKDIR
WORKDIR /rails
# bundle install
RUN /bin/bash -l -c "bundle install"
# Publish port 80
EXPOSE 80
# Startup commands
ENTRYPOINT /usr/bin/start-server
打造泊坞窗容器,当我去的容器内,并发出命令红宝石-v它抛出庆典:红宝石:命令不发现
可以在任何一个可以帮助我在做这个
答
安装RVM后,您没有设置默认红宝石。试着在安装后设置默认的ruby。
RUN /bin/bash -l -c "rvm install 2.1.0"
RUN /bin/bash -l -c "rvm use 2.1.0 --default"
答
最近我花了一些时间搞乱了RVM,Ruby和Docker。这个答案可能不是你要找的东西,但无论如何需要说:如果你不是绝对需要RVM,那么不要在你的docker文件中使用它。你已经注意到了一个缺点:必须用/ bin/bash -lc预占你的命令。如果你想让一个非root用户在你的Docker容器中运行一个ruby程序,你会遇到另一个不利因素。此外,当您运行bash shell时,您的问题很可能与Docker不加载.bashrc或.bash_profile(我忘记了哪一个RVM修改)有关。
而是使用从源代码编译的Ruby:
RUN apt-get update
RUN apt-get install -yq build-essential openssl libreadline6 libreadline6-dev curl git-core \
zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev \
autoconf libc6-dev ncurses-dev automake libtool bison subversion libmysqlclient-dev
ADD http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz /tmp/
RUN cd /tmp && tar -xzf /tmp/ruby-2.1.2.tar.gz
RUN cd /tmp/ruby-2.1.2/ && ./configure --disable-install-doc && make && make install
RUN rm -rf /tmp/*
ADD http://production.cf.rubygems.org/rubygems/rubygems-2.4.1.tgz /tmp/
RUN cd /tmp && tar -xzf /tmp/rubygems-2.4.1.tgz
RUN cd /tmp/rubygems-2.4.1 && ruby setup.rb
RUN rm -rf /tmp/*
RUN echo "gem: --no-ri --no-rdoc" > ~/.gemrc
RUN gem install bundler --no-rdoc --no-ri
+0
这绝对是IMHO的方式。你可以用独立的图像完成你所有耗费时间的红宝石建筑,并且在此后安心。谢谢你的提示! – Ben 2015-05-07 22:14:43
那么,为什么我们不能用''ruby''作为一个典型的仓? (为什么我们总是需要bash -c -l) – 2017-01-25 08:04:04