2017-03-31 60 views
0

我不斷在終端寫這些命令,但我不知道如何爲它編寫腳本。我能做什麼?這些是我會連續寫在bash和irb上的命令:如何爲這些bash和ruby命令編寫一個bin /腳本?

# in bash 
docker exec -it <some_container> bash 
irb 

# now everything below is a ruby command  
require 'bundler' 
Bundler.require 

required_load_path = File.expand_path(".") 
$LOAD_PATH.unshift(required_load_path) unless $LOAD_PATH.include?(required_load_path) 

Dir['config/*.rb'].each { |file| load file } 

ENV["RAILS_ENV"] = 'development' 
... 

我有一個使用bin文件夾的ruby項目。我可以寫什麼腳本來自動執行所有這些?我目前遇到了麻煩,因爲當我運行docker exec部分時... irb部分由於某種原因而未運行。

+1

看一下cli工具,比如slop或thor。然後可以通過命令行直接調用這個'ruby/script/location參數' – engineersmnky

回答

0

如果你只是想執行上泊塢窗Ruby腳本,一個替代方案是創建一個你想要的命令的ruby文件:

# rubyscript.rb 
puts 'hello' 
# ... 

並與碼頭工人高管稱之爲:

docker exec -it <imagename> ruby rubyscript.rb 

但是,如果您想運行某些內容並保留在REPL中以執行更多內容,則可以在腳本中調用pry:

# rubyscript.rb 
puts 'hello' 
# ... 
require 'pry' 
pry 

這將執行你的東西,並保持在pry中,在Docker容器上執行。