docker-builder 0.1.37 → 0.1.38
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/install_local.sh +1 -1
- data/lib/docker_builder/builder/packer.rb +3 -3
- data/lib/docker_builder/manager.rb +34 -16
- data/lib/docker_builder/manager_swarm.rb +1 -1
- data/lib/docker_builder/provisioner/provisioner_chef.rb +1 -1
- data/lib/docker_builder/temp.rb +1 -0
- data/lib/docker_builder/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63eb356b5708d5b8e8ced37c1e15e4d7d14f398b
|
4
|
+
data.tar.gz: 5b57b4dae9c1d1b5f89632766d9231190dfcb97e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3788f2a6a2fd7b557c659c377f18c0395a3a463348f19cd93930fafa330537327178b97a9027ddd6ddea462dba1db46903688aa836ac21b23c9e0b6b2a74ee9
|
7
|
+
data.tar.gz: ac143ecd8d1c3d712660f46ed49539e4c17f749d04effe5961429de8e29ef6e6e847e65a9baa84a50d6315d934835c6d7f78f3ac84444bb12a1d939896c3e1e3
|
data/install_local.sh
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
gem build docker-builder.gemspec
|
2
|
-
gem install ./docker-builder-0.1.
|
2
|
+
gem install ./docker-builder-0.1.38.gem
|
@@ -54,7 +54,7 @@ module DockerBuilder
|
|
54
54
|
|
55
55
|
res['builders'] = []
|
56
56
|
|
57
|
-
bi = settings.
|
57
|
+
bi = settings.properties['build']['base_image']
|
58
58
|
base_image_name = "#{bi['name']}:#{bi['tag']}"
|
59
59
|
builder1 = {
|
60
60
|
pull: false,
|
@@ -64,7 +64,7 @@ module DockerBuilder
|
|
64
64
|
}
|
65
65
|
|
66
66
|
# changes
|
67
|
-
entrypoint = settings.
|
67
|
+
entrypoint = settings.properties['build']['entrypoint']
|
68
68
|
if entrypoint
|
69
69
|
builder1['changes'] ||= []
|
70
70
|
builder1['changes'] << "ENTRYPOINT #{entrypoint}"
|
@@ -82,7 +82,7 @@ module DockerBuilder
|
|
82
82
|
type: "chef-solo",
|
83
83
|
prevent_sudo: true,
|
84
84
|
cookbook_paths: cookbook_paths,
|
85
|
-
json: settings.
|
85
|
+
json: settings.properties['attributes'],
|
86
86
|
run_list: ["recipe[#{settings.name}::#{recipe_name}]"]
|
87
87
|
},
|
88
88
|
]
|
@@ -30,7 +30,7 @@ class Manager
|
|
30
30
|
def self.build_image(server_name, settings=nil)
|
31
31
|
puts "building image for #{server_name}..."
|
32
32
|
#puts "settings: #{settings}"
|
33
|
-
#puts "debug: #{settings['
|
33
|
+
#puts "debug: #{settings['properties']}"
|
34
34
|
|
35
35
|
#settings = load_settings(server_name)
|
36
36
|
|
@@ -169,15 +169,6 @@ class Manager
|
|
169
169
|
end
|
170
170
|
|
171
171
|
|
172
|
-
# ??? TODO: remove it ?
|
173
|
-
# run some provision scripts - for chef
|
174
|
-
bootstrap_type = (settings['install']['bootstrap']['type'] rescue nil)
|
175
|
-
|
176
|
-
# before start
|
177
|
-
if bootstrap_type && bootstrap_type=='chef'
|
178
|
-
_bootstrap_container_prepare(settings)
|
179
|
-
end
|
180
|
-
|
181
172
|
|
182
173
|
### START && run provision after start
|
183
174
|
start_container(name, settings)
|
@@ -217,6 +208,11 @@ class Manager
|
|
217
208
|
|
218
209
|
|
219
210
|
def self.start_container(name, settings)
|
211
|
+
# prepare before start
|
212
|
+
prepare_before_start(settings)
|
213
|
+
|
214
|
+
|
215
|
+
|
220
216
|
# start
|
221
217
|
cmd %Q(docker start #{settings.container_name})
|
222
218
|
|
@@ -246,6 +242,34 @@ class Manager
|
|
246
242
|
assert res, "Container #{container_name} is not running"
|
247
243
|
end
|
248
244
|
|
245
|
+
def self.prepare_before_start(settings)
|
246
|
+
puts "prepare_before_start"
|
247
|
+
|
248
|
+
#
|
249
|
+
bootstrap_scripts = (settings['provision']['bootstrap'] rescue [])
|
250
|
+
|
251
|
+
# before start
|
252
|
+
if bootstrap_scripts
|
253
|
+
bootstrap_scripts.each do |script|
|
254
|
+
if script['type']=='chef'
|
255
|
+
_prepare_provision_before_start_chef(settings, script)
|
256
|
+
end
|
257
|
+
end
|
258
|
+
end
|
259
|
+
|
260
|
+
end
|
261
|
+
|
262
|
+
def self._prepare_provision_before_start_chef(settings, script)
|
263
|
+
puts "_prepare_provision_before_start_chef"
|
264
|
+
|
265
|
+
require_relative '../../lib/docker_builder/provisioner/provisioner_chef'
|
266
|
+
|
267
|
+
provisioner = DockerBuilder::Provisioner::ProvisionerChef.new(settings)
|
268
|
+
provisioner.copy_config_file
|
269
|
+
|
270
|
+
end
|
271
|
+
|
272
|
+
|
249
273
|
def self.setup_container_after_start(settings)
|
250
274
|
|
251
275
|
# default gateway
|
@@ -387,13 +411,7 @@ class Manager
|
|
387
411
|
end
|
388
412
|
|
389
413
|
|
390
|
-
def self._bootstrap_container_prepare(settings)
|
391
|
-
require_relative '../../lib/docker_builder/provisioner/provisioner_chef'
|
392
|
-
|
393
|
-
provisioner = DockerBuilder::Provisioner::ProvisionerChef.new(settings)
|
394
|
-
provisioner.copy_config_file
|
395
414
|
|
396
|
-
end
|
397
415
|
|
398
416
|
def self._provision_container_chef_recipe(settings)
|
399
417
|
puts "provisioning container #{settings.container_name}"
|
@@ -23,7 +23,7 @@ module DockerBuilder
|
|
23
23
|
create_volumes_dirs(settings)
|
24
24
|
|
25
25
|
# create service
|
26
|
-
docker_opts = settings.
|
26
|
+
docker_opts = settings.properties['docker']
|
27
27
|
|
28
28
|
run_opts = []
|
29
29
|
run_opts << "--network #{docker_opts['swarm_network']}" if docker_opts['swarm_network']
|
@@ -0,0 +1 @@
|
|
1
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.38
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Ivak
|
@@ -154,6 +154,7 @@ files:
|
|
154
154
|
- lib/docker_builder/manager_swarm.rb
|
155
155
|
- lib/docker_builder/provisioner/provisioner_chef.rb
|
156
156
|
- lib/docker_builder/server_settings.rb
|
157
|
+
- lib/docker_builder/temp.rb
|
157
158
|
- lib/docker_builder/version.rb
|
158
159
|
- lib/templates/example-chef/.chef/knife.rb
|
159
160
|
- lib/templates/example-chef/config.rb.erb
|