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.
200 201 202 203 |
# File 'lib/jarl/docker.rb', line 200 def initialize(name, path) @name = name.to_s @path = path end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
198 199 200 |
# File 'lib/jarl/docker.rb', line 198 def name @name end |
#path ⇒ Object
Returns the value of attribute path.
198 199 200 |
# File 'lib/jarl/docker.rb', line 198 def path @path end |
Class Method Details
.prebuilt_image_names ⇒ Object
252 253 254 255 256 257 258 259 260 |
# File 'lib/jarl/docker.rb', line 252 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
217 218 219 |
# File 'lib/jarl/docker.rb', line 217 def build! sh "docker build -t #{name} #{path}" end |
#open_ssh_session! ⇒ Object
235 236 237 |
# File 'lib/jarl/docker.rb', line 235 def open_ssh_session! running_container.open_ssh_session! end |
#prebuilt? ⇒ Boolean
205 206 207 |
# File 'lib/jarl/docker.rb', line 205 def prebuilt? self.class.prebuilt_image_names.include?(name) end |
#pull! ⇒ Object
221 222 223 |
# File 'lib/jarl/docker.rb', line 221 def pull! sh "docker pull #{name}" end |
#running? ⇒ Boolean
209 210 211 |
# File 'lib/jarl/docker.rb', line 209 def running? !!running_container end |
#running_container ⇒ Object
213 214 215 |
# File 'lib/jarl/docker.rb', line 213 def running_container Docker.containers_running.select { |c| c.name == name }.first end |
#start! ⇒ Object
225 226 227 228 229 |
# File 'lib/jarl/docker.rb', line 225 def start! Container.clean_containers(name) run_flags = "--name=#{name} --hostname=#{name} -d" sh "docker run #{run_flags} #{name}" end |
#stop! ⇒ Object
231 232 233 |
# File 'lib/jarl/docker.rb', line 231 def stop! running_container.stop! end |
#unuse! ⇒ Object
244 245 246 |
# File 'lib/jarl/docker.rb', line 244 def unuse! Docker.images_used_remove(name) end |
#use! ⇒ Object
239 240 241 242 |
# File 'lib/jarl/docker.rb', line 239 def use! build! unless prebuilt? Docker.images_used_add(name) end |
#used? ⇒ Boolean
248 249 250 |
# File 'lib/jarl/docker.rb', line 248 def used? Docker.images_used.map(&:name).include?(name) end |