25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/dockerbash.rb', line 25
def select_docker_container()
counter = 0
docker_ids = []
ids = get_docker_containers_ids()
ids.each do |i|
cn_stdout, cn_stderr, cn_status = Open3.capture3("#{@docker_path} inspect --format={{.Name}} #{i}")
container_name = cn_stdout.gsub(/\n/,'')
container_name.delete!("/")
ci_stdout, ci_stderr, ci_status = Open3.capture3("#{@docker_path} inspect --format={{.NetworkSettings.IPAddress}} #{i}")
container_ip = ci_stdout.gsub(/\n/,'')
container_ip.delete("/")
cb_stdout, cb_stderr, cb_status = Open3.capture3("#{@docker_path} inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' #{i}")
container_bindings = cb_stdout.gsub(/\n/,'')
container_ids = i
puts "#{counter}. Container:#{container_name}\tIp:#{container_ip}\tPorts:#{container_bindings}"
docker_ids << container_ids
counter += 1
end
selected_id = ask("Container? ", Integer) { |q| q.in = 0..docker_ids.count }
command = "#{@docker_path} exec -t -i #{docker_ids[selected_id]} /bin/bash"
exec(command)
end
|