Class: Kamal::Commands::Accessory
- Inherits:
-
Base
- Object
- Base
- Kamal::Commands::Accessory
show all
- Includes:
- Proxy
- Defined in:
- lib/kamal/commands/accessory.rb
Defined Under Namespace
Modules: Proxy
Constant Summary
Constants inherited
from Base
Base::DOCKER_HEALTH_STATUS_FORMAT
Instance Attribute Summary collapse
Attributes inherited from Base
#config
Instance Method Summary
collapse
Methods included from Proxy
#deploy, #remove
Methods inherited from Base
#container_id_for, #ensure_docker_installed, #make_directory, #make_directory_for, #remove_directory, #remove_file
Constructor Details
#initialize(config, name:) ⇒ Accessory
Returns a new instance of Accessory.
11
12
13
14
|
# File 'lib/kamal/commands/accessory.rb', line 11
def initialize(config, name:)
super(config)
@accessory_config = config.accessory(name)
end
|
Instance Attribute Details
#accessory_config ⇒ Object
Returns the value of attribute accessory_config.
4
5
6
|
# File 'lib/kamal/commands/accessory.rb', line 4
def accessory_config
@accessory_config
end
|
Instance Method Details
#ensure_env_directory ⇒ Object
105
106
107
|
# File 'lib/kamal/commands/accessory.rb', line 105
def ensure_env_directory
make_directory env_directory
end
|
#ensure_local_file_present(local_file) ⇒ Object
87
88
89
90
91
|
# File 'lib/kamal/commands/accessory.rb', line 87
def ensure_local_file_present(local_file)
if !local_file.is_a?(StringIO) && !Pathname.new(local_file).exist?
raise "Missing file: #{local_file}"
end
end
|
#execute_in_existing_container(*command, interactive: false) ⇒ Object
57
58
59
60
61
62
|
# File 'lib/kamal/commands/accessory.rb', line 57
def execute_in_existing_container(*command, interactive: false)
docker :exec,
("-it" if interactive),
service_name,
*command
end
|
#execute_in_existing_container_over_ssh(*command) ⇒ Object
75
76
77
|
# File 'lib/kamal/commands/accessory.rb', line 75
def execute_in_existing_container_over_ssh(*command)
run_over_ssh execute_in_existing_container(*command, interactive: true)
end
|
#execute_in_new_container(*command, interactive: false) ⇒ Object
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/kamal/commands/accessory.rb', line 64
def execute_in_new_container(*command, interactive: false)
docker :run,
("-it" if interactive),
"--rm",
*network_args,
*env_args,
*volume_args,
image,
*command
end
|
#execute_in_new_container_over_ssh(*command) ⇒ Object
79
80
81
|
# File 'lib/kamal/commands/accessory.rb', line 79
def execute_in_new_container_over_ssh(*command)
run_over_ssh execute_in_new_container(*command, interactive: true)
end
|
#follow_logs(timestamps: true, grep: nil, grep_options: nil) ⇒ Object
50
51
52
53
54
55
|
# File 'lib/kamal/commands/accessory.rb', line 50
def follow_logs(timestamps: true, grep: nil, grep_options: nil)
run_over_ssh \
pipe \
docker(:logs, service_name, ("--timestamps" if timestamps), "--tail", "10", "--follow", "2>&1"),
(%(grep "#{grep}"#{" #{grep_options}" if grep_options}) if grep)
end
|
#info ⇒ Object
40
41
42
|
# File 'lib/kamal/commands/accessory.rb', line 40
def info
docker :ps, *service_filter
end
|
#logs(timestamps: true, since: nil, lines: nil, grep: nil, grep_options: nil) ⇒ Object
44
45
46
47
48
|
# File 'lib/kamal/commands/accessory.rb', line 44
def logs(timestamps: true, since: nil, lines: nil, grep: nil, grep_options: nil)
pipe \
docker(:logs, service_name, (" --since #{since}" if since), (" --tail #{lines}" if lines), ("--timestamps" if timestamps), "2>&1"),
("grep '#{grep}'#{" #{grep_options}" if grep_options}" if grep)
end
|
#remove_container ⇒ Object
97
98
99
|
# File 'lib/kamal/commands/accessory.rb', line 97
def remove_container
docker :container, :prune, "--force", *service_filter
end
|
#remove_image ⇒ Object
101
102
103
|
# File 'lib/kamal/commands/accessory.rb', line 101
def remove_image
docker :image, :rm, "--force", image
end
|
#remove_service_directory ⇒ Object
93
94
95
|
# File 'lib/kamal/commands/accessory.rb', line 93
def remove_service_directory
[ :rm, "-rf", service_name ]
end
|
#run ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/kamal/commands/accessory.rb', line 16
def run
docker :run,
"--name", service_name,
"--detach",
"--restart", "unless-stopped",
*network_args,
*config.logging_args,
*publish_args,
*env_args,
*volume_args,
*label_args,
*option_args,
image,
cmd
end
|
#run_over_ssh(command) ⇒ Object
83
84
85
|
# File 'lib/kamal/commands/accessory.rb', line 83
def run_over_ssh(command)
super command, host: hosts.first
end
|
#start ⇒ Object
32
33
34
|
# File 'lib/kamal/commands/accessory.rb', line 32
def start
docker :container, :start, service_name
end
|
#stop ⇒ Object
36
37
38
|
# File 'lib/kamal/commands/accessory.rb', line 36
def stop
docker :container, :stop, service_name
end
|