Class: Kamal::Configuration::Proxy::Boot

Inherits:
Object
  • Object
show all
Defined in:
lib/kamal/configuration/proxy/boot.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config:) ⇒ Boot

Returns a new instance of Boot.



5
6
7
# File 'lib/kamal/configuration/proxy/boot.rb', line 5

def initialize(config:)
  @config = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



2
3
4
# File 'lib/kamal/configuration/proxy/boot.rb', line 2

def config
  @config
end

Instance Method Details

#app_container_directoryObject



86
87
88
# File 'lib/kamal/configuration/proxy/boot.rb', line 86

def app_container_directory
  File.join apps_container_directory, config.service_and_destination
end

#app_directoryObject



82
83
84
# File 'lib/kamal/configuration/proxy/boot.rb', line 82

def app_directory
  File.join apps_directory, config.service_and_destination
end

#apps_container_directoryObject



72
73
74
# File 'lib/kamal/configuration/proxy/boot.rb', line 72

def apps_container_directory
  "/home/kamal-proxy/.apps-config"
end

#apps_directoryObject



68
69
70
# File 'lib/kamal/configuration/proxy/boot.rb', line 68

def apps_directory
  File.join host_directory, "apps-config"
end

#apps_volumeObject



76
77
78
79
80
# File 'lib/kamal/configuration/proxy/boot.rb', line 76

def apps_volume
  Kamal::Configuration::Volume.new \
    host_path: apps_directory,
    container_path: apps_container_directory
end

#container_nameObject



44
45
46
# File 'lib/kamal/configuration/proxy/boot.rb', line 44

def container_name
  "kamal-proxy"
end

#default_boot_optionsObject



25
26
27
28
29
30
# File 'lib/kamal/configuration/proxy/boot.rb', line 25

def default_boot_options
  [
    *(publish_args(Kamal::Configuration::Proxy::Run::DEFAULT_HTTP_PORT, Kamal::Configuration::Proxy::Run::DEFAULT_HTTPS_PORT, nil)),
    *(logging_args(Kamal::Configuration::Proxy::Run::DEFAULT_LOG_MAX_SIZE))
  ]
end

#error_pages_container_directoryObject



94
95
96
# File 'lib/kamal/configuration/proxy/boot.rb', line 94

def error_pages_container_directory
  File.join app_container_directory, "error_pages"
end

#error_pages_directoryObject



90
91
92
# File 'lib/kamal/configuration/proxy/boot.rb', line 90

def error_pages_directory
  File.join app_directory, "error_pages"
end

#host_directoryObject



48
49
50
# File 'lib/kamal/configuration/proxy/boot.rb', line 48

def host_directory
  File.join config.run_directory, "proxy"
end

#image_defaultObject



40
41
42
# File 'lib/kamal/configuration/proxy/boot.rb', line 40

def image_default
  "#{repository_name}/#{image_name}"
end

#image_fileObject



56
57
58
# File 'lib/kamal/configuration/proxy/boot.rb', line 56

def image_file
  File.join host_directory, "image"
end

#image_nameObject



36
37
38
# File 'lib/kamal/configuration/proxy/boot.rb', line 36

def image_name
  "kamal-proxy"
end

#image_version_fileObject



60
61
62
# File 'lib/kamal/configuration/proxy/boot.rb', line 60

def image_version_file
  File.join host_directory, "image_version"
end

#logging_args(max_size) ⇒ Object



21
22
23
# File 'lib/kamal/configuration/proxy/boot.rb', line 21

def logging_args(max_size)
  argumentize "--log-opt", "max-size=#{max_size}" if max_size.present?
end

#options_fileObject



52
53
54
# File 'lib/kamal/configuration/proxy/boot.rb', line 52

def options_file
  File.join host_directory, "options"
end

#publish_args(http_port, https_port, bind_ips = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/kamal/configuration/proxy/boot.rb', line 9

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, Kamal::Configuration::Proxy::Run::DEFAULT_HTTP_PORT ].compact.join(":")
    publish_https = [ bind_ip, https_port, Kamal::Configuration::Proxy::Run::DEFAULT_HTTPS_PORT ].compact.join(":")

    argumentize "--publish", [ publish_http, publish_https ]
  end.join(" ")
end

#repository_nameObject



32
33
34
# File 'lib/kamal/configuration/proxy/boot.rb', line 32

def repository_name
  "basecamp"
end

#run_command_fileObject



64
65
66
# File 'lib/kamal/configuration/proxy/boot.rb', line 64

def run_command_file
  File.join host_directory, "run_command"
end

#tls_container_directoryObject



102
103
104
# File 'lib/kamal/configuration/proxy/boot.rb', line 102

def tls_container_directory
  File.join app_container_directory, "tls"
end

#tls_directoryObject



98
99
100
# File 'lib/kamal/configuration/proxy/boot.rb', line 98

def tls_directory
  File.join app_directory, "tls"
end