Class: Indocker::Images::Image

Inherits:
Object
  • Object
show all
Defined in:
lib/indocker/images/image.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Image

Returns a new instance of Image.



6
7
8
9
10
# File 'lib/indocker/images/image.rb', line 6

def initialize(name)
  @name = name
  @dependent_images = []
  @build_args = {}
end

Instance Attribute Details

#build_argsObject (readonly)

Returns the value of attribute build_args.



4
5
6
# File 'lib/indocker/images/image.rb', line 4

def build_args
  @build_args
end

#dependent_imagesObject (readonly)

Returns the value of attribute dependent_images.



3
4
5
# File 'lib/indocker/images/image.rb', line 3

def dependent_images
  @dependent_images
end

#nameObject (readonly)

Returns the value of attribute name.



2
3
4
# File 'lib/indocker/images/image.rb', line 2

def name
  @name
end

Instance Method Details

#add_dependent_image(image) ⇒ Object



83
84
85
# File 'lib/indocker/images/image.rb', line 83

def add_dependent_image(image)
  @dependent_images.push(image) if !@dependent_images.include?(image)
end

#after_buildObject



64
65
66
# File 'lib/indocker/images/image.rb', line 64

def after_build
  @after_build
end

#before_buildObject



56
57
58
# File 'lib/indocker/images/image.rb', line 56

def before_build
  @before_build
end

#build_contextObject



48
49
50
# File 'lib/indocker/images/image.rb', line 48

def build_context
  @build_context
end

#dockerfileObject



40
41
42
# File 'lib/indocker/images/image.rb', line 40

def dockerfile
  @dockerfile || (raise ArgumentError.new("Dockerfile path is not set for image :#{@name}"))
end

#image_nameObject



12
13
14
# File 'lib/indocker/images/image.rb', line 12

def image_name
  "#{@name}_image"
end

#local_registry_urlObject



78
79
80
81
# File 'lib/indocker/images/image.rb', line 78

def local_registry_url
  url = File.join(registry.repository_name.to_s, image_name)
  "#{url}:#{tag}"
end

#registryObject



32
33
34
# File 'lib/indocker/images/image.rb', line 32

def registry
  @registry || (raise ArgumentError.new("registry is not set for image :#{@name}"))
end

#registry_urlObject



68
69
70
71
72
73
74
75
76
# File 'lib/indocker/images/image.rb', line 68

def registry_url
  url = if registry.is_local?
    File.join(registry.repository_name.to_s, image_name)
  else
    File.join(registry.url, registry.repository_name.to_s, image_name)
  end

  "#{url}:#{tag}"
end

#set_after_build(proc) ⇒ Object



60
61
62
# File 'lib/indocker/images/image.rb', line 60

def set_after_build(proc)
  @after_build = proc
end

#set_before_build(proc) ⇒ Object



52
53
54
# File 'lib/indocker/images/image.rb', line 52

def set_before_build(proc)
  @before_build = proc
end

#set_build_args(opts) ⇒ Object



24
25
26
# File 'lib/indocker/images/image.rb', line 24

def set_build_args(opts)
  @build_args = opts
end

#set_build_context(path) ⇒ Object



44
45
46
# File 'lib/indocker/images/image.rb', line 44

def set_build_context(path)
  @build_context = path
end

#set_dockerfile(path) ⇒ Object



36
37
38
# File 'lib/indocker/images/image.rb', line 36

def set_dockerfile(path)
  @dockerfile = path
end

#set_registry(registry) ⇒ Object



28
29
30
# File 'lib/indocker/images/image.rb', line 28

def set_registry(registry)
  @registry = registry
end

#set_tag(tag) ⇒ Object



16
17
18
# File 'lib/indocker/images/image.rb', line 16

def set_tag(tag)
  @tag = tag
end

#tagObject



20
21
22
# File 'lib/indocker/images/image.rb', line 20

def tag
  @tag || (raise ArgumentError.new("tag is not set for image :#{@name}"))
end