Ruby和Rails“;“未找到路径”;在Docker上使用RVM安装时
我正在处理docker文件,以便在其上创建自定义工作区。当我创建工作区时,一切似乎都安装正确,但当工作区打开并输入Ruby和Rails“;“未找到路径”;在Docker上使用RVM安装时,docker,rvm,dockerfile,codenvy,Docker,Rvm,Dockerfile,Codenvy,我正在处理docker文件,以便在其上创建自定义工作区。当我创建工作区时,一切似乎都安装正确,但当工作区打开并输入ruby-v时,我得到: bash:ruby:command未找到 轨道也一样: user@de98ec223612:/projects$ rails -v bash: rails: command not found 如果我键入rvm列表,我将得到 user@de98ec223612:/projects$ rvm info ruby-2.4.0: system:
ruby-v
时,我得到:
bash:ruby:command未找到
轨道也一样:
user@de98ec223612:/projects$ rails -v
bash: rails: command not found
如果我键入rvm列表,我将得到
user@de98ec223612:/projects$ rvm info
ruby-2.4.0:
system:
uname: "Linux de98ec223612 3.10.0-514.10.2.el7.x86_64 #1 SMP Fri Mar 3 00:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux"
name: "Ubuntu"
version: "16.04"
architecture: "x86_64"
bash: "/bin/bash => GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)"
zsh: " => not installed"
remote path: "ubuntu/16.04/x86_64"
rvm:
version: "rvm 1.29.1 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/]"
updated: "5 minutes 31 seconds ago"
path: "/home/user/.rvm"
autolibs: "[4] Allow RVM to use package manager if found, install missing dependencies, install package manager (only OS X)."
ruby:
interpreter: "ruby"
version: "2.4.0p0"
date: "2016-12-24"
platform: "x86_64-linux"
patchlevel: "2016-12-24 revision 57164"
full_version: "ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]"
homes:
gem: "/home/user/.rvm/gems/ruby-2.4.0"
ruby: "/home/user/.rvm/rubies/ruby-2.4.0"
binaries:
ruby: "/home/user/.rvm/rubies/ruby-2.4.0/bin/ruby"
irb: "/home/user/.rvm/rubies/ruby-2.4.0/bin/irb"
gem: "/home/user/.rvm/rubies/ruby-2.4.0/bin/gem"
rake: "/home/user/.rvm/rubies/ruby-2.4.0/bin/rake"
environment:
PATH: "/home/user/.rvm/gems/ruby-2.4.0/bin:/home/user/.rvm/gems/ruby-2.4.0@global/bin:/home/user/.rvm/rubies/ruby-2.4.0/bin:/usr/lib/jvm/java-1.8.0-open
jdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bundle/bin:/usr/lib/postgresql/9.6/bin:/home/user/.rvm/bin"
GEM_HOME: "/home/user/.rvm/gems/ruby-2.4.0"
GEM_PATH: "/home/user/.rvm/gems/ruby-2.4.0:/home/user/.rvm/gems/ruby-2.4.0@global"
MY_RUBY_HOME: "/home/user/.rvm/rubies/ruby-2.4.0"
IRBRC: "/home/user/.rvm/rubies/ruby-2.4.0/.irbrc"
RUBYOPT: ""
gemset: ""
在我看来,一切都安装正确了
如果我键入/home/user/.rvm/rubies/ruby-2.4.0/bin/ruby-v
,它将显示正确的ruby版本/home/user/.rvm/rubies/ruby-2.4.0/bin
在路径中,为什么不进行搜索
这里是我的docker文件的相关部分,如果有帮助的话
# Install RVM
RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB &&\
echo progress-bar >> ~/.curlrc &&\
\curl -sSL https://get.rvm.io | bash -s stable &&\
/bin/bash -l -c 'source ~/.rvm/scripts/rvm'
# Install Ruby
RUN /bin/bash -l -c 'rvm requirements' &&\
/bin/bash -l -c 'rvm install ${RUBY_VERSION}' &&\
/bin/bash -l -c 'rvm use ${RUBY_VERSION} --default' &&\
/bin/bash -l -c 'rvm rubygems current'
# Install bundler
RUN /bin/bash -l -c 'gem install bundler'
# Install Rails
RUN /bin/bash -l -c 'gem install rails'
RUN echo $PATH
EXPOSE 3000
WORKDIR /projects
CMD /bin/bash -l -c 'source ~/.rvm/scripts/rvm' && sudo service postgresql start && tail -f /dev/null
如何让这些命令在不使用
/home/user/.rvm/rubies/ruby-2.4.0/bin的情况下运行?如果您的团队可以接受,那么从Eclipse Che为RoR提供的基本dockerfile开始可能更容易:
这会让你了解基本知识,社区也会不断更新。然后,您可以使用所需的任何其他工具、库和deps来扩展它。我也遇到了同样的问题,最终我通过上传一个以
source /opt/rvm/scripts/rvm
source /etc/profile.d/ruby.sh
export PATH=$PATH:/opt/rvm/bin
带有源代码的行由我添加。RVM在安装时添加了导出。我的bashrc文件的其余部分是由Debian安装的内容。我刚加了几行
我的ruby.sh文件包含
#!/bin/sh
export RUBY_HOME=/opt/rvm/rubies/default
对我来说,就是这样。当我使用/bin/bash(非shell)或通过/bin/bash-l-c“这里有命令”登录时,我的命令rvm和ruby都会响应。还有,我的红宝石之家和宝石之路。。。都满了
我当前的ruby docker安装可以在以下位置找到:
(来源)
(图)忘了提。我在/opt中安装rvm。