class Indocker::BuildContext
Attributes
configuration[R]
global_logger[R]
helper[R]
logger[R]
Public Class Methods
new(configuration:, logger:, global_logger:)
click to toggle source
# File lib/indocker/build_context.rb, line 6 def initialize(configuration:, logger:, global_logger:) @configuration = configuration @logger = logger @helper = Indocker::BuildContextHelper.new(@configuration, @build_server) @global_logger = global_logger end
Public Instance Methods
build_image(image, build_dir, args: [])
click to toggle source
# File lib/indocker/build_context.rb, line 13 def build_image(image, build_dir, args: []) image_name = image.image_name registry = image.registry tag = image.tag FileUtils.cd(build_dir) do if @logger.debug? @logger.debug("#{"Docker image content:".yellow}") Dir[File.join(build_dir, '*')] .map {|path| file = path.gsub(build_dir, '') @logger.debug(" .#{file}".yellow) } .join("\n") end if !@logger.debug? args = args.push('-q') end build_args = args.join(' ') res = Indocker::Docker.build(image.local_registry_url, build_args) if res.exit_status != 0 @global_logger.error("image compilation :#{image.name} failed") @global_logger.error(res.stdout) exit 1 end Indocker::Docker.tag(image.local_registry_url, image.registry_url) if image.registry_url != image.local_registry_url Indocker::Docker.tag(image.local_registry_url, image.local_registry_url) end if !image.registry.is_local? Indocker::Docker.push(image.registry_url) end end end