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