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