Class: Indocker::ImageBuilder

Inherits:
Object
  • Object
show all
Includes:
SmartIoC::Iocify
Defined in:
lib/indocker/image/image_builder.rb

Instance Method Summary collapse

Instance Method Details

#build(repo, tag: Indocker::ImageMetadata::DEFAULT_TAG) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/indocker/image/image_builder.rb', line 13

def build(repo, tag: Indocker::::DEFAULT_TAG)
   = .find_by_repo(repo, tag: tag)
  
  FileUtils.mkdir_p(.build_dir)
  
  image_dependencies_manager.get_dependencies!().each do || 
    build(.repo, tag: .tag)
  end
  
  image_directives_runner.run_all(.prepare_directives)

  File.open(File.join(.build_dir, Indocker::DOCKERFILE_NAME), 'w') do |f| 
    f.puts       .build_directives.map(&:to_s)
    .build_directives.map(&:to_s).each {|d| logger.debug d}
  end
  
  docker_api.build_from_dir(
    repo:      .repo,
    tag:       .tag,
    build_dir: .build_dir.to_s
  ) { |log| logger.info(log) }
ensure
   = .find_by_repo(repo, tag: tag)

  FileUtils.rm_rf(.build_dir)
end