Class: Kamal::Configuration::Builder
- Inherits:
-
Object
- Object
- Kamal::Configuration::Builder
show all
- Includes:
- Validation
- Defined in:
- lib/kamal/configuration/builder.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Validation
#validate!, #validation_yml
Constructor Details
#initialize(config:) ⇒ Builder
Returns a new instance of Builder.
8
9
10
11
12
13
14
15
16
|
# File 'lib/kamal/configuration/builder.rb', line 8
def initialize(config:)
@config = config
@builder_config = config.raw_config.builder || {}
@image = config.image
@server = config.registry.server
@service = config.service
validate! builder_config, with: Kamal::Configuration::Validator::Builder
end
|
Instance Attribute Details
#builder_config ⇒ Object
Returns the value of attribute builder_config.
4
5
6
|
# File 'lib/kamal/configuration/builder.rb', line 4
def builder_config
@builder_config
end
|
#config ⇒ Object
Returns the value of attribute config.
4
5
6
|
# File 'lib/kamal/configuration/builder.rb', line 4
def config
@config
end
|
Instance Method Details
#args ⇒ Object
38
39
40
|
# File 'lib/kamal/configuration/builder.rb', line 38
def args
builder_config["args"] || {}
end
|
#build_directory ⇒ Object
108
109
110
111
112
113
114
115
|
# File 'lib/kamal/configuration/builder.rb', line 108
def build_directory
@build_directory ||=
if git_clone?
File.join clone_directory, repo_basename, repo_relative_pwd
else
"."
end
end
|
#cache_from ⇒ Object
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/kamal/configuration/builder.rb', line 74
def cache_from
if cached?
case builder_config["cache"]["type"]
when "gha"
cache_from_config_for_gha
when "registry"
cache_from_config_for_registry
end
end
end
|
#cache_to ⇒ Object
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/kamal/configuration/builder.rb', line 85
def cache_to
if cached?
case builder_config["cache"]["type"]
when "gha"
cache_to_config_for_gha
when "registry"
cache_to_config_for_registry
end
end
end
|
#cached? ⇒ Boolean
34
35
36
|
# File 'lib/kamal/configuration/builder.rb', line 34
def cached?
!!builder_config["cache"]
end
|
#clone_directory ⇒ Object
104
105
106
|
# File 'lib/kamal/configuration/builder.rb', line 104
def clone_directory
@clone_directory ||= File.join Dir.tmpdir, "kamal-clones", [ service, pwd_sha ].compact.join("-")
end
|
#context ⇒ Object
54
55
56
|
# File 'lib/kamal/configuration/builder.rb', line 54
def context
builder_config["context"] || "."
end
|
#dockerfile ⇒ Object
46
47
48
|
# File 'lib/kamal/configuration/builder.rb', line 46
def dockerfile
builder_config["dockerfile"] || "Dockerfile"
end
|
#git_clone? ⇒ Boolean
100
101
102
|
# File 'lib/kamal/configuration/builder.rb', line 100
def git_clone?
Kamal::Git.used? && builder_config["context"].nil?
end
|
#local? ⇒ Boolean
26
27
28
|
# File 'lib/kamal/configuration/builder.rb', line 26
def local?
!!builder_config["local"]
end
|
#local_arch ⇒ Object
58
59
60
|
# File 'lib/kamal/configuration/builder.rb', line 58
def local_arch
builder_config["local"]["arch"] if local?
end
|
#local_host ⇒ Object
62
63
64
|
# File 'lib/kamal/configuration/builder.rb', line 62
def local_host
builder_config["local"]["host"] if local?
end
|
#multiarch? ⇒ Boolean
22
23
24
|
# File 'lib/kamal/configuration/builder.rb', line 22
def multiarch?
builder_config["multiarch"] != false
end
|
#remote? ⇒ Boolean
30
31
32
|
# File 'lib/kamal/configuration/builder.rb', line 30
def remote?
!!builder_config["remote"]
end
|
#remote_arch ⇒ Object
66
67
68
|
# File 'lib/kamal/configuration/builder.rb', line 66
def remote_arch
builder_config["remote"]["arch"] if remote?
end
|
#remote_host ⇒ Object
70
71
72
|
# File 'lib/kamal/configuration/builder.rb', line 70
def remote_host
builder_config["remote"]["host"] if remote?
end
|
#secrets ⇒ Object
42
43
44
|
# File 'lib/kamal/configuration/builder.rb', line 42
def secrets
builder_config["secrets"] || []
end
|
#ssh ⇒ Object
96
97
98
|
# File 'lib/kamal/configuration/builder.rb', line 96
def ssh
builder_config["ssh"]
end
|
#target ⇒ Object
50
51
52
|
# File 'lib/kamal/configuration/builder.rb', line 50
def target
builder_config["target"]
end
|
#to_h ⇒ Object
18
19
20
|
# File 'lib/kamal/configuration/builder.rb', line 18
def to_h
builder_config
end
|