2016-05-18 2 views
0

Так что я, кажется, не получаю нигде быстро, пытаясь получить пучок с дженкинсами, используя докер, настройка дженкинсов в порядке, никаких проблем нет, но я не могу понять, как получить Bundler доступныНастройка дженкинсов с докере и бункером

FROM jenkins 
USER root 
RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 
RUN /bin/bash -l -c "curl -L get.rvm.io | bash -s stable --ruby" 
RUN /bin/bash -l -c "source /usr/local/rvm/scripts/rvm" 
USER jenkins 

предыдущий комментарий в другом посте посоветовал install bundler from the debian package, но не уверен, как я хотел бы сделать это, или другой вариант должен был бы добавить GEM_PATH переменной PATH ....

RUN /bin/bash -l -c 'export GEM_PATH=/usr/local/bundle' >> $PATH/.bashrc 

не думаю, что это правильно на всех

Причина мне нужно Bundler в том, что в моем почтовом сценарии сборки в Дженкинс мне нужно запустить bundle exec rubocop и bundle install

Любая оцененная помощь на этом, как на самом деле совсем застрял

Благодаря

ответ

0

Я пришел к следующему:

$ cat Dockerfile 
FROM jenkins 
USER root 
RUN apt-get update && apt-get install -y ruby bundler 
USER jenkins 

$ cat Gemfile 
source "https://rubygems.org" 
gem "hello-world" 

$ docker run -ti -v $(pwd):/src $(docker build -q .) sh -c "cd /src ; bundle install --binstubs --path vendor/bundle ; ./bin/hello-world" 
Using hello-world 1.2.0 
Using bundler 1.7.4 
Your bundle is complete! 
It was installed into ./vendor/bundle 
this is executable hello-world 

Это работает для этого примера hello-world. В вашем вопросе вы устанавливаете rvm. Люди часто делают это, потому что rvm позволяет устанавливать множество разных рубиновых версий, когда ваши проекты используют определенные версии.

Примечание: в вашем файле Docker RUN /bin/bash -l -c "source /usr/local/rvm/scripts/rvm" абсолютно бесполезен, так как он создает сценарий, который настраивает среду для использования конкретной версии Ruby во время выполнения (в текущей оболочке). Когда создается изображение докера, переменные, заданные при запуске этого сценария, не установлены в контейнере, на котором выполняется это изображение.

0

Мой ответ на это добавление шаги для установки RVM также для пользователя 'Дженкинса почти в конце Dockerfile, а затем изменить обратно в «корень»

USER jenkins 
RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 
RUN \curl -sSL https://get.rvm.io | bash -s stable 
RUN /bin/sh -c export PATH="$PATH:/usr/local/rvm/bin" [[ -s "$HOME/.rvm/scripts/rvm" ]] 
RUN /bin/sh -c export PATH="$PATH:/usr/local/rvm/bin" -s "source '$HOME/.rvm/scripts/rvm'" 
RUN echo "source /usr/local/rvm/scripts/rvm" >> /home/jenkins/.profile 
USER root 
+0

спасибо за ответ, так что вы установили rvm для пользователя root и пользователя jenkins? – Richlewis

Смежные вопросы