extended Docker::Container with utility methods

This commit is contained in:
Hauke Klement
2015-02-05 09:24:13 +01:00
parent edf2a634a8
commit f9d26b1a6f
4 changed files with 24 additions and 5 deletions

View File

@ -0,0 +1 @@
Docker::Container::send(:include, DockerContainerMixin)

View File

@ -62,12 +62,10 @@ class DockerClient
def self.destroy_container(container)
container.stop.kill
if container.json['HostConfig']['PortBindings']
container.json['HostConfig']['PortBindings'].values.each do |configuration|
(container.port_bindings.try(:values) || []).each do |configuration|
port = configuration.first['HostPort'].to_i
PortPool.release(port)
end
end
container.delete(force: true)
end

View File

@ -0,0 +1,9 @@
module DockerContainerMixin
def binds
json['HostConfig']['Binds']
end
def port_bindings
json['HostConfig']['PortBindings']
end
end

View File

@ -0,0 +1,11 @@
require 'rails_helper'
describe DockerContainerMixin do
[:binds, :port_bindings].each do |method|
describe "##{method}" do
it 'is defined for Docker::Container' do
expect(Docker::Container.instance_methods).to include(method)
end
end
end
end