Class: Jarl::Docker::Image
- Inherits:
-
Object
- Object
- Jarl::Docker::Image
- Defined in:
- lib/jarl/docker.rb
Overview
Image
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#path ⇒ Object
Returns the value of attribute path.
Class Method Summary collapse
Instance Method Summary collapse
- #build! ⇒ Object
-
#initialize(name, path) ⇒ Image
constructor
A new instance of Image.
- #open_ssh_session! ⇒ Object
- #prebuilt? ⇒ Boolean
- #pull! ⇒ Object
- #running? ⇒ Boolean
- #running_container ⇒ Object
- #start! ⇒ Object
- #stop! ⇒ Object
- #unuse! ⇒ Object
- #use! ⇒ Object
- #used? ⇒ Boolean
Constructor Details
#initialize(name, path) ⇒ Image
Returns a new instance of Image.
196 197 198 199 |
# File 'lib/jarl/docker.rb', line 196 def initialize(name, path) @name = name.to_s @path = path end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
194 195 196 |
# File 'lib/jarl/docker.rb', line 194 def name @name end |
#path ⇒ Object
Returns the value of attribute path.
194 195 196 |
# File 'lib/jarl/docker.rb', line 194 def path @path end |
Class Method Details
.prebuilt_image_names ⇒ Object
248 249 250 251 252 253 254 255 256 |
# File 'lib/jarl/docker.rb', line 248 def self.prebuilt_image_names return @prebuilt_image_names if @prebuilt_image_names di = `docker images` @prebuilt_image_names = di.split("\n").map do |line| m = line.match(/^(\S*)\s*/) m[1] end @prebuilt_image_names end |
Instance Method Details
#build! ⇒ Object
213 214 215 |
# File 'lib/jarl/docker.rb', line 213 def build! sh "docker build -t #{name} #{path}" end |
#open_ssh_session! ⇒ Object
231 232 233 |
# File 'lib/jarl/docker.rb', line 231 def open_ssh_session! running_container.open_ssh_session! end |
#prebuilt? ⇒ Boolean
201 202 203 |
# File 'lib/jarl/docker.rb', line 201 def prebuilt? self.class.prebuilt_image_names.include?(name) end |
#pull! ⇒ Object
217 218 219 |
# File 'lib/jarl/docker.rb', line 217 def pull! sh "docker pull #{name}" end |
#running? ⇒ Boolean
205 206 207 |
# File 'lib/jarl/docker.rb', line 205 def running? !!running_container end |
#running_container ⇒ Object
209 210 211 |
# File 'lib/jarl/docker.rb', line 209 def running_container Docker.containers_running.select { |c| c.name == name }.first end |
#start! ⇒ Object
221 222 223 224 225 |
# File 'lib/jarl/docker.rb', line 221 def start! Container.clean_containers(name) run_flags = "--name=#{name} --hostname=#{name} -d" sh "docker run #{run_flags} #{name}" end |
#stop! ⇒ Object
227 228 229 |
# File 'lib/jarl/docker.rb', line 227 def stop! running_container.stop! end |
#unuse! ⇒ Object
240 241 242 |
# File 'lib/jarl/docker.rb', line 240 def unuse! Docker.images_used_remove(name) end |
#use! ⇒ Object
235 236 237 238 |
# File 'lib/jarl/docker.rb', line 235 def use! build! unless prebuilt? Docker.images_used_add(name) end |
#used? ⇒ Boolean
244 245 246 |
# File 'lib/jarl/docker.rb', line 244 def used? Docker.images_used.map(&:name).include?(name) end |