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



31
32
33
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 31

def bash_command_args
  %w[/bin/bash]
end

#command_argsObject



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

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

#default_command_argsObject



43
44
45
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 43

def default_command_args
  bash_command_args
end

#docker_containerObject



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

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)


54
55
56
# File 'lib/avm/eac_generic_base0/sources/docker/runner.rb', line 54

def docker_image
  raise_abstract_method __method__
end

#runObject



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

def run
  start_banner
  docker_container.run_command.system!
end

#start_bannerObject



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

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