Class: Devkitkat::Service::Driver::Docker::Container
- Inherits:
-
Object
- Object
- Devkitkat::Service::Driver::Docker::Container
- Includes:
- Concerns::ServiceInitializer
- Defined in:
- lib/devkitkat/service/driver/docker/container.rb
Constant Summary collapse
- ROOT_IN_CONTAINER =
'/devkitkat'
Instance Attribute Summary collapse
-
#container ⇒ Object
readonly
Returns the value of attribute container.
Attributes included from Concerns::ServiceInitializer
Instance Method Summary collapse
- #exec(cmds, params = {}, &block) ⇒ Object
- #exec_as_root(cmds, params = {}, &block) ⇒ Object
- #interactive_shell(cmd) ⇒ Object
- #start ⇒ Object
- #stop ⇒ Object
Methods included from Concerns::ServiceInitializer
Instance Attribute Details
#container ⇒ Object (readonly)
Returns the value of attribute container.
10 11 12 |
# File 'lib/devkitkat/service/driver/docker/container.rb', line 10 def container @container end |
Instance Method Details
#exec(cmds, params = {}, &block) ⇒ Object
36 37 38 39 |
# File 'lib/devkitkat/service/driver/docker/container.rb', line 36 def exec(cmds, params = {}, &block) params.merge!(user: user_name) safe_exec(cmds, params, &block) end |
#exec_as_root(cmds, params = {}, &block) ⇒ Object
41 42 43 |
# File 'lib/devkitkat/service/driver/docker/container.rb', line 41 def exec_as_root(cmds, params = {}, &block) safe_exec(cmds, params, &block) end |
#interactive_shell(cmd) ⇒ Object
45 46 47 48 |
# File 'lib/devkitkat/service/driver/docker/container.rb', line 45 def interactive_shell(cmd) # container.exec([new_path], tty: true, stdin: STDIN) { |stream, chunk| print "#{stream}" } Kernel.exec('docker', 'exec', '-ti', '--user', user_name, name, cmd) end |
#start ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/devkitkat/service/driver/docker/container.rb', line 12 def start @container = find if command.interactive? raise 'Container has not started yet for interactive session' unless @container return end if @container container.restart else @container = create container.start create_host_user end end |
#stop ⇒ Object
29 30 31 32 33 34 |
# File 'lib/devkitkat/service/driver/docker/container.rb', line 29 def stop return if command.interactive? raise 'Container has not started yet' unless container container.stop end |