2015-05-02 2 views
0

У меня есть Баш файл, строить драгоценные файлы и запустить мою программу:перл: команда не найдена

cd /src/stackify-api 
rm *.gem 
gem build stackify.gemspec 
gem install stackify-0.1.0.gem 

cd /src/stackify-classificator 
rm *.gem 
gem build stackify-classificator.gemspec 
gem install stackify-classificator-0.1.1.gem 

cd /src/bin 
ruby console-task.rb 

я использую его в контейнер Докер. Он отлично работает, если я запустить контейнер в интерактивном режиме и запустить этот Баш-файл вручную:

~ » docker run -it -v /mnt/lacie/online/btsync/development:/src stack_rvm /bin/bash    
[email protected]:/# /src/build.sh 
    ... 
    Successfully built RubyGem 
    Name: stackify 
    Version: 0.1.0 
    File: stackify-0.1.0.gem 

Но когда я пытаюсь запустить этот сценарий в докер, как это я получаю сообщение об ошибке:

~ » docker run -it -v /mnt/lacie/online/btsync/development:/src stack_rvm /bin/bash /src/build.sh 
/src/build.sh: line 5: gem: command not found 

Почему и как я могу это исправить?

ответ

1

Я нашел ответ - использовать -c -l:

~ » docker run -it -v /mnt/lacie/online/btsync/development:/src stack_rvm /bin/bash -c -l /src/build.sh 
+1

потому что '-l' делает bash оболочкой входа, которая установит вашу переменную среды' PATH'. См. Https://www.gnu.org/software/bash/manual/bash.html#Invoking-Bash – Thomasleveil

0

Для меня это было то, что C: \ Ruby24-x64 \ бен был добавлен к пользовательской переменной Path, а не системная переменная Path во время Рубина монтаж. Как только я добавил C: \ Ruby24-x64 \ bin в системную переменную Path, все сработало нормально.

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