Я предполагаю, что это проблема с окружающей средой. Когда я делаю это вручную (без Dockerfile), он работает.Ошибка при создании образа Docker для среды Ruby On Rails (из файла Docker)
Вот мой 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
чем я строю с:
sudo docker build -t="james/rails" .
Я получаю эту ошибку:
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 без оболочки сложно. Также точкой rvm является управление несколькими установками ruby, и с докером вам это не нужно. Просто зайдите с некоторым рабочим изображением на основе рубина, например binaryphile/ruby (https://registry.hub.docker.com/u/binaryphile/ruby/), или вы можете использовать мое изображение на основе rbenv: cthulhu666/docker-rbenv (https://registry.hub.docker.com/u/cthulhu666/docker-rbenv/), если вам не нравится устанавливать вещи как root (и я рекомендую вам не устанавливать файлы как root). Как побочный элемент, выполнение apt-get upgrade в Dockerfile считается плохой практикой. – cthulhu