Class: Dockit::Container
- Inherits:
-
Object
- Object
- Dockit::Container
- Defined in:
- lib/dockit/container.rb
Instance Attribute Summary collapse
-
#container ⇒ Object
readonly
Returns the value of attribute container.
Class Method Summary collapse
- .clean(force: false, except: []) ⇒ Object
- .find(name: nil, id: nil) ⇒ Object
- .list(all: false, filters: nil) ⇒ Object
Instance Method Summary collapse
- #destroy ⇒ Object
-
#initialize(options) ⇒ Container
constructor
A new instance of Container.
- #start(options = {}, verbose: true, transient: false) ⇒ Object
Constructor Details
#initialize(options) ⇒ Container
Returns a new instance of Container.
41 42 43 44 |
# File 'lib/dockit/container.rb', line 41 def initialize() @tty = ['Tty'] @container = Docker::Container.create() end |
Instance Attribute Details
#container ⇒ Object (readonly)
Returns the value of attribute container.
3 4 5 |
# File 'lib/dockit/container.rb', line 3 def container @container end |
Class Method Details
.clean(force: false, except: []) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/dockit/container.rb', line 10 def clean(force: false, except: []) puts "Containers..." except = (except||[]).map { |e| "/#{e}"} list( all: force, filters: force ? nil : {status: [:exited]} ).each do |container| names = container.info['Names'] puts " #{container.id}" if (names & except).count > 0 puts " ... skipping #{names}" next end container.delete(force: true, v: force) end end |
.find(name: nil, id: nil) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/dockit/container.rb', line 28 def find(name: nil, id: nil) unless name || id STDERR.puts "Must specify name or id" exit 1 end list().find do |container| name && container.info['Names'].include?(name) || id && container.id == id end end |
.list(all: false, filters: nil) ⇒ Object
6 7 8 |
# File 'lib/dockit/container.rb', line 6 def list(all: false, filters: nil) Docker::Container.all(all: all, filters: JSON.dump(filters)) end |
Instance Method Details
#destroy ⇒ Object
65 66 67 68 |
# File 'lib/dockit/container.rb', line 65 def destroy puts "Deleting container #{container.id}" container.delete(force: true, v: true) end |
#start(options = {}, verbose: true, transient: false) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/dockit/container.rb', line 46 def start(={}, verbose: true, transient: false) container.start!() if transient if @tty trap("INT") {} STDIN.raw! end container.attach(tty: @tty, stdin: @tty ? STDIN : nil) do |*args| if @tty then print args[0] else msg(*args) end end STDIN.cooked! destroy end end |