Class: Kamal::Configuration::Proxy::Boot
- Inherits:
-
Object
- Object
- Kamal::Configuration::Proxy::Boot
- Defined in:
- lib/kamal/configuration/proxy/boot.rb
Constant Summary collapse
- MINIMUM_VERSION =
"v0.9.0"
- DEFAULT_HTTP_PORT =
80
- DEFAULT_HTTPS_PORT =
443
- DEFAULT_LOG_MAX_SIZE =
"10m"
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
Instance Method Summary collapse
- #app_container_directory ⇒ Object
- #app_directory ⇒ Object
- #apps_container_directory ⇒ Object
- #apps_directory ⇒ Object
- #apps_volume ⇒ Object
- #container_name ⇒ Object
- #default_boot_options ⇒ Object
- #error_pages_container_directory ⇒ Object
- #error_pages_directory ⇒ Object
- #host_directory ⇒ Object
- #image_default ⇒ Object
- #image_file ⇒ Object
- #image_name ⇒ Object
- #image_version_file ⇒ Object
-
#initialize(config:) ⇒ Boot
constructor
A new instance of Boot.
- #logging_args(max_size) ⇒ Object
- #options_file ⇒ Object
- #publish_args(http_port, https_port, bind_ips = nil) ⇒ Object
- #repository_name ⇒ Object
- #run_command_file ⇒ Object
- #tls_container_directory ⇒ Object
- #tls_directory ⇒ Object
Constructor Details
#initialize(config:) ⇒ Boot
Returns a new instance of Boot.
10 11 12 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 10 def initialize(config:) @config = config end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
7 8 9 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 7 def config @config end |
Instance Method Details
#app_container_directory ⇒ Object
91 92 93 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 91 def app_container_directory File.join apps_container_directory, config.service_and_destination end |
#app_directory ⇒ Object
87 88 89 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 87 def app_directory File.join apps_directory, config.service_and_destination end |
#apps_container_directory ⇒ Object
77 78 79 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 77 def apps_container_directory "/home/kamal-proxy/.apps-config" end |
#apps_directory ⇒ Object
73 74 75 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 73 def apps_directory File.join host_directory, "apps-config" end |
#apps_volume ⇒ Object
81 82 83 84 85 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 81 def apps_volume Kamal::Configuration::Volume.new \ host_path: apps_directory, container_path: apps_container_directory end |
#container_name ⇒ Object
49 50 51 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 49 def container_name "kamal-proxy" end |
#default_boot_options ⇒ Object
30 31 32 33 34 35 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 30 def [ *(publish_args(DEFAULT_HTTP_PORT, DEFAULT_HTTPS_PORT, nil)), *(logging_args(DEFAULT_LOG_MAX_SIZE)) ] end |
#error_pages_container_directory ⇒ Object
99 100 101 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 99 def error_pages_container_directory File.join app_container_directory, "error_pages" end |
#error_pages_directory ⇒ Object
95 96 97 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 95 def error_pages_directory File.join app_directory, "error_pages" end |
#host_directory ⇒ Object
53 54 55 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 53 def host_directory File.join config.run_directory, "proxy" end |
#image_default ⇒ Object
45 46 47 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 45 def image_default "#{repository_name}/#{image_name}" end |
#image_file ⇒ Object
61 62 63 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 61 def image_file File.join host_directory, "image" end |
#image_name ⇒ Object
41 42 43 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 41 def image_name "kamal-proxy" end |
#image_version_file ⇒ Object
65 66 67 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 65 def image_version_file File.join host_directory, "image_version" end |
#logging_args(max_size) ⇒ Object
26 27 28 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 26 def logging_args(max_size) argumentize "--log-opt", "max-size=#{max_size}" if max_size.present? end |
#options_file ⇒ Object
57 58 59 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 57 def File.join host_directory, "options" end |
#publish_args(http_port, https_port, bind_ips = nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 14 def publish_args(http_port, https_port, bind_ips = nil) ensure_valid_bind_ips(bind_ips) (bind_ips || [ nil ]).map do |bind_ip| bind_ip = format_bind_ip(bind_ip) publish_http = [ bind_ip, http_port, DEFAULT_HTTP_PORT ].compact.join(":") publish_https = [ bind_ip, https_port, DEFAULT_HTTPS_PORT ].compact.join(":") argumentize "--publish", [ publish_http, publish_https ] end.join(" ") end |
#repository_name ⇒ Object
37 38 39 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 37 def repository_name "basecamp" end |
#run_command_file ⇒ Object
69 70 71 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 69 def run_command_file File.join host_directory, "run_command" end |
#tls_container_directory ⇒ Object
107 108 109 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 107 def tls_container_directory File.join app_container_directory, "tls" end |
#tls_directory ⇒ Object
103 104 105 |
# File 'lib/kamal/configuration/proxy/boot.rb', line 103 def tls_directory File.join app_directory, "tls" end |