मुझे लगता है कि यह एक पर्यावरण समस्या है। जब मैं इसे मैन्युअल रूप से करता हूं (बिना डॉकरफ़ाइल के) यह काम करता है।रूबी ऑन रेल्स पर्यावरण (डॉकरफाइल से) के लिए डॉकर छवि बनाने में त्रुटि
यहाँ मेरी 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
से मैं के साथ निर्माण:
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 का उपयोग करते हुए बिना एक खोल मुश्किल है। आरवीएम का बिंदु रूबी के कई इंस्टॉलेशन प्रबंधित करना है, और डॉकर के साथ आपको इसकी आवश्यकता नहीं है। बस कुछ काम करने वाली रूबी बेस छवि के साथ जाएं, उदाहरण के लिए बाइनरीफाइल/रूबी (https://registry.hub.docker.com/u/binaryphile/ruby/), या आप मेरी आरबीएनवी आधारित छवि का उपयोग कर सकते हैं: cthulhu666/docker-rbenv (https://registry.hub.docker.com/u/cthulhu666/docker-rbenv/) यदि आप चीजों को रूट के रूप में स्थापित करना पसंद नहीं करते हैं (और मैं आपको चीजों को जड़ के रूप में स्थापित करने के लिए प्रोत्साहित नहीं करता)। एक sidenote के रूप में, Dockerfile में 'apt-get उन्नयन' करना एक बुरा अभ्यास माना जाता है। – cthulhu