0

I have bash file which build gem files and launch my program:

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

I use it in the docker container. It works fine if I launch the container interactively and run this bash-file manually:

 ~ » docker run -it -v /mnt/lacie/online/btsync/development:/src stack_rvm /bin/bash              
root@898cec6a7d85:/# /src/build.sh 
  ...
  Successfully built RubyGem
  Name: stackify
  Version: 0.1.0
  File: stackify-0.1.0.gem

But when I am trying to launch this script in the docker like this I get the error message:

 ~ » 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

Why and how can I fix it ?

ceth
  • 44,198
  • 62
  • 180
  • 289

2 Answers2

2

I have found the answer - use -c -l:

~ » docker run -it -v /mnt/lacie/online/btsync/development:/src stack_rvm /bin/bash -c -l /src/build.sh
ceth
  • 44,198
  • 62
  • 180
  • 289
  • 1
    because `-l` makes bash a login shell that will set your `PATH` environment variable. See https://www.gnu.org/software/bash/manual/bash.html#Invoking-Bash – Thomasleveil May 02 '15 at 14:08
1

For me, it was that C:\Ruby24-x64\bin was added to the Path user variable and not the Path system variable during the Ruby installation. Once I added C:\Ruby24-x64\bin to the Path system variable, everything worked fine.

matthewpark319
  • 1,214
  • 1
  • 14
  • 16