Sha256: ad217faa8e797f9773bab95031c6e954010748faf9934d022d7a2934570d172d

Contents?: true

Size: 1.65 KB

Versions: 34

Compression:

Stored size: 1.65 KB

Contents

# frozen_string_literal: true

require 'avm/version'
require 'avm/entries/jobs/with_variables_source'
require 'eac_ruby_utils/core_ext'
require 'eac_docker/images/templatized'
require 'eac_docker/registry'

module Avm
  module Docker
    class Image < ::EacDocker::Images::Templatized
      prepend ::Avm::Entries::Jobs::WithVariablesSource

      DEFAULT_REGISTRY_NAME = 'local'

      class << self
        # @return [EacDocker::Registry]
        def default_registry
          ::EacDocker::Registry.new(DEFAULT_REGISTRY_NAME)
        end
      end

      attr_reader :registry
      attr_accessor :snapshot, :version

      def initialize(registry = nil)
        super()
        @registry = registry || self.class.default_registry
        self.snapshot = true
        self.version = true
      end

      def build(extra_args = [])
        nyi "Extra args: #{extra_args}" if extra_args.any?

        provide
      end

      def generator_version
        ::Avm::VERSION
      end

      def push
        ::EacDocker::Executables.docker.command.append(['push', tag]).system!
      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].compact_blank.join('_')
      end

      def tag_version_version
        return nil unless version

        r = generator_version
        r += '-snapshot' if snapshot
        r
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 2 rubygems

Version Path
avm-0.94.1 lib/avm/docker/image.rb
eac_tools-0.98.0 sub/avm/lib/avm/docker/image.rb
avm-0.94.0 lib/avm/docker/image.rb
eac_tools-0.94.0 sub/avm/lib/avm/docker/image.rb
avm-0.93.0 lib/avm/docker/image.rb
eac_tools-0.92.0 sub/avm/lib/avm/docker/image.rb
avm-0.92.0 lib/avm/docker/image.rb
eac_tools-0.91.0 sub/avm/lib/avm/docker/image.rb
avm-0.90.1 lib/avm/docker/image.rb
eac_tools-0.87.1 sub/avm/lib/avm/docker/image.rb
avm-0.90.0 lib/avm/docker/image.rb
eac_tools-0.87.0 sub/avm/lib/avm/docker/image.rb
avm-0.89.0 lib/avm/docker/image.rb
eac_tools-0.86.12 sub/avm/lib/avm/docker/image.rb
avm-0.88.0 lib/avm/docker/image.rb
eac_tools-0.86.11 sub/avm/lib/avm/docker/image.rb
avm-0.87.0 lib/avm/docker/image.rb
eac_tools-0.86.8 sub/avm/lib/avm/docker/image.rb
avm-0.86.2 lib/avm/docker/image.rb
eac_tools-0.86.7 sub/avm/lib/avm/docker/image.rb