Class: Kamal::Commands::Builder::Base
Defined Under Namespace
Classes: BuilderError
Constant Summary
collapse
- ENDPOINT_DOCKER_HOST_INSPECT =
"'{{.Endpoints.docker.Host}}'"
Kamal::Commands::Base::DOCKER_HEALTH_STATUS_FORMAT
Instance Attribute Summary
#config
Instance Method Summary
collapse
#container_id_for, #initialize, #make_directory, #make_directory_for, #remove_directory, #remove_file, #run_over_ssh
Instance Method Details
#build_context ⇒ Object
43
44
45
|
# File 'lib/kamal/commands/builder/base.rb', line 43
def build_context
config.builder.context
end
|
#build_options ⇒ Object
39
40
41
|
# File 'lib/kamal/commands/builder/base.rb', line 39
def build_options
[ *build_tags, *build_cache, *build_labels, *build_args, *build_secrets, *build_dockerfile, *build_target, *build_ssh, *builder_provenance ]
end
|
#clean ⇒ Object
12
13
14
|
# File 'lib/kamal/commands/builder/base.rb', line 12
def clean
docker :image, :rm, "--force", config.absolute_image
end
|
#first_mirror ⇒ Object
56
57
58
|
# File 'lib/kamal/commands/builder/base.rb', line 56
def first_mirror
docker(:info, "--format '{{index .RegistryConfig.Mirrors 0}}'")
end
|
#info ⇒ Object
29
30
31
32
33
|
# File 'lib/kamal/commands/builder/base.rb', line 29
def info
combine \
docker(:context, :ls),
docker(:buildx, :ls)
end
|
#inspect_builder ⇒ Object
35
36
37
|
# File 'lib/kamal/commands/builder/base.rb', line 35
def inspect_builder
docker :buildx, :inspect, builder_name unless docker_driver?
end
|
#pull ⇒ Object
25
26
27
|
# File 'lib/kamal/commands/builder/base.rb', line 25
def pull
docker :pull, config.absolute_image
end
|
#push ⇒ Object
16
17
18
19
20
21
22
23
|
# File 'lib/kamal/commands/builder/base.rb', line 16
def push
docker :buildx, :build,
"--push",
*platform_options(arches),
*([ "--builder", builder_name ] unless docker_driver?),
*build_options,
build_context
end
|
#validate_image ⇒ Object
47
48
49
50
51
52
53
54
|
# File 'lib/kamal/commands/builder/base.rb', line 47
def validate_image
pipe \
docker(:inspect, "-f", "'{{ .Config.Labels.service }}'", config.absolute_image),
any(
[ :grep, "-x", config.service ],
"(echo \"Image #{config.absolute_image} is missing the 'service' label\" && exit 1)"
)
end
|