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