2017-06-16 1 views
0

Je travaille sur un fichier docker pour créer un espace de travail personnalisé sur Codenvy. Lorsque je crée le tout espace de travail semble installer correctement mais lorsque l'espace de travail ouvert et j'entre ruby -v je reçois:Ruby and Rails "chemin introuvable" lors de l'installation à l'aide de RVM sur Docker

bash: ruby: command not found

Idem pour rails:

[email protected]:/projects$ rails -v 
bash: rails: command not found 

Si je tape la liste de RVM Je reçois

[email protected]:/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/[email protected]/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/[email protected]" 
    MY_RUBY_HOME: "/home/user/.rvm/rubies/ruby-2.4.0" 
    IRBRC:  "/home/user/.rvm/rubies/ruby-2.4.0/.irbrc" 
    RUBYOPT:  "" 
    gemset:  "" 

qui me semble que les choses sont correctement installées.

Si je tape /home/user/.rvm/rubies/ruby-2.4.0/bin/ruby -v, il montre la version de rubis correcte. /home/user/.rvm/rubies/ruby-2.4.0/bin est dans le PATH pourquoi n'est-il pas recherché?

Voici la partie pertinente de mon fichier docker si cela aide.

# 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 

Toute aide pour ces commandes à fonctionner sans utiliser /home/user/.rvm/rubies/ruby-2.4.0/bin serait très apprécié.

Répondre

0

J'ai eu le même problème et finalement je l'ai fixé en téléchargeant un fichier /root/.bashrc se terminant par

source /opt/rvm/scripts/rvm 
source /etc/profile.d/ruby.sh 

export PATH=$PATH:/opt/rvm/bin 

Les lignes avec la source, sont ajoutés par moi. L'exportation a été ajoutée par RVM à l'installation. Le reste de mon fichier bashrc est le contenu qui a été installé par Debian. Je viens d'ajouter ces lignes.

Mon fichier contient ruby.sh

#!/bin/sh 
export RUBY_HOME=/opt/rvm/rubies/default 

Pour moi, cela fait l'affaire. Quand je me connecte en utilisant/bin/bash (non-shell) ou via/bin/bash -l -c "la commande va ici", mes commandes rvm et ruby ​​répondent toutes les deux. De plus, mon RUBY_HOME et GEM_PATH, ... sont tous remplis.

Mon installation actuelle docker rubis se trouvent ici: https://github.com/vindevoy/dockerhub-debian-ruby (sources) https://hub.docker.com/r/vindevoy/debian-ruby/ (image)

+0

oublié de mentionner. J'installe rvm dans/opt. – user3256848