Class: Penkit::Docker
- Inherits:
-
Object
- Object
- Penkit::Docker
- Includes:
- Helpers
- Defined in:
- lib/penkit/docker.rb,
lib/penkit/docker/ps.rb,
lib/penkit/docker/rm.rb,
lib/penkit/docker/pull.rb,
lib/penkit/docker/stop.rb,
lib/penkit/docker/start.rb,
lib/penkit/docker/network.rb
Constant Summary collapse
- IMAGE_REGEX =
/^([^\s\/:]+)(:[^\s\/:]+)?$/- NETWORK =
"penkit".freeze
- REPOSITORY =
"penkit".freeze
Instance Method Summary collapse
- #create_network! ⇒ Object
- #find_all_containers ⇒ Object
- #find_container_names ⇒ Object
- #find_running_containers ⇒ Object
- #ps(*args) ⇒ Object
- #pull(image, options = {}) ⇒ Object
- #rm(*containers) ⇒ Object
- #run(image, *args) ⇒ Object
- #start(image, options = {}) ⇒ Object
- #stop(*containers) ⇒ Object
Instance Method Details
#create_network! ⇒ Object
3 4 5 |
# File 'lib/penkit/docker/network.rb', line 3 def create_network! system("docker", "network", "create", *, out: File::NULL) unless network_exists? end |
#find_all_containers ⇒ Object
3 4 5 |
# File 'lib/penkit/docker/ps.rb', line 3 def find_all_containers IO.popen(["docker", "ps", "-aq", *]).readlines.map(&:strip) end |
#find_container_names ⇒ Object
7 8 9 |
# File 'lib/penkit/docker/ps.rb', line 7 def find_container_names IO.popen(["docker", "ps", "-a", "--format", "{{.Names}}", *]).readlines.map(&:strip) end |
#find_running_containers ⇒ Object
11 12 13 |
# File 'lib/penkit/docker/ps.rb', line 11 def find_running_containers IO.popen(["docker", "ps", "-q", *]).readlines.map(&:strip) end |
#ps(*args) ⇒ Object
15 16 17 |
# File 'lib/penkit/docker/ps.rb', line 15 def ps(*args) exec("docker", "ps", *, *args) end |
#pull(image, options = {}) ⇒ Object
3 4 5 6 7 8 9 |
# File 'lib/penkit/docker/pull.rb', line 3 def pull(image, ={}) if [:quiet] system("docker", "pull", image_url(image), out: File::NULL, err: File::NULL) else system("docker", "pull", image_url(image)) end end |
#rm(*containers) ⇒ Object
3 4 5 |
# File 'lib/penkit/docker/rm.rb', line 3 def rm(*containers) exec("docker", "rm", "--force", *containers) end |
#run(image, *args) ⇒ Object
3 4 5 6 |
# File 'lib/penkit/docker/start.rb', line 3 def run(image, *args) create_network! exec("docker", "run", "--rm", "-it", *, image_url(image), *args) end |
#start(image, options = {}) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/penkit/docker/start.rb', line 8 def start(image, ={}) create_network! [:name] ||= unique_name(image) puts "Starting container #{options[:name]}" exec("docker", "run", "--detach", *(), image_url(image)) end |
#stop(*containers) ⇒ Object
3 4 5 |
# File 'lib/penkit/docker/stop.rb', line 3 def stop(*containers) exec("docker", "stop", *containers) end |