Sha256: 5630b758f41113d101e88327a5225e3d3bfaefb20688431967f26746ef44af67
Contents?: true
Size: 1.85 KB
Versions: 104
Compression:
Stored size: 1.85 KB
Contents
# frozen_string_literal: true require 'eac_ruby_utils/core_ext' require 'avm/executables' require 'avm/patches/object/template' module Avm module Docker class Image attr_reader :registry attr_accessor :snapshot attr_accessor :version def initialize(registry) @registry = registry self.snapshot = true self.version = true end def build(extra_args = []) on_build_dir do template.apply(self, build_dir) run_docker_build(extra_args) end end def generator_version ::Avm::Tools::VERSION end def push ::Avm::Executables.docker.command.append(['push', tag]).system! end def read_entry(path, _options = {}) method = path.gsub('.', '_') return send(method) if respond_to?(path, true) raise "Method \"#{method}\" not found for entry \"#{path}\"" end def run(instance) run_run(instance) if container_exist?(instance) end def tag r = tag_name r += ":#{tag_version}" if tag_version.present? r end def tag_name return registry.name if registry.name.present? raise 'Registry name is blank' end def tag_version [tag_version_version, stereotype_tag].reject(&:blank?).join('_') end def tag_version_version return nil unless version r = generator_version r += '-snapshot' if snapshot r end private attr_reader :build_dir def run_docker_build(extra_args) ::Avm::Executables.docker.command.append( ['build', '-t', tag] + extra_args + [build_dir] ).system! end def on_build_dir @build_dir = ::Dir.mktmpdir yield ensure ::FileUtils.rm_rf(@build_dir) end end end end
Version data entries
104 entries across 104 versions & 1 rubygems