Я пытаюсь установить rbenv с файлом Docker, но это просто не удается на rbenv install
. У меня есть Ruby-build там, он просто не работает.Использование rbenv с Docker
Соответствующие биты Dockerfile (в основном поднятого с https://gist.github.com/deepak/5925003):
# Install rbenv RUN git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv RUN echo '# rbenv setup' > /etc/profile.d/rbenv.sh RUN echo 'export RBENV_ROOT=/usr/local/rbenv' >> /etc/profile.d/rbenv.sh RUN echo 'export PATH="$RBENV_ROOT/bin:$PATH"' >> /etc/profile.d/rbenv.sh RUN echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh RUN chmod +x /etc/profile.d/rbenv.sh # install ruby-build RUN mkdir /usr/local/rbenv/plugins RUN git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build ENV PATH /usr/local/rbenv/shims:/usr/local/rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # Set to Ruby 2.0.0-p247 RUN rbenv install 2.0.0-p247 RUN rbenv rehash RUN rbenv local 2.0.0-p247
Ошибка:
Step 21 : RUN rbenv install 2.0.0-p247 ---> Running in 8869fa8f0651 rbenv: no such command `install' Error build: The command [/bin/sh -c rbenv install 2.0.0-p247] returned a non-zero code: 1 The command [/bin/sh -c rbenv install 2.0.0-p247] returned a non-zero code: 1
Не звучать легкомысленно, но действительно ли вы собираетесь использовать более одной версии Ruby в контейнере? Я возился с использованием rbenv на основе вашего Dockerfile, и я буду продолжать возиться, но мне интересно, следует ли просто установить известную версию, которую мы хотим использовать напрямую. Мне нравится rvm и rbenv, но Docker кажется областью, в которой вы можете уменьшить свои зависимости. –
Нет, но мне нужна его, чтобы использовать правильную версию Ruby, а не версию репо пакета Ubuntu. Таким образом, это либо это, компиляция из источника, либо rvm, и я предпочел бы избежать последних двух, если это возможно. Но вы правы, что лучше всего просто скомпилировать его из источника. – TheJF
Почему бы не использовать ruby-install напрямую без rbenv? «Если вы установили ruby-build как отдельную программу, вы можете использовать команду ruby-build для компиляции и установки версий Ruby в определенные местоположения. Запустите команду ruby-build с точным именем версии, которую вы хотите для установки и полного пути, где вы хотите его установить. Например, ruby-build 1.9.3-p448 ~/local/ruby-1.9.3-p448 "(https://github.com/sstephenson/ruby -build) – Niko