2017-06-16 4 views
0

Ich arbeite an einer Andockdatei, um einen benutzerdefinierten Arbeitsbereich unter Codenvy zu erstellen. Wenn ich den Arbeitsbereich alles schaffen korrekt zu installieren scheint aber, wenn der Arbeitsbereich geöffnet und ich ruby -v eingeben erhalte ich:Ruby und Rails "Pfad nicht gefunden" bei der Installation mit RVM auf Docker

bash: ruby: command not found

Das Gleiche gilt für Schienen:

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

Wenn ich rvm Liste Typ I erhalten

[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:  "" 

die für mich aussieht wie die Dinge richtig installiert sind.

Wenn ich /home/user/.rvm/rubies/ruby-2.4.0/bin/ruby -v tippe, zeigt es die korrekte ruby ​​Version an. /home/user/.rvm/rubies/ruby-2.4.0/bin ist im PATH, warum wird nicht gesucht?

Hier ist der relevante Teil meiner Docker-Datei, wenn das hilft.

# 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 

Jede Hilfe dieser Befehle immer sehr geschätzt funktionieren, ohne Verwendung von /home/user/.rvm/rubies/ruby-2.4.0/bin würde.

Antwort

0

hatte ich das gleiche Problem und schließlich fixiert ich es durch eine /root/.bashrc Datei mit

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

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

Die Linien mit Quelle endet das Hochladen, werden von mir hinzugefügt. Der Export wurde von RVM bei der Installation hinzugefügt. Der Rest meiner bashrc-Datei ist der Inhalt, der von Debian installiert wurde. Ich habe gerade diese Zeilen hinzugefügt.

Meine ruby.sh Datei enthält

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

Für mich, dass der Trick funktioniert. Wenn ich mich mit/bin/bash (non-shell) oder via/bin/bash -l -c "command goes here" anmelde, reagieren meine Befehle rvm und ruby ​​beide. Auch mein RUBY_HOME und GEM_PATH, ... sind alle gefüllt.

kann Mein aktueller Rubin Docker Installation finden Sie hier: https://github.com/vindevoy/dockerhub-debian-ruby (Quellen) https://hub.docker.com/r/vindevoy/debian-ruby/ (Bild)

+0

vergessen zu erwähnen. Ich installiere rvm in/opt. – user3256848

Verwandte Themen