docker-builder 0.1.18 → 0.1.19
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/examples/example-swarm-redis/config.rb +61 -0
- data/examples/example-swarm-redis/readme.md +10 -0
- data/install_local.sh +1 -1
- data/lib/docker_builder.rb +2 -0
- data/lib/docker_builder/cli.rb +114 -0
- data/lib/docker_builder/command.rb +16 -0
- data/lib/docker_builder/manager.rb +1 -8
- data/lib/docker_builder/manager_swarm.rb +46 -0
- data/lib/docker_builder/version.rb +1 -1
- data/readme.md +22 -0
- metadata +5 -2
- data/bootstrap_local.sh +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9decd6798b5b0e74debf337079619b93a7f9b55b
|
4
|
+
data.tar.gz: bb395e7fd4f4ec4f7401e72956f2d6e255ec1125
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6be299c8ce18ac07a5948551e4e5e41e2c125a25eb57cf2f63b5159166635e82c482d3a6f2a7093703880d6ea89f362a08d1aca8ebc56b57cedd92ee06582f7
|
7
|
+
data.tar.gz: 04ad6e29653eb83590d8685ebf8ab73644af52e4ea8b46dcce1b5fcd2f23ed95d86fccd4069f31e84bd71333d268f3d11022276e56d58a3285cf61343e11ed16
|
@@ -0,0 +1,61 @@
|
|
1
|
+
common({
|
2
|
+
'prefix' => "example-",
|
3
|
+
'image_prefix' => 'example-',
|
4
|
+
'dir_data' => '/disk3/data/my-examples/',
|
5
|
+
|
6
|
+
})
|
7
|
+
|
8
|
+
servers({
|
9
|
+
'redis'=>{
|
10
|
+
|
11
|
+
'build' => {
|
12
|
+
"image_name" => "redis",
|
13
|
+
'build_type' => 'none',
|
14
|
+
|
15
|
+
"base_image" => {
|
16
|
+
"name" => "redis",
|
17
|
+
"repository" => "redis",
|
18
|
+
"tag" => "3.2.4"
|
19
|
+
|
20
|
+
},
|
21
|
+
|
22
|
+
},
|
23
|
+
|
24
|
+
'install'=> {
|
25
|
+
},
|
26
|
+
|
27
|
+
'docker'=> {
|
28
|
+
#"command"=> "",
|
29
|
+
'ports' => [
|
30
|
+
[6379,80],
|
31
|
+
],
|
32
|
+
'volumes' => [
|
33
|
+
],
|
34
|
+
'links' => [
|
35
|
+
],
|
36
|
+
|
37
|
+
# network
|
38
|
+
#"ip"=>"10.1.0.144",
|
39
|
+
#"net"=> "pub_net",
|
40
|
+
|
41
|
+
# for swarm
|
42
|
+
"swarm_network"=> "pub_net",
|
43
|
+
#"swarm_options" => ""
|
44
|
+
"swarm_options" => "--replicas=1 --restart-max-attempts=1"
|
45
|
+
#"swarm_options" => "-e constraint:node==mmxpc "
|
46
|
+
# --net=pub_net --ip=10.1.0.131
|
47
|
+
|
48
|
+
},
|
49
|
+
|
50
|
+
'attributes'=> {
|
51
|
+
}
|
52
|
+
|
53
|
+
}, # / redis
|
54
|
+
|
55
|
+
|
56
|
+
})
|
57
|
+
|
58
|
+
|
59
|
+
base({
|
60
|
+
|
61
|
+
})
|
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.19.gem
|
data/lib/docker_builder.rb
CHANGED
data/lib/docker_builder/cli.rb
CHANGED
@@ -329,6 +329,120 @@ class CLI < Thor
|
|
329
329
|
|
330
330
|
end
|
331
331
|
|
332
|
+
|
333
|
+
### swarm mode
|
334
|
+
|
335
|
+
##
|
336
|
+
# [up_swarm]
|
337
|
+
#
|
338
|
+
#
|
339
|
+
desc 'up_swarm', 'Run Docker container in swarm mode'
|
340
|
+
|
341
|
+
long_desc <<-EOS.gsub(/^ +/, '')
|
342
|
+
Run Docker container in swarm mode.
|
343
|
+
EOS
|
344
|
+
|
345
|
+
method_option :server,
|
346
|
+
:aliases => ['-s', '--server'],
|
347
|
+
:required => false,
|
348
|
+
:type => :string,
|
349
|
+
:desc => "Server name"
|
350
|
+
|
351
|
+
method_option :root_path,
|
352
|
+
:aliases => '-r',
|
353
|
+
:type => :string,
|
354
|
+
:default => '',
|
355
|
+
:desc => 'Root path to base all relative path on.'
|
356
|
+
|
357
|
+
method_option :config_file,
|
358
|
+
:aliases => '-c',
|
359
|
+
:type => :string,
|
360
|
+
:default => 'config.rb',
|
361
|
+
:desc => 'Path to your config.rb file.'
|
362
|
+
|
363
|
+
def up_swarm
|
364
|
+
puts "running..."
|
365
|
+
|
366
|
+
warnings = false
|
367
|
+
errors = false
|
368
|
+
|
369
|
+
|
370
|
+
servers = nil
|
371
|
+
begin
|
372
|
+
Config.load(options)
|
373
|
+
|
374
|
+
Config.servers.each do |name, opts|
|
375
|
+
server_settings = Settings.load_settings_for_server(name)
|
376
|
+
|
377
|
+
ManagerSwarm.destroy_service(name, server_settings)
|
378
|
+
ManagerSwarm.create_service(name, server_settings)
|
379
|
+
end
|
380
|
+
|
381
|
+
rescue Exception => err
|
382
|
+
puts "exception: #{err.inspect}"
|
383
|
+
raise err
|
384
|
+
exit(3)
|
385
|
+
end
|
386
|
+
|
387
|
+
exit(errors ? 2 : 1) if errors || warnings
|
388
|
+
|
389
|
+
end
|
390
|
+
|
391
|
+
##
|
392
|
+
# [destroy_swarm]
|
393
|
+
#
|
394
|
+
#
|
395
|
+
desc 'destroy_swarm', 'Remove service in Docker swarm mode'
|
396
|
+
|
397
|
+
long_desc <<-EOS.gsub(/^ +/, '')
|
398
|
+
Remove service in Docker swarm mode
|
399
|
+
EOS
|
400
|
+
|
401
|
+
method_option :server,
|
402
|
+
:aliases => ['-s', '--server'],
|
403
|
+
:required => false,
|
404
|
+
:type => :string,
|
405
|
+
:desc => "Server name"
|
406
|
+
|
407
|
+
method_option :root_path,
|
408
|
+
:aliases => '-r',
|
409
|
+
:type => :string,
|
410
|
+
:default => '',
|
411
|
+
:desc => 'Root path to base all relative path on.'
|
412
|
+
|
413
|
+
method_option :config_file,
|
414
|
+
:aliases => '-c',
|
415
|
+
:type => :string,
|
416
|
+
:default => 'config.rb',
|
417
|
+
:desc => 'Path to your config.rb file.'
|
418
|
+
|
419
|
+
def destroy_swarm
|
420
|
+
puts "destroying..."
|
421
|
+
|
422
|
+
warnings = false
|
423
|
+
errors = false
|
424
|
+
|
425
|
+
servers = nil
|
426
|
+
begin
|
427
|
+
Config.load(options)
|
428
|
+
|
429
|
+
Config.servers.each do |name, opts|
|
430
|
+
server_settings = Settings.load_settings_for_server(name)
|
431
|
+
ManagerSwarm.destroy_service(name, server_settings)
|
432
|
+
end
|
433
|
+
|
434
|
+
rescue Exception => err
|
435
|
+
puts "exception: #{err.inspect}"
|
436
|
+
raise err
|
437
|
+
exit(3)
|
438
|
+
end
|
439
|
+
|
440
|
+
exit(errors ? 2 : 1) if errors || warnings
|
441
|
+
|
442
|
+
end
|
443
|
+
|
444
|
+
|
445
|
+
|
332
446
|
##
|
333
447
|
# [clear_cache]
|
334
448
|
#
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module DockerBuilder
|
2
|
+
class ManagerSwarm
|
3
|
+
|
4
|
+
def self.destroy_service(server_name, settings)
|
5
|
+
puts "destroying service #{server_name}..."
|
6
|
+
|
7
|
+
#
|
8
|
+
cmd %Q(docker service rm #{settings.container_name} )
|
9
|
+
|
10
|
+
#
|
11
|
+
return true
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
def self.create_service(server_name, settings={})
|
16
|
+
puts "create swarm service.."
|
17
|
+
|
18
|
+
# destroy
|
19
|
+
destroy_service(server_name, settings)
|
20
|
+
|
21
|
+
|
22
|
+
# create service
|
23
|
+
docker_opts = settings.attributes['docker']
|
24
|
+
|
25
|
+
run_opts = []
|
26
|
+
run_opts << "--network #{docker_opts['swarm_network']}" if docker_opts['swarm_network']
|
27
|
+
run_opts << docker_opts['swarm_options']
|
28
|
+
|
29
|
+
cmd %Q(docker service create \
|
30
|
+
--name #{settings.container_name} #{settings.docker_ports_string} \
|
31
|
+
#{run_opts.join(' ')} \
|
32
|
+
#{settings.image_name} #{settings['docker']['command']}
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
# helpers
|
39
|
+
|
40
|
+
def self.cmd(s)
|
41
|
+
Command.cmd(s)
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
data/readme.md
CHANGED
@@ -485,3 +485,25 @@ Sometimes you need to clear cache with server info in chef-zero server
|
|
485
485
|
```
|
486
486
|
docker-builder clear_cache
|
487
487
|
```
|
488
|
+
|
489
|
+
|
490
|
+
# Run in swarm mode
|
491
|
+
|
492
|
+
* commands
|
493
|
+
|
494
|
+
docker-builder :up_swarm
|
495
|
+
|
496
|
+
docker-builder :destroy_swarm
|
497
|
+
|
498
|
+
|
499
|
+
* config
|
500
|
+
|
501
|
+
```
|
502
|
+
docker: {
|
503
|
+
# options here...
|
504
|
+
}
|
505
|
+
```
|
506
|
+
|
507
|
+
* swarm_network - network name
|
508
|
+
* swarm_options - options to pass to docker service create command
|
509
|
+
|
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.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Ivak
|
@@ -67,7 +67,6 @@ files:
|
|
67
67
|
- Rakefile
|
68
68
|
- bin/console
|
69
69
|
- bin/setup
|
70
|
-
- bootstrap_local.sh
|
71
70
|
- docker-builder.gemspec
|
72
71
|
- examples/example-apps-php/.chef/knife.rb
|
73
72
|
- examples/example-apps-php/config.rb
|
@@ -119,6 +118,8 @@ files:
|
|
119
118
|
- examples/example-nginx/servers/nginx/scripts/install.sh
|
120
119
|
- examples/example-nginx/temp/ex_nginx.json
|
121
120
|
- examples/example-nginx/temp/nginx.json
|
121
|
+
- examples/example-swarm-redis/config.rb
|
122
|
+
- examples/example-swarm-redis/readme.md
|
122
123
|
- exe/docker-builder
|
123
124
|
- install_local.sh
|
124
125
|
- lib/docker_builder.rb
|
@@ -135,6 +136,7 @@ files:
|
|
135
136
|
- lib/docker_builder/chef/config_run_install_container_service.json
|
136
137
|
- lib/docker_builder/chef/install_container_service.rb
|
137
138
|
- lib/docker_builder/cli.rb
|
139
|
+
- lib/docker_builder/command.rb
|
138
140
|
- lib/docker_builder/config.rb
|
139
141
|
- lib/docker_builder/config/dsl.rb
|
140
142
|
- lib/docker_builder/config/helpers.rb
|
@@ -148,6 +150,7 @@ files:
|
|
148
150
|
- lib/docker_builder/cookbooks/docker-builder/recipes/provision_container.rb
|
149
151
|
- lib/docker_builder/cookbooks/docker-builder/resources/mycontainer.rb
|
150
152
|
- lib/docker_builder/manager.rb
|
153
|
+
- lib/docker_builder/manager_swarm.rb
|
151
154
|
- lib/docker_builder/server_settings.rb
|
152
155
|
- lib/docker_builder/version.rb
|
153
156
|
- lib/templates/example-chef/.chef/knife.rb
|
data/bootstrap_local.sh
DELETED