Class: Avm::EacGenericBase0::Sources::Docker::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/avm/eac_generic_base0/sources/docker/runner.rb

Constant Summary collapse

CONTAINER_SOURCE_PATH =
'/app'

Instance Method Summary collapse

Instance Method Details

#bash_command_argsObject



29
30
31
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 29

def bash_command_args
  %w[/bin/bash]
end

#command_argsObject



33
34
35
36
37
38
39
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 33

def command_args
  if parsed.command_arg.any?
    parsed.command_arg
  else
    default_command_args
  end
end

#default_command_argsObject



41
42
43
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 41

def default_command_args
  bash_command_args
end

#docker_containerObject



45
46
47
48
49
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 45

def docker_container
  docker_image.container
    .volume(runner_context.call(:subject).path, CONTAINER_SOURCE_PATH)
    .interactive(true).tty(true).command_args(command_args)
end

#docker_imageEacDocker::Images::Base

Returns:

  • (EacDocker::Images::Base)


52
53
54
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 52

def docker_image
  raise_abstract_method __method__
end

#runObject



19
20
21
22
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 19

def run
  start_banner
  docker_container.run_command.system!
end

#start_bannerObject



24
25
26
27
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 24

def start_banner
  infov 'Image', docker_image
  infov 'Command', ::Shellwords.join(command_args)
end