Ich denke, es ist ein Umgebungsproblem. Wenn ich es manuell (ohne eine Dockerfile) mache, funktioniert es.Fehler beim Erstellen eines Docker-Image für die Ruby On Rails-Umgebung (von einer Docker-Datei)
Hier ist meine Dockerfile:
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get upgrade --assume-yes
RUN apt-get install wget vim git --assume-yes
# install RVM
RUN apt-get install build-essential curl --assume-yes
RUN curl -L https://get.rvm.io | bash -s stable
RUN echo 'source /etc/profile.d/rvm.sh' >> ~/.bashrc
RUN /usr/local/rvm/bin/rvm-shell -c "rvm requirements"
# install Ruby
RUN /usr/local/rvm/bin/rvm-shell -c "rvm autolibs enable"
RUN /usr/local/rvm/bin/rvm-shell -c "rvm install 2.1.2"
# install Rails
RUN echo "gem: --no-rdoc --no-ri" >> ~/.gemrc
RUN gem install rails -v 4.1.5
# install nodeJS
RUN sudo apt-get install nodejs --assume-yes
EXPOSE 3000
als ich bauen mit:
sudo docker build -t="james/rails" .
ich diesen Fehler:
Step 11 : RUN gem install rails -v 4.1.5
---> Running in 44efc6b7c254
/bin/sh: 1: gem: not found
2014/09/04 18:33:52 The command [/bin/sh -c gem install rails -v 4.1.5] returned a non-zero code: 127
rvm Verwendung ohne eine Shell heikel ist. Der Punkt von rvm ist auch, mehrere Installationen von Ruby zu verwalten, und mit Docker brauchen Sie das nicht. Geh einfach mit einem Ruby-Basis-Image, zum Beispiel binaryphile/ruby (https://registry.hub.docker.com/u/binaryphile/ruby/), oder du kannst mein rbenv-basiertes Image verwenden: cthulhu666/docker-rbenv (https://registry.hub.docker.com/u/cthulhu666/docker-rbenv/) wenn du es nicht magst, Dinge als root zu installieren (und ich rate dir, Dinge nicht als root zu installieren). Als eine Nebenbemerkung wird das Ausführen von 'apt-get upgrade' in Dockerfile als eine schlechte Übung angesehen. – cthulhu