gpt4 book ai didi

ruby-on-rails - 如何检查docker容器内的ruby版本

转载 作者:数据小太阳 更新时间:2023-10-29 08:37:45 25 4
gpt4 key购买 nike

我已经通过创建下面的 docker 文件构建了 docker 容器

# 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

当我进入容器并给出命令 ruby​​ -v 它抛出 bash: ruby​​: command not found

谁能帮我做这件事

最佳答案

最近我花了一些时间研究 RVM、Ruby 和 Docker。这个答案可能不是你要找的,但无论如何都需要说:如果你不是绝对需要 RVM,那么不要在你的 docker 文件中使用它。您已经注意到一个缺点:必须使用/bin/bash -lc 抢占您的命令。如果您想让非根用户在您的 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

关于ruby-on-rails - 如何检查docker容器内的ruby版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25825736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com