Class: Vader::DockerUtil
- Inherits:
-
Object
- Object
- Vader::DockerUtil
- Defined in:
- lib/vader/docker_util.rb
Class Method Summary collapse
-
.docker_configured? ⇒ Boolean
Can we open a tcp socket to DOCKER_HOST?.
- .ensure_boot2docker_running ⇒ Object
- .ensure_docker_configured ⇒ Object
- .set_docker_env ⇒ Object
Class Method Details
.docker_configured? ⇒ Boolean
Can we open a tcp socket to DOCKER_HOST?
38 39 40 41 42 43 44 45 |
# File 'lib/vader/docker_util.rb', line 38 def docker_configured? return false unless ENV['DOCKER_HOST'] uri = URI.parse(ENV['DOCKER_HOST']) TCPSocket.new(uri.host, uri.port).close return true rescue Errno::ECONNREFUSED false end |
.ensure_boot2docker_running ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/vader/docker_util.rb', line 18 def ensure_boot2docker_running if `boot2docker status`.chomp != 'running' puts "Starting boot2docker" `boot2docker up 2>/dev/null >/dev/null` unless $?.success? raise "Failed to start boot2docker. Try running 'boot2docker up'" end end end |
.ensure_docker_configured ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/vader/docker_util.rb', line 6 def ensure_docker_configured # To ensure docker client will work: # Check that ENV['DOCKER'] is set and can connect to the DOCKER_HOST. # Otherwise, check `boot2docker status`. # If b2d isn't running, start it. # Get boot2docker ip address and set DOCKER_* env vars. return if docker_configured? ensure_boot2docker_running set_docker_env end |
.set_docker_env ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/vader/docker_util.rb', line 28 def set_docker_env puts "Setting boot2docker environment variables" `boot2docker shellinit 2>/dev/null`.split("\n").each do |line| match = line.match(/(DOCKER\w+)=(.+)\Z/) next unless match ENV[match[1]] = match[2] end end |