capistrano-nomad 0.8.2 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +13 -0
- data/capistrano-nomad.gemspec +1 -1
- data/lib/capistrano/nomad/helpers/docker.rb +13 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d72090f2b054d4e263ca57df89aa4d5ae5c85dccfc9200313520cec17eeaef57
|
4
|
+
data.tar.gz: 854f1b1cde505d12cdd12f9acb2c31da2b9d60b24121a3e85d7277dd81bdc397
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9d109aea1b53f1f383f40ed95136d56857f61ad4fe3c15097e7c40d6babb07e2c8d2bb76a7971f4a0ae0293738ab33f4b55b72b5fda85a174bff341a26ac1fc
|
7
|
+
data.tar.gz: 9c3671c5c5b4cfe2c29d81ba4b5b7ec7a96fd50648f062ad03aa8547214d3e69a7fe8ec0d641679e49d99e130e8587e78a1d8d7c5759c9118da1bccd02d65aec
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -49,6 +49,19 @@ set :nomad_template_vars, (lambda do
|
|
49
49
|
}
|
50
50
|
end)
|
51
51
|
|
52
|
+
# Change docker build command
|
53
|
+
set :nomad_docker_build_command, (lambda do
|
54
|
+
"docker buildx build"
|
55
|
+
end)
|
56
|
+
|
57
|
+
# Pass additional options into `docker build`
|
58
|
+
set :nomad_docker_build_command_options, (lambda do
|
59
|
+
[
|
60
|
+
"--cache-to type=gha",
|
61
|
+
"--cache-from type=gha",
|
62
|
+
]
|
63
|
+
end)
|
64
|
+
|
52
65
|
# Make helpers available to all template .erb files
|
53
66
|
nomad_template_helpers do
|
54
67
|
def restart_stanza(interval = "1m")
|
data/capistrano-nomad.gemspec
CHANGED
@@ -67,39 +67,42 @@ end
|
|
67
67
|
def capistrano_nomad_build_docker_image_for_type(image_type)
|
68
68
|
image_type = image_type.to_sym
|
69
69
|
attributes = fetch(:nomad_docker_image_types)[image_type]
|
70
|
+
command = fetch(:nomad_docker_build_command) || "docker build"
|
71
|
+
options = Array(fetch(:nomad_docker_build_command_options)) || []
|
70
72
|
|
71
73
|
return unless attributes
|
72
74
|
|
73
75
|
# No need to build if there's no path
|
74
76
|
return unless attributes[:path]
|
75
77
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
"--platform linux/amd64",
|
80
|
-
]
|
78
|
+
# Ensure images are built for x86_64 which is production env otherwise it will default to local development env which
|
79
|
+
# can be arm64 (Apple Silicon)
|
80
|
+
options << "--platform linux/amd64"
|
81
81
|
|
82
82
|
if (target = attributes[:target])
|
83
|
-
|
83
|
+
options << "--target #{target}"
|
84
84
|
end
|
85
85
|
|
86
86
|
build_args = attributes[:build_args]
|
87
87
|
build_args = build_args.call if build_args&.is_a?(Proc)
|
88
88
|
|
89
89
|
(build_args || []).each do |key, value|
|
90
|
-
|
90
|
+
# Escape single quotes so that we can properly pass in build arg values that have spaces and special characters
|
91
|
+
# e.g. Don't escape strings (#123) => $'Don\'t escape strings (#123)'
|
92
|
+
value_escaped = value.gsub("'", "\\\\'")
|
93
|
+
options << "--build-arg #{key}=$'#{value_escaped}'"
|
91
94
|
end
|
92
95
|
|
93
96
|
docker_build_command = lambda do |path|
|
94
|
-
|
97
|
+
build_options = options.dup
|
95
98
|
|
96
99
|
[capistrano_nomad_build_docker_image_alias(image_type)]
|
97
100
|
.compact
|
98
101
|
.each do |tag|
|
99
|
-
|
102
|
+
build_options << "--tag #{tag}"
|
100
103
|
end
|
101
104
|
|
102
|
-
"
|
105
|
+
"#{command} #{build_options.join(' ')} #{path}"
|
103
106
|
end
|
104
107
|
|
105
108
|
case attributes[:strategy]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-nomad
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Hu
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|