Sha256: b64f5f69928f7cc71ede82d1cef3cc34d0eec81819ba6acdcc4ad78e619958bb

Contents?: true

Size: 1.45 KB

Versions: 16

Compression:

Stored size: 1.45 KB

Contents

require 'fileutils'

class Indocker::BuildContext
  attr_reader :configuration, :logger, :global_logger, :helper

  def initialize(configuration:, logger:, global_logger:)
    @configuration = configuration
    @logger = logger
    @helper = Indocker::BuildContextHelper.new(@configuration, @build_server)
    @global_logger = global_logger
  end

  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
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
indocker-0.3.9 lib/indocker/build_context.rb
indocker-0.3.8 lib/indocker/build_context.rb
indocker-0.3.7 lib/indocker/build_context.rb
indocker-0.3.6 lib/indocker/build_context.rb
indocker-0.3.5 lib/indocker/build_context.rb
indocker-0.3.4 lib/indocker/build_context.rb
indocker-0.3.3 lib/indocker/build_context.rb
indocker-0.3.2 lib/indocker/build_context.rb
indocker-0.1.18 lib/indocker/build_context.rb
indocker-0.3.1 lib/indocker/build_context.rb
indocker-0.3.0 lib/indocker/build_context.rb
indocker-0.1.17 lib/indocker/build_context.rb
indocker-0.1.16 lib/indocker/build_context.rb
indocker-0.1.15 lib/indocker/build_context.rb
indocker-0.1.14 lib/indocker/build_context.rb
indocker-0.1.13 lib/indocker/build_context.rb