dapp 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/dapp.rb +1 -0
- data/lib/dapp/build/stage/mod/artifact.rb +2 -2
- data/lib/dapp/builder/base.rb +7 -0
- data/lib/dapp/builder/chef.rb +15 -9
- data/lib/dapp/builder/chef/cookbook_metadata.rb +1 -1
- data/lib/dapp/builder/shell.rb +7 -13
- data/lib/dapp/controller.rb +8 -2
- data/lib/dapp/helper/shellout.rb +1 -1
- data/lib/dapp/image/stage.rb +1 -1
- data/lib/dapp/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Y2FmYzM3MDM3ZjJiYzA2NTBkZDlkZjQ3ZjcwODBiZDc3ZDQ3YmNhZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NzUwNTk0YWM5Nzc2NjhkOTk0MzUwYjhlZTA5YjI4ZDhhY2EyODQ3OA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzljMjQ3ZTIwMWNmNDI3YTdkOWE1MzNkN2I0OTU1YjlkMDQ0OWMxMTkxOGJl
|
10
|
+
Y2QxNDJhZDM1NTc1OTMxMGVmNmM3OTE1NmJlODIwYWMzNWFmMzQxOTBiYTI0
|
11
|
+
NWY1NjVjYjNkZWQwZmJiMTA1OTk1MDhjMjFkYTNmZTUxMmU5Yzc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTcxODBkNTA5YTlkYTZiYTgzMDk4OTE5YTcxMmU2Y2FmZGMwZWMxNjdhOWNk
|
14
|
+
MTMwZGI0N2Q5ODRkOGFlMGY2N2Q1MThjZGI0NDQxZmNmMTdhN2EzZjk1YzY1
|
15
|
+
NmU3ODhiYTU1ZGM0NjFkMjQ1NDcyNmMyY2Y4YjkyNDkyMDkzNjg=
|
data/lib/dapp.rb
CHANGED
@@ -56,10 +56,10 @@ module Dapp
|
|
56
56
|
|
57
57
|
docker_options = ['--rm',
|
58
58
|
"--volume #{application.tmp_path('artifact', artifact_name)}:#{app.container_tmp_path(artifact_name)}",
|
59
|
-
'--entrypoint /bin/
|
59
|
+
'--entrypoint /bin/bash']
|
60
60
|
commands = safe_cp(where_to_add, app.container_tmp_path(artifact_name), Process.uid, Process.gid)
|
61
61
|
application.log_secondary_process(application.t(code: 'process.artifact_copy', data: { name: artifact_name }), short: true) do
|
62
|
-
app.run(docker_options,
|
62
|
+
app.run(docker_options, [%{-ec '#{application.shellout_pack(commands)}'}])
|
63
63
|
end
|
64
64
|
|
65
65
|
commands = safe_cp(application.container_tmp_path('artifact', artifact_name), where_to_add, owner, group, cwd, paths)
|
data/lib/dapp/builder/base.rb
CHANGED
data/lib/dapp/builder/chef.rb
CHANGED
@@ -17,7 +17,8 @@ module Dapp
|
|
17
17
|
define_method(:"#{stage}") do |image|
|
18
18
|
unless stage_empty?(stage)
|
19
19
|
image.add_volumes_from(chefdk_container)
|
20
|
-
image.add_commands 'export PATH=/.dapp/deps/chefdk/bin:$PATH'
|
20
|
+
image.add_commands 'export PATH=/.dapp/deps/chefdk/bin:$PATH',
|
21
|
+
"export DAPP_BUILD_STAGE=#{stage}"
|
21
22
|
|
22
23
|
image.add_volume "#{stage_tmp_path(stage)}:#{container_stage_tmp_path(stage)}"
|
23
24
|
image.add_commands ['chef-solo',
|
@@ -42,6 +43,12 @@ module Dapp
|
|
42
43
|
|
43
44
|
private
|
44
45
|
|
46
|
+
def enabled_modules
|
47
|
+
application.config._chef._modules.map do |mod|
|
48
|
+
mod.start_with?('mdapp-') ? mod.split('mdapp-')[1] : mod
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
45
52
|
def project_name
|
46
53
|
cookbook_metadata.name
|
47
54
|
end
|
@@ -99,7 +106,7 @@ module Dapp
|
|
99
106
|
else
|
100
107
|
application.hashsum [
|
101
108
|
_paths_checksum(stage_cookbooks_paths_for_checksum(stage)),
|
102
|
-
*
|
109
|
+
*enabled_modules,
|
103
110
|
stage == :infra_install ? chefdk_image : nil
|
104
111
|
].compact
|
105
112
|
end
|
@@ -113,7 +120,7 @@ module Dapp
|
|
113
120
|
@cookbooks_checksum ||= application.hashsum [
|
114
121
|
berksfile_lock_checksum,
|
115
122
|
_paths_checksum(local_cookbook_paths_for_checksum),
|
116
|
-
*
|
123
|
+
*enabled_modules
|
117
124
|
]
|
118
125
|
end
|
119
126
|
|
@@ -178,7 +185,7 @@ module Dapp
|
|
178
185
|
"--volumes-from #{volumes_from}",
|
179
186
|
"--workdir #{berksfile_path.parent}",
|
180
187
|
("--env SSH_AUTH_SOCK=#{ssh_auth_socket_path}" if ssh_auth_socket_path),
|
181
|
-
"dappdeps/berksdeps:0.1.0 bash #{application.shellout_pack(vendor_commands.join(' && '))}"].compact.join(' '),
|
188
|
+
"dappdeps/berksdeps:0.1.0 bash -ec '#{application.shellout_pack(vendor_commands.join(' && '))}'"].compact.join(' '),
|
182
189
|
log_verbose: application.log_verbose?
|
183
190
|
)
|
184
191
|
|
@@ -215,7 +222,8 @@ module Dapp
|
|
215
222
|
cookbook_name = File.basename cookbook_path
|
216
223
|
is_project = (cookbook_name == project_name)
|
217
224
|
is_mdapp = cookbook_name.start_with? 'mdapp-'
|
218
|
-
|
225
|
+
mdapp_name = (is_mdapp ? cookbook_name.split('mdapp-')[1] : nil)
|
226
|
+
mdapp_enabled = is_mdapp && enabled_modules.include?(mdapp_name)
|
219
227
|
|
220
228
|
paths = if is_project
|
221
229
|
recipe_paths = application.config._chef._recipes
|
@@ -227,8 +235,6 @@ module Dapp
|
|
227
235
|
recipe_path = "recipes/#{stage}.rb"
|
228
236
|
if cookbook_path.join(recipe_path).exist?
|
229
237
|
[[recipe_path, recipe_path]] + common_paths[cookbook_path]
|
230
|
-
elsif cookbook_metadata.depends.include? cookbook_name
|
231
|
-
[['metadata.json', 'metadata.json']]
|
232
238
|
end
|
233
239
|
else
|
234
240
|
[['.', '.']]
|
@@ -267,8 +273,8 @@ module Dapp
|
|
267
273
|
to_runlist_entrypoint[project_name, recipe]
|
268
274
|
end.flatten.compact)
|
269
275
|
|
270
|
-
res.concat(
|
271
|
-
to_runlist_entrypoint[mod, stage]
|
276
|
+
res.concat(enabled_modules.map do |mod|
|
277
|
+
to_runlist_entrypoint["mdapp-#{mod}", stage]
|
272
278
|
end.flatten.compact)
|
273
279
|
end
|
274
280
|
end
|
data/lib/dapp/builder/shell.rb
CHANGED
@@ -2,22 +2,16 @@ module Dapp
|
|
2
2
|
module Builder
|
3
3
|
# Shell
|
4
4
|
class Shell < Base
|
5
|
-
[:infra_install, :infra_setup, :install, :setup].each do |
|
6
|
-
define_method(:"#{
|
7
|
-
[application.config._shell.public_send("_#{
|
8
|
-
application.config._shell.public_send("_#{
|
5
|
+
[:infra_install, :infra_setup, :install, :setup].each do |stage|
|
6
|
+
define_method(:"#{stage}_checksum") do
|
7
|
+
[application.config._shell.public_send("_#{stage}"),
|
8
|
+
application.config._shell.public_send("_#{stage}_cache_version")].flatten
|
9
9
|
end
|
10
|
-
define_method(:"#{
|
11
|
-
|
10
|
+
define_method(:"#{stage}") do |image|
|
11
|
+
commands = application.config._shell.public_send("_#{stage}")
|
12
|
+
image.add_commands("export DAPP_BUILD_STAGE=#{stage}", *commands) if commands
|
12
13
|
end
|
13
14
|
end
|
14
|
-
|
15
|
-
def chef_cookbooks_checksum
|
16
|
-
[]
|
17
|
-
end
|
18
|
-
|
19
|
-
def chef_cookbooks(_image)
|
20
|
-
end
|
21
15
|
end
|
22
16
|
end
|
23
17
|
end
|
data/lib/dapp/controller.rb
CHANGED
@@ -49,11 +49,17 @@ module Dapp
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def stages_flush
|
52
|
-
|
52
|
+
build_configs.map(&:_basename).uniq.each do |basename|
|
53
|
+
log(basename)
|
54
|
+
shellout(%{docker rmi $(docker images --format="{{.Repository}}:{{.Tag}}" #{basename}-dappstage)})
|
55
|
+
end
|
53
56
|
end
|
54
57
|
|
55
58
|
def stages_cleanup
|
56
|
-
|
59
|
+
build_configs.map(&:_basename).uniq.each do |basename|
|
60
|
+
log(basename)
|
61
|
+
shellout(%{docker rmi $(docker images -f "dangling=true" -f "label=dapp=#{basename}" -q)})
|
62
|
+
end
|
57
63
|
end
|
58
64
|
|
59
65
|
def metadata_flush
|
data/lib/dapp/helper/shellout.rb
CHANGED
data/lib/dapp/image/stage.rb
CHANGED
@@ -47,7 +47,7 @@ module Dapp
|
|
47
47
|
|
48
48
|
def run!(log_verbose: false, log_time: false, introspect_error: false, introspect_before_error: false)
|
49
49
|
raise Error::Build, code: :built_id_not_defined if from.built_id.nil?
|
50
|
-
shellout!("docker run #{prepared_options} --entrypoint /bin/
|
50
|
+
shellout!("docker run #{prepared_options} --entrypoint /bin/bash --name=#{container_name} #{from.built_id} -ec '#{prepared_bash_command}'",
|
51
51
|
log_verbose: log_verbose, log_time: log_time)
|
52
52
|
rescue Error::Shellout => e
|
53
53
|
raise unless introspect_error || introspect_before_error
|
data/lib/dapp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Stolyarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|