lib/geordi/docker.rb in geordi-2.12.0 vs lib/geordi/docker.rb in geordi-2.12.1
- old
+ new
@@ -1,6 +1,7 @@
require 'geordi/interaction'
+require 'geordi/cucumber'
require 'yaml'
module Geordi
class Docker
DOCKER_COMPOSE_FILE = 'docker-compose.yml'.freeze
@@ -8,22 +9,29 @@
include Interaction
def setup
check_installation_and_config
announce('Building containers...')
- if execute(:system, 'docker-compose', 'build')
+ if execute(:system, 'docker-compose', 'pull')
success('Build successful.')
else
fail('Build failed.')
end
end
def shell
check_installation_and_config
- execute(:exec, 'docker-compose', 'run', '--service-ports', 'main')
+ command = [:exec, 'docker-compose', 'run', '--service-ports']
+ command += ssh_agent_forward
+ command += ['main']
+ execute(*command)
end
+ def vnc
+ Cucumber.new.launch_vnc_viewer('::5967')
+ end
+
private
def execute(kind, *args)
if ENV['GEORDI_TESTING']
puts "Stubbed run #{args.join(' ')}"
@@ -64,8 +72,17 @@
YAML.load(File.read(DOCKER_COMPOSE_FILE))
end
end
rescue
false
+ end
+
+ def ssh_agent_forward
+ if (auth_sock = ENV['SSH_AUTH_SOCK'])
+ dirname = File.dirname(auth_sock)
+ ['-v', "#{dirname}:#{dirname}", '-e', "SSH_AUTH_SOCK=#{auth_sock}"]
+ else
+ []
+ end
end
end
end