Class: Kuby::Plugins::RailsApp::AssetsImage

Inherits:
Docker::Image show all
Defined in:
lib/kuby/plugins/rails_app/assets_image.rb

Instance Attribute Summary collapse

Attributes inherited from Docker::Image

#alias_tags, #credentials, #image_url, #main_tag

Instance Method Summary collapse

Methods inherited from Docker::Image

#docker_cli, #dockerfile, #image_host, #image_hostname, #image_repo, #image_uri, #tags

Constructor Details

#initialize(base_image, dockerfile, main_tag = nil, alias_tags = []) ⇒ AssetsImage

Returns a new instance of AssetsImage.



7
8
9
10
# File 'lib/kuby/plugins/rails_app/assets_image.rb', line 7

def initialize(base_image, dockerfile, main_tag = nil, alias_tags = [])
  super(dockerfile, base_image.image_url, base_image.credentials, main_tag, alias_tags)
  @base_image = base_image
end

Instance Attribute Details

#base_imageObject (readonly)

Returns the value of attribute base_image.



5
6
7
# File 'lib/kuby/plugins/rails_app/assets_image.rb', line 5

def base_image
  @base_image
end

Instance Method Details

#build(build_args = {}) ⇒ Object



30
31
32
# File 'lib/kuby/plugins/rails_app/assets_image.rb', line 30

def build(build_args = {})
  docker_cli.build(current_version, build_args: build_args)
end

#current_versionObject



18
19
20
21
22
# File 'lib/kuby/plugins/rails_app/assets_image.rb', line 18

def current_version
  @current_version ||= duplicate_with_annotated_tags(
    base_image.current_version
  )
end

#new_versionObject



12
13
14
15
16
# File 'lib/kuby/plugins/rails_app/assets_image.rb', line 12

def new_version
  # Asset images track the base image, so return the current version
  # here. There can be no asset image without a base image.
  current_version
end

#previous_versionObject



24
25
26
27
28
# File 'lib/kuby/plugins/rails_app/assets_image.rb', line 24

def previous_version
  @previous_version ||= duplicate_with_annotated_tags(
    base_image.previous_version
  )
end

#push(tag) ⇒ Object



34
35
36
# File 'lib/kuby/plugins/rails_app/assets_image.rb', line 34

def push(tag)
  docker_cli.push(image_url, tag)
end