Class: Avm::Docker::Image

Inherits:
EacDocker::Images::Templatized
  • Object
show all
Defined in:
lib/avm/docker/image.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(registry) ⇒ Image

Returns a new instance of Image.



15
16
17
18
19
# File 'lib/avm/docker/image.rb', line 15

def initialize(registry)
  @registry = registry
  self.snapshot = true
  self.version = true
end

Instance Attribute Details

#registryObject (readonly)

Returns the value of attribute registry.



11
12
13
# File 'lib/avm/docker/image.rb', line 11

def registry
  @registry
end

#snapshotObject

Returns the value of attribute snapshot.



12
13
14
# File 'lib/avm/docker/image.rb', line 12

def snapshot
  @snapshot
end

#versionObject

Returns the value of attribute version.



13
14
15
# File 'lib/avm/docker/image.rb', line 13

def version
  @version
end

Instance Method Details

#build(extra_args = []) ⇒ Object



21
22
23
24
25
# File 'lib/avm/docker/image.rb', line 21

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

  provide
end

#generator_versionObject



27
28
29
# File 'lib/avm/docker/image.rb', line 27

def generator_version
  ::Avm::Tools::VERSION
end

#pushObject



31
32
33
# File 'lib/avm/docker/image.rb', line 31

def push
  ::Avm::Executables.docker.command.append(['push', tag]).system!
end

#read_entry(path, options = {}) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/avm/docker/image.rb', line 35

def read_entry(path, options = {})
  method = path.gsub('.', '_')
  return send(method) if respond_to?(path, true)
  return instance.read_entry(path, options) if respond_to?(:instance)

  raise "Method \"#{method}\" not found for entry \"#{path}\""
end

#run(instance) ⇒ Object



43
44
45
# File 'lib/avm/docker/image.rb', line 43

def run(instance)
  run_run(instance) if container_exist?(instance)
end

#tagObject



47
48
49
50
51
# File 'lib/avm/docker/image.rb', line 47

def tag
  r = tag_name
  r += ":#{tag_version}" if tag_version.present?
  r
end

#tag_nameObject



53
54
55
56
57
# File 'lib/avm/docker/image.rb', line 53

def tag_name
  return registry.name if registry.name.present?

  raise 'Registry name is blank'
end

#tag_versionObject



59
60
61
# File 'lib/avm/docker/image.rb', line 59

def tag_version
  [tag_version_version, stereotype_tag].reject(&:blank?).join('_')
end

#tag_version_versionObject



63
64
65
66
67
68
69
# File 'lib/avm/docker/image.rb', line 63

def tag_version_version
  return nil unless version

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