class Dockerb::Context
Public Class Methods
bundle()
click to toggle source
# File lib/dockerb.rb, line 39 def bundle <<-EOF.gsub(/^ /, "") ADD Gemfile /app/ ADD Gemfile.lock /app/ ADD vendor/cache /app/vendor/cache RUN (bundle install --quiet --local --jobs 4 || bundle check) && #{delete_gem_junk} EOF end
compile(code)
click to toggle source
# File lib/dockerb.rb, line 34 def compile(code) warn = "#{GENERATED.sub('VERSION', Dockerb::VERSION)}\n" warn + ERB.new(code).result(binding).strip + "\n" + warn end
delete_gem_junk()
click to toggle source
# File lib/dockerb.rb, line 54 def delete_gem_junk "#{delete_tests} && #{delete_build_files}" end
install_gem(name, options=nil)
click to toggle source
# File lib/dockerb.rb, line 48 def install_gem(name, options=nil) options = " " << options if options version = File.read("Gemfile.lock")[/^ #{name} \((.+)\)/, 1] || raise("Gem #{name} not found in Gemfile.lock") "RUN gem install -v #{version} #{name}#{options} && #{delete_gem_junk}" end
Private Class Methods
delete_build_files()
click to toggle source
deleting all of ext makes nokogiri + Nokogumbo install fail
# File lib/dockerb.rb, line 65 def delete_build_files %{find #{gem_home}/*/ext/ -maxdepth 1 -mindepth 1 -type d | xargs -L1 bash -c 'if [ -e $0/Makefile ]; then make -C $0 clean; fi'} end
delete_tests()
click to toggle source
# File lib/dockerb.rb, line 60 def delete_tests %{find #{gem_home}/ -maxdepth 2 -name "test" -o -name "spec" | xargs rm -r} end
gem_home()
click to toggle source
# File lib/dockerb.rb, line 69 def gem_home "/usr/local/lib/ruby/gems/*/gems" end