Class: Kuby::Docker::Image
- Inherits:
-
Object
- Object
- Kuby::Docker::Image
- Extended by:
- T::Sig
- Defined in:
- lib/kuby/docker/image.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#alias_tags ⇒ Object
readonly
Returns the value of attribute alias_tags.
-
#credentials ⇒ Object
readonly
Returns the value of attribute credentials.
-
#image_url ⇒ Object
readonly
Returns the value of attribute image_url.
-
#main_tag ⇒ Object
readonly
Returns the value of attribute main_tag.
Instance Method Summary collapse
- #build(build_args = {}) ⇒ Object
- #current_version ⇒ Object
- #docker_cli ⇒ Object
- #dockerfile ⇒ Object
- #image_host ⇒ Object
- #image_hostname ⇒ Object
- #image_repo ⇒ Object
- #image_uri ⇒ Object
-
#initialize(dockerfile, image_url, credentials, main_tag = nil, alias_tags = []) ⇒ Image
constructor
A new instance of Image.
- #new_version ⇒ Object
- #previous_version(current_tag = nil) ⇒ Object
- #push(tag) ⇒ Object
- #tags ⇒ Object
Constructor Details
#initialize(dockerfile, image_url, credentials, main_tag = nil, alias_tags = []) ⇒ Image
Returns a new instance of Image.
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/kuby/docker/image.rb', line 29 def initialize(dockerfile, image_url, credentials, main_tag = nil, = []) @dockerfile = T.let(dockerfile, T.any(Dockerfile, T.proc.returns(Dockerfile))) @image_url = T.let(image_url, String) @credentials = T.let(credentials, Credentials) @main_tag = T.let(main_tag, T.nilable(String)) @alias_tags = T.let(, T::Array[String]) @image_host = T.let(@image_host, T.nilable(String)) @image_hostname = T.let(@image_hostname, T.nilable(String)) @image_repo = T.let(@image_repo, T.nilable(String)) @full_image_uri = T.let(@full_image_uri, T.nilable(DockerURI)) @docker_cli = T.let(@docker_cli, T.nilable(Docker::CLI)) end |
Instance Attribute Details
#alias_tags ⇒ Object (readonly)
Returns the value of attribute alias_tags.
18 19 20 |
# File 'lib/kuby/docker/image.rb', line 18 def @alias_tags end |
#credentials ⇒ Object (readonly)
Returns the value of attribute credentials.
12 13 14 |
# File 'lib/kuby/docker/image.rb', line 12 def credentials @credentials end |
#image_url ⇒ Object (readonly)
Returns the value of attribute image_url.
9 10 11 |
# File 'lib/kuby/docker/image.rb', line 9 def image_url @image_url end |
#main_tag ⇒ Object (readonly)
Returns the value of attribute main_tag.
15 16 17 |
# File 'lib/kuby/docker/image.rb', line 15 def main_tag @main_tag end |
Instance Method Details
#build(build_args = {}) ⇒ Object
93 94 95 |
# File 'lib/kuby/docker/image.rb', line 93 def build(build_args = {}) raise NotImplementedError, 'please use a Docker::Image subclass' end |
#current_version ⇒ Object
49 50 51 |
# File 'lib/kuby/docker/image.rb', line 49 def current_version raise NotImplementedError, 'please use a Docker::Image subclass' end |
#docker_cli ⇒ Object
103 104 105 |
# File 'lib/kuby/docker/image.rb', line 103 def docker_cli @docker_cli ||= Docker::CLI.new end |
#dockerfile ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/kuby/docker/image.rb', line 59 def dockerfile if @dockerfile.respond_to?(:call) T.cast(@dockerfile, T.proc.returns(Dockerfile)).call else T.cast(@dockerfile, Dockerfile) end end |
#image_host ⇒ Object
68 69 70 |
# File 'lib/kuby/docker/image.rb', line 68 def image_host @image_host ||= "#{image_uri.host}:#{image_uri.port}" end |
#image_hostname ⇒ Object
73 74 75 |
# File 'lib/kuby/docker/image.rb', line 73 def image_hostname @image_hostname ||= image_uri.host end |
#image_repo ⇒ Object
78 79 80 |
# File 'lib/kuby/docker/image.rb', line 78 def image_repo @image_repo ||= image_uri.path end |
#image_uri ⇒ Object
83 84 85 |
# File 'lib/kuby/docker/image.rb', line 83 def image_uri @full_image_uri ||= DockerURI.parse(image_url) end |
#new_version ⇒ Object
44 45 46 |
# File 'lib/kuby/docker/image.rb', line 44 def new_version raise NotImplementedError, 'please use a Docker::Image subclass' end |
#previous_version(current_tag = nil) ⇒ Object
54 55 56 |
# File 'lib/kuby/docker/image.rb', line 54 def previous_version(current_tag = nil) raise NotImplementedError, 'please use a Docker::Image subclass' end |
#push(tag) ⇒ Object
98 99 100 |
# File 'lib/kuby/docker/image.rb', line 98 def push(tag) raise NotImplementedError, 'please use a Docker::Image subclass' end |
#tags ⇒ Object
88 89 90 |
# File 'lib/kuby/docker/image.rb', line 88 def [main_tag, *].compact end |