docker-builder 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +0 -0
  3. data/Gemfile +0 -0
  4. data/LICENSE.txt +0 -0
  5. data/Rakefile +0 -0
  6. data/docker-builder.gemspec +0 -0
  7. data/examples/example-apps-php/.chef/knife.rb +0 -0
  8. data/examples/example-apps-php/config.rb +0 -0
  9. data/examples/example-apps-php/servers/apps-php/.chef/knife.rb +0 -0
  10. data/examples/example-apps-php/servers/apps-php/config.rb +0 -0
  11. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/README.md +0 -0
  12. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/metadata.rb +0 -0
  13. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/recipes/build.rb +0 -0
  14. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/recipes/install.rb +0 -0
  15. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/recipes/install_app.rb +0 -0
  16. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/recipes/install_host.rb +0 -0
  17. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/index.html.erb +0 -0
  18. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/nginx-sites/app.conf.erb +0 -0
  19. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/nginx-sites/app.conf.erb.1 +0 -0
  20. data/examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/nginx-sites/default.conf.erb +0 -0
  21. data/examples/example-apps-php/servers/apps-php/readme.md +0 -0
  22. data/examples/example-apps-php/temp/apps-php.1.json +14 -0
  23. data/examples/example-base-chef/.chef/knife.rb +6 -0
  24. data/examples/example-base-chef/config.rb +19 -0
  25. data/examples/example-base-chef/readme.md +8 -0
  26. data/examples/example-base-chef/servers/my/.chef/knife.rb +2 -0
  27. data/examples/example-base-chef/servers/my/config.rb +53 -0
  28. data/examples/example-base-chef/servers/my/cookbooks/my/README.md +1 -0
  29. data/examples/example-base-chef/servers/my/cookbooks/my/metadata.rb +9 -0
  30. data/examples/example-base-chef/servers/my/cookbooks/my/recipes/build.rb +13 -0
  31. data/examples/example-base-chef/servers/my/cookbooks/my/recipes/install.rb +0 -0
  32. data/examples/example-base-chef/servers/my/cookbooks/my/recipes/install_host.rb +9 -0
  33. data/examples/example-base-chef/servers/my/readme.md +0 -0
  34. data/examples/example-base-chef/temp/my.json +1 -0
  35. data/examples/example-kafka-zookeeper/config.rb +0 -0
  36. data/examples/example-nginx/config.rb +0 -0
  37. data/examples/example-nginx/servers/nginx/.chef/knife.rb +0 -0
  38. data/examples/example-nginx/servers/nginx/config.rb +0 -0
  39. data/examples/example-nginx/servers/nginx/cookbooks/nginx/README.md +0 -0
  40. data/examples/example-nginx/servers/nginx/cookbooks/nginx/metadata.rb +0 -0
  41. data/examples/example-nginx/servers/nginx/cookbooks/nginx/recipes/build.rb +0 -0
  42. data/examples/example-nginx/servers/nginx/cookbooks/nginx/recipes/install.rb +0 -0
  43. data/examples/example-nginx/servers/nginx/cookbooks/nginx/recipes/install_host.rb +0 -0
  44. data/examples/example-nginx/servers/nginx/cookbooks/nginx/templates/index.html.erb +0 -0
  45. data/examples/example-nginx/servers/nginx/cookbooks/nginx/templates/nginx-sites/default.conf.erb +0 -0
  46. data/examples/example-nginx/servers/nginx/readme.md +0 -0
  47. data/examples/example-nginx/servers/nginx/scripts/install.sh +0 -0
  48. data/examples/example-nginx/temp/ex_nginx.json +0 -0
  49. data/examples/example-nginx/temp/nginx.json +0 -0
  50. data/install_local.sh +0 -0
  51. data/lib/docker_builder.rb +0 -0
  52. data/lib/docker_builder/chef/.chef/knife.rb +6 -5
  53. data/lib/docker_builder/chef/chef_build_image.rb +9 -14
  54. data/lib/docker_builder/chef/chef_build_image_debug1.rb +60 -0
  55. data/lib/docker_builder/chef/chef_destroy_image.rb +0 -12
  56. data/lib/docker_builder/cli.rb +4 -8
  57. data/lib/docker_builder/config.rb +1 -1
  58. data/lib/docker_builder/config/dsl.rb +0 -0
  59. data/lib/docker_builder/config/helpers.rb +0 -0
  60. data/lib/docker_builder/cookbooks/docker-builder/README.md +1 -0
  61. data/lib/docker_builder/cookbooks/docker-builder/libraries/docker_containers_lib.rb +11 -0
  62. data/lib/docker_builder/cookbooks/docker-builder/libraries/myhelpers.rb +14 -0
  63. data/lib/docker_builder/cookbooks/docker-builder/libraries/resource_mycontainer.rb +33 -0
  64. data/lib/docker_builder/cookbooks/docker-builder/metadata.rb +9 -0
  65. data/lib/docker_builder/cookbooks/docker-builder/recipes/destroy_container.rb +0 -0
  66. data/lib/docker_builder/cookbooks/docker-builder/recipes/install_container.rb +18 -0
  67. data/lib/docker_builder/cookbooks/docker-builder/recipes/provision_container.rb +14 -0
  68. data/lib/docker_builder/cookbooks/docker-builder/resources/mycontainer.rb +65 -0
  69. data/lib/docker_builder/manager.rb +2 -0
  70. data/lib/docker_builder/server_settings.rb +6 -5
  71. data/lib/docker_builder/version.rb +1 -1
  72. data/lib/templates/example-chef/.chef/knife.rb +0 -0
  73. data/lib/templates/example-chef/config.rb.erb +0 -0
  74. data/lib/templates/example-chef/servers/server1/.chef/knife.rb +0 -0
  75. data/lib/templates/example-chef/servers/server1/config.rb.erb +0 -0
  76. data/lib/templates/example-chef/servers/server1/cookbooks/server1/README.md +0 -0
  77. data/lib/templates/example-chef/servers/server1/cookbooks/server1/metadata.rb.erb +0 -0
  78. data/lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/build.rb +0 -0
  79. data/lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/install.rb +0 -0
  80. data/lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/install_host.rb +0 -0
  81. data/lib/templates/example-chef/servers/server1/cookbooks/server1/templates/index.html.erb +0 -0
  82. data/lib/templates/example-chef/servers/server1/cookbooks/server1/templates/nginx-sites/default.conf.erb +0 -0
  83. data/readme_developers.md +0 -0
  84. data/temp.sh +0 -0
  85. data/temp/app-php.json +0 -0
  86. data/temp/build.sh +0 -0
  87. data/temp/cookbooks/temp1/recipes/build.rb +0 -0
  88. data/temp/run.sh +0 -0
  89. metadata +25 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d881511665b52826f0f8e369a352bac25d63b06c
4
- data.tar.gz: ddbb779ff4ea383842c19af5bced4f8c7ad5cbb7
3
+ metadata.gz: 64818dcd8a002f703ad3e8815a65b41f41b982fa
4
+ data.tar.gz: b5fc7a84041278996604d286c6391e0d26ae83b5
5
5
  SHA512:
6
- metadata.gz: 8ae3492ddd49936ce1bd1e2344d4f1a4858caabd5265a068e5352dbfc6681faac2162adaee6be19394a861e7f18dc67d01584306003748d5aa40f105baffe5d2
7
- data.tar.gz: 41136426282739c7726d7aa103f8e7b527a3fe97c08b26209e4ba6030fd30dc5c04507b2aa13fb6a875ef870dca9eda69f31d70a5fbc37489287d171ab74ea6a
6
+ metadata.gz: 797b8478d848233a699374827abe591cc8674a43fed256abd4f9e4e32c3b5946e3cbba4ba56308a199a1d791d69c157c9ab8c731a04ccc36a6837a71565ad4ca
7
+ data.tar.gz: c16f17c1625468db57cd685e16bd567d3ec2da81f7fb55422141ad4a7766a8b2475fc965c5789662adffbe47260a3fd4655db3a22b9e8ff70c0185e0bfb8628e
data/CODE_OF_CONDUCT.md CHANGED
File without changes
data/Gemfile CHANGED
File without changes
data/LICENSE.txt CHANGED
File without changes
data/Rakefile CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,14 @@
1
+ {"name":"apps-php",
2
+ "build":{"image_name":
3
+ "apps-php","build_type":"chef","base_image":{"name":"my-nginx-php","repository":"my-nginx-php","tag":"latest"}},
4
+
5
+ "install":{
6
+ "host":{"script_type":"chef_recipe","script":"install_host"},
7
+ "node":{"script_type":"chef_recipe","script":"install"}},
8
+ "docker":{"command":"/sbin/my_init","ports":[[8080,80]],
9
+ "volumes":[["/disk3/data/my-examples/apps-php/html","/var/www/html"],
10
+ ["/disk3/data/my-examples/apps-php/log/nginx","/var/log/nginx/"]],
11
+ "links":[]},
12
+ "attributes":{"nginx":{"sitename":"mysite.local"},"apps":{"app1":{"app_name":"app1","app_env":"production","app_domain":"app1.mmx.gex","app_domain_aliases":["app1.mmx.local"]},"app2":{"app_name":"app2","app_env":"production","app_domain":"app2.mmx.gex","app_domain_aliases":["app2.mmx.local"]}}},
13
+ "common":{"prefix":"example-","image_prefix":"example-","dir_data":"/disk3/data/my-examples/"},
14
+ "base":{"image_name":"example-apps-php","container_name":"example-apps-php"}}
@@ -0,0 +1,6 @@
1
+ puts "cookbooks from server: #{cookbook_path}"
2
+
3
+ cookbook_path cookbook_path+[
4
+ '/work/chef-repo/cookbooks-common',
5
+ '/work/chef-repo/cookbooks',
6
+ ]
@@ -0,0 +1,19 @@
1
+ common({
2
+ 'prefix' => "example-",
3
+ 'image_prefix' => 'example-',
4
+ 'dir_data' => '/disk3/data/my-exampless/example-base-chef',
5
+
6
+ })
7
+
8
+ servers({
9
+
10
+ 'my'=>{
11
+ # some server options here
12
+ }
13
+
14
+ })
15
+
16
+
17
+ base({
18
+
19
+ })
@@ -0,0 +1,8 @@
1
+
2
+ # Build
3
+
4
+ * build base image first from https://github.com/maxivak/docker-image-phusion-base
5
+
6
+ ```
7
+ docker build -t my-base-phusion-1604 github.com/maxivak/docker-image-phusion-base.git
8
+ ```
@@ -0,0 +1,53 @@
1
+
2
+ add 'build', {
3
+ "image_name" => "my5",
4
+ 'build_type' => 'chef',
5
+
6
+ "base_image" => {
7
+ "name" => "my-base-phusion-1604",
8
+ "repository" => "my-base-phusion-1604",
9
+ "tag" => "latest"
10
+
11
+ },
12
+
13
+ }
14
+
15
+ add 'install', {
16
+ "host" => {
17
+ 'script_type' => 'chef_recipe',
18
+ 'script' => 'install_host',
19
+ },
20
+ "node" => {
21
+ 'script_type' => 'chef_recipe',
22
+ 'script' => 'install',
23
+ }
24
+
25
+
26
+ }
27
+
28
+
29
+ add 'docker', {
30
+ 'command' => "/sbin/my_init",
31
+ #"command"=> "",
32
+ 'ports' => [
33
+ #[8080,80],
34
+ ],
35
+ 'volumes' => [
36
+ #['html', '/var/www/html'],
37
+ #['log/nginx', '/var/log/nginx/'],
38
+ ],
39
+ 'links' => [
40
+ ]
41
+ }
42
+
43
+
44
+
45
+ add 'attributes', {
46
+ 'nginx' =>{
47
+ "sitename" =>"mysite.local"
48
+ },
49
+
50
+
51
+ }
52
+
53
+
@@ -0,0 +1,9 @@
1
+ name 'my'
2
+ maintainer 'YOUR_COMPANY_NAME'
3
+ maintainer_email 'YOUR_EMAIL'
4
+ license 'All rights reserved'
5
+ description 'Base image'
6
+ long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
7
+ version '0.1.0'
8
+
9
+ #depends "apt"
@@ -0,0 +1,13 @@
1
+ # will be added to Docker image
2
+
3
+ #
4
+ =begin
5
+ ['/var/www/html', 'var/www/temp'].each do |d|
6
+ directory d do
7
+ recursive true
8
+ action :create
9
+ end
10
+
11
+ end
12
+
13
+ =end
@@ -0,0 +1,9 @@
1
+ # will be run on the host machine
2
+
3
+ file '/tmp/example-base-intalled.txt' do
4
+ content '22'
5
+ end
6
+
7
+
8
+
9
+
File without changes
@@ -0,0 +1 @@
1
+ {"name":"my","build":{"image_name":"my5","build_type":"chef","base_image":{"name":"my-base-phusion-1604","repository":"my-base-phusion-1604","tag":"latest"}},"install":{"host":{"script_type":"chef_recipe","script":"install_host"},"node":{"script_type":"chef_recipe","script":"install"}},"docker":{"command":"/sbin/my_init","ports":[],"volumes":[],"links":[]},"attributes":{"nginx":{"sitename":"mysite.local"}},"common":{"prefix":"example-","image_prefix":"example-","dir_data":"/disk3/data/my-exampless/example-base-chef"},"base":{"image_name":"example-my5","container_name":"example-my"}}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/install_local.sh CHANGED
File without changes
File without changes
@@ -21,16 +21,17 @@ node_name my_server_name
21
21
  knife[:chef_node_name] = my_server_name
22
22
 
23
23
  server_base_dir = ENV['SERVER_PATH']
24
- server_cookbooks_path = File.expand_path('cookbooks', server_base_dir)
25
-
26
24
 
27
25
  #client_key "#{current_dir}/dummy.pem"
28
26
  #validation_client_name "validator"
29
27
 
28
+ ### cookbooks
29
+
30
+ server_cookbooks_path = File.expand_path('cookbooks', server_base_dir)
31
+
30
32
  cookbooks_paths = [
31
33
  server_cookbooks_path,
32
34
 
33
- #'/mnt/data/projects/mmx/docker-builder/examples/example-nginx/servers/nginx/cookbooks',
34
35
  #File.expand_path('../temp-cookbooks', root),
35
36
  #File.join(root, '../cookbooks'),
36
37
  #File.join(root, '../', node_name, 'cookbooks'),
@@ -44,7 +45,7 @@ cookbooks_paths = [
44
45
 
45
46
  cookbooks_paths.reject!{|f| !Dir.exists?(f)}
46
47
 
47
- #puts "cookbooks: #{cookbooks_paths.inspect}"
48
+ puts "cookbooks: #{cookbooks_paths.inspect}"
48
49
 
49
50
 
50
51
 
@@ -66,7 +67,7 @@ end
66
67
 
67
68
  cookbook_path cookbook_path+cookbooks_paths
68
69
 
69
- puts "FINAL cookbooks: #{cookbook_path}"
70
+ #puts "FINAL cookbooks: #{cookbook_path}"
70
71
 
71
72
  # node name
72
73
  knife[:force] = true
@@ -7,33 +7,28 @@ require 'chef/provisioning'
7
7
 
8
8
  #
9
9
  server_name = ENV['SERVER_NAME']
10
- #puts "server: #{server_name}"
11
- #puts "node: #{node['docker'].inspect}"
12
- #exit
13
-
14
10
 
15
11
  # settings
16
12
  docker_options = {
17
13
  base_image: node['build']['base_image'],
18
- #base_image: 'nginx:1.10',
19
14
  privileged: true,
20
15
  command: node['docker']['command'] || '',
21
- #command: "nginx -g 'daemon off;'",
22
- #command: "",
23
-
24
16
  }
25
17
 
26
- #puts "image = #{settings.image_name}"
27
- #puts "opt = #{docker_options}"
18
+ #puts "server: #{server_name}"
19
+ #puts "node base = #{node['base']}"
20
+ #puts "image = #{node['base']['image_name']}"
21
+ #puts "node attr: #{node['attributes']}"
22
+ #puts "docker opt = #{docker_options}"
28
23
  #exit
29
24
 
30
-
31
-
32
-
25
+ image_name = node['base']['image_name']
26
+ #image_name = 'example-my'
33
27
 
34
28
  ### docker image
35
29
  with_driver 'docker'
36
- machine_image node['base']['image_name'] do
30
+ #machine_image node['base']['image_name'] do
31
+ machine_image image_name do
37
32
  action :create
38
33
 
39
34
  #tag '0.1'
@@ -0,0 +1,60 @@
1
+ base_dir = File.dirname(__FILE__)
2
+
3
+ #
4
+ require 'chef/provisioning'
5
+
6
+ #
7
+ server_name = ENV['SERVER_NAME']
8
+ puts "server: #{server_name}"
9
+ puts "node base: #{node['base']}"
10
+ puts "node docker: #{node['docker'].inspect}"
11
+ puts "attr: #{node['attributes']}"
12
+ puts "image: #{node['base']['image_name']}"
13
+
14
+ #exit
15
+
16
+
17
+
18
+ # settings
19
+ docker_options = {
20
+ base_image: 'my-base-phusion-1604',
21
+ privileged: true,
22
+ command: '/sbin/my_init',
23
+
24
+ }
25
+
26
+ #puts "image = #{settings.image_name}"
27
+ puts "docker opt = #{docker_options}"
28
+ #exit
29
+
30
+
31
+
32
+
33
+
34
+ ### docker image
35
+ with_driver 'docker'
36
+ machine_image 'example-my2' do
37
+ action :create
38
+
39
+ #tag '0.1'
40
+
41
+ recipe "#{server_name}::build"
42
+
43
+ # attributes
44
+ #node.keys.each do |k|
45
+ # attribute k, node[k]
46
+ #end
47
+
48
+ # attributes
49
+ #node['attributes'].keys.each do |k|
50
+ # attribute k, node['attributes'][k]
51
+ #end
52
+
53
+ #
54
+ machine_options docker_options: docker_options
55
+
56
+
57
+ end
58
+
59
+
60
+
@@ -8,18 +8,6 @@ server_name = ENV['SERVER_NAME']
8
8
 
9
9
 
10
10
  # settings
11
- docker_options = {
12
- base_image: node['build']['base_image'],
13
- privileged: true,
14
- command: node['docker']['command'] || '',
15
- #ports: settings.docker_ports_array,
16
- #volumes: settings.docker_volumes_array,
17
- #links: settings.docker_links_array
18
- }
19
-
20
- #puts "image = #{settings.image_name}"
21
- #puts "opt = #{docker_options}"
22
-
23
11
 
24
12
  ### docker image
25
13
  with_driver 'docker'
@@ -37,10 +37,10 @@ class CLI < Thor
37
37
  :desc => 'Path to your config.rb file.'
38
38
 
39
39
  def build
40
- puts "building..."
40
+ puts "building images..."
41
41
 
42
42
  opts = options
43
- puts "opt from command line: #{options.inspect}"
43
+ #puts "opt from command line: #{options.inspect}"
44
44
 
45
45
 
46
46
  warnings = false
@@ -130,21 +130,17 @@ class CLI < Thor
130
130
  warnings = false
131
131
  errors = false
132
132
 
133
+ servers = nil
134
+
133
135
  begin
134
136
  Config.load(options)
135
- puts "config: #{Config.inspect}"
136
137
 
137
138
  Config.servers.each do |name, opts|
138
139
  server_settings = Settings.load_settings_for_server(name)
139
140
 
140
- puts "s: #{server_settings.inspect}"
141
- exit
142
-
143
141
  Manager.destroy_image(name, server_settings)
144
142
  end
145
143
 
146
- #raise Error, "No servers found " + "'#{ triggers.join(',') }'." if models.empty?
147
-
148
144
  rescue Exception => err
149
145
  puts "exception: #{err.inspect}"
150
146
  raise err
@@ -126,7 +126,7 @@ module DockerBuilder
126
126
 
127
127
  new_root = root_path.empty? ? false : set_root_path(root_path)
128
128
 
129
- puts "FINAL root= #{@root_path}"
129
+ #puts "FINAL root= #{@root_path}"
130
130
  #exit
131
131
 
132
132
  DEFAULTS.each do |name, ending|
File without changes
File without changes
@@ -0,0 +1 @@
1
+ # Docker builder
@@ -0,0 +1,11 @@
1
+
2
+
3
+ class DockerContainersLib
4
+ def self.debug
5
+ puts "hello"
6
+
7
+ end
8
+
9
+
10
+
11
+ end
@@ -0,0 +1,14 @@
1
+ class Chef
2
+ class Recipe
3
+
4
+ # A shortcut
5
+ def get_attr_data(name)
6
+ node[name]
7
+ end
8
+
9
+ def get_attr_data_docker(name)
10
+ node[name][:docker]
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,33 @@
1
+ =begin
2
+ def destroy_container(name)
3
+ return @r unless @r.nil?
4
+
5
+ @r = Chef::Resource::Machine.new(name, run_context)
6
+ @r.action(:destroy)
7
+
8
+ @r
9
+ end
10
+ =end
11
+
12
+ require 'chef/resource'
13
+
14
+ class Chef
15
+ class Resource
16
+ # Missing top-level class documentation comment
17
+ class MyDockerContainer < Chef::Resource
18
+ def initialize(name, run_context = nil)
19
+ super
20
+ @resource_name = :my_docker_container
21
+ #@provider = Chef::Provider::RunitService
22
+ #@supports = { restart: true, reload: true, status: true }
23
+ #@action = :create
24
+ #@allowed_actions = [:nothing, :start, :stop, :enable, :disable, :restart, :reload, :status, :once, :hup, :cont, :term, :kill, :up, :down, :usr1, :usr2, :create]
25
+
26
+
27
+
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+
@@ -0,0 +1,9 @@
1
+ name 'docker-builder'
2
+ maintainer 'YOUR_COMPANY_NAME'
3
+ maintainer_email 'YOUR_EMAIL'
4
+ license 'All rights reserved'
5
+ description 'Docker builder'
6
+ long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
7
+ version '0.1.0'
8
+
9
+
@@ -0,0 +1,18 @@
1
+ base_dir = File.dirname(__FILE__)
2
+
3
+ #
4
+ require_relative 'lib/settings'
5
+
6
+ #
7
+ server_name = ENV['SERVER_NAME']
8
+ settings = Settings.load_settings_for_server(server_name)
9
+
10
+ #
11
+ file '/home/mmx/temp/1.txt' do
12
+ content '<html>This is a placeholder for the home page.</html>'
13
+ end
14
+
15
+
16
+ #include "#{settings.name}::install"
17
+ #include "phpredisadmin-php-fpm::install"
18
+ include_recipe "phpredisadmin-php-fpm::install"
@@ -0,0 +1,14 @@
1
+ base_dir = File.dirname(__FILE__)
2
+
3
+ #
4
+ require_relative 'lib/settings'
5
+
6
+ #
7
+ require 'chef/provisioning'
8
+
9
+ #
10
+ server_name = ENV['SERVER_NAME']
11
+ settings = Settings.load_settings_for_server(server_name)
12
+
13
+ #
14
+ #include "#{settings.name}::install"
@@ -0,0 +1,65 @@
1
+ #resource_name :mycontainer
2
+
3
+ property :container_name, String, default: ''
4
+ property :data, Hash, default: {}
5
+ property :app_data_dir, String, default: ''
6
+
7
+ #property :docker_options, Hash, default: {}
8
+
9
+ action :stop do
10
+ execute 'docker s' do
11
+ command "docker stop #{container_name}"
12
+
13
+ ignore_failure true
14
+ end
15
+
16
+ end
17
+
18
+ action :destroy do
19
+
20
+ machine container_name do
21
+ action :destroy
22
+ end
23
+
24
+ end
25
+
26
+
27
+ action :create do
28
+ docker_volumes = data['docker']['volumes'] || []
29
+ docker_ports = data['docker']['ports'] || []
30
+
31
+ # create directories for volumes
32
+ docker_volumes.each do |d|
33
+ directory "#{app_data_dir}#{d}" do
34
+ mode '0775'
35
+ recursive true
36
+ action :create
37
+ end
38
+ end
39
+
40
+ # run container
41
+ machine container_name do
42
+ tag '0.1'
43
+
44
+ action :create
45
+
46
+ recipe recipe_provision
47
+
48
+ #chef_environment chef_env
49
+
50
+ # attributes
51
+ data['attributes'].keys.each do |k|
52
+ attribute k, data['attributes'][k]
53
+ end
54
+
55
+
56
+ machine_options docker_options: {
57
+ base_image: {name: data['docker']['base_image'], repository: data['docker']['base_image'], tag: data['docker']['base_image_tag'] },
58
+ command: data['docker']['command'] || '',
59
+ privileged: true,
60
+ ports: docker_ports,
61
+ volumes: docker_volumes.map{|d| "#{app_data_dir}#{d}:#{d}"}
62
+ }
63
+
64
+ end
65
+ end
@@ -220,6 +220,8 @@ class Manager
220
220
 
221
221
 
222
222
  def self.destroy_image(server_name, settings={})
223
+ puts "destroying image for server #{server_name}"
224
+
223
225
  cmd %Q(docker rmi #{settings.image_name} )
224
226
  cmd %Q(docker rm -f chef.converge.#{settings.image_name} )
225
227
 
@@ -74,6 +74,11 @@ class ServerSettings
74
74
  return "#{bi['name']}:#{bi['tag']}"
75
75
  end
76
76
 
77
+ #
78
+ if attributes['build']['image_name']
79
+ return "#{attributes['common']['image_prefix']}#{attributes['build']['image_name']}"
80
+ end
81
+
77
82
  "#{attributes['common']['image_prefix']}#{s}"
78
83
  end
79
84
 
@@ -284,7 +289,7 @@ class Settings
284
289
 
285
290
  #
286
291
  f = file_settings_for_server(name)
287
- puts "loading server settings from #{f}"
292
+ #puts "loading server settings from #{f}"
288
293
  t = File.read(f) rescue ''
289
294
  eval(t, settings.get_binding)
290
295
 
@@ -294,10 +299,6 @@ class Settings
294
299
  # from common config
295
300
  settings.attributes['common'] = Config.options[:common]
296
301
 
297
- #puts "config options = #{Config.options}"
298
- #puts "settings000 = #{settings.attributes}"
299
- #exit
300
-
301
302
  settings
302
303
  end
303
304
 
@@ -1,3 +1,3 @@
1
1
  module DockerBuilder
2
- VERSION = "0.1.13"
2
+ VERSION = "0.1.14"
3
3
  end
File without changes
File without changes
data/readme_developers.md CHANGED
File without changes
data/temp.sh CHANGED
File without changes
data/temp/app-php.json CHANGED
File without changes
data/temp/build.sh CHANGED
File without changes
File without changes
data/temp/run.sh CHANGED
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Ivak
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-06 00:00:00.000000000 Z
11
+ date: 2016-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -84,6 +84,19 @@ files:
84
84
  - examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/nginx-sites/app.conf.erb.1
85
85
  - examples/example-apps-php/servers/apps-php/cookbooks/apps-php/templates/nginx-sites/default.conf.erb
86
86
  - examples/example-apps-php/servers/apps-php/readme.md
87
+ - examples/example-apps-php/temp/apps-php.1.json
88
+ - examples/example-base-chef/.chef/knife.rb
89
+ - examples/example-base-chef/config.rb
90
+ - examples/example-base-chef/readme.md
91
+ - examples/example-base-chef/servers/my/.chef/knife.rb
92
+ - examples/example-base-chef/servers/my/config.rb
93
+ - examples/example-base-chef/servers/my/cookbooks/my/README.md
94
+ - examples/example-base-chef/servers/my/cookbooks/my/metadata.rb
95
+ - examples/example-base-chef/servers/my/cookbooks/my/recipes/build.rb
96
+ - examples/example-base-chef/servers/my/cookbooks/my/recipes/install.rb
97
+ - examples/example-base-chef/servers/my/cookbooks/my/recipes/install_host.rb
98
+ - examples/example-base-chef/servers/my/readme.md
99
+ - examples/example-base-chef/temp/my.json
87
100
  - examples/example-kafka-zookeeper/config.rb
88
101
  - examples/example-kafka-zookeeper/servers/kafka/Dockerfile
89
102
  - examples/example-kafka-zookeeper/servers/kafka/README.md
@@ -113,6 +126,7 @@ files:
113
126
  - lib/docker_builder/chef/.chef/knife.rb
114
127
  - lib/docker_builder/chef/chef_build_image.copy0.rb
115
128
  - lib/docker_builder/chef/chef_build_image.rb
129
+ - lib/docker_builder/chef/chef_build_image_debug1.rb
116
130
  - lib/docker_builder/chef/chef_destroy_container.rb
117
131
  - lib/docker_builder/chef/chef_destroy_image.copy0.rb
118
132
  - lib/docker_builder/chef/chef_destroy_image.rb
@@ -125,6 +139,15 @@ files:
125
139
  - lib/docker_builder/config.rb
126
140
  - lib/docker_builder/config/dsl.rb
127
141
  - lib/docker_builder/config/helpers.rb
142
+ - lib/docker_builder/cookbooks/docker-builder/README.md
143
+ - lib/docker_builder/cookbooks/docker-builder/libraries/docker_containers_lib.rb
144
+ - lib/docker_builder/cookbooks/docker-builder/libraries/myhelpers.rb
145
+ - lib/docker_builder/cookbooks/docker-builder/libraries/resource_mycontainer.rb
146
+ - lib/docker_builder/cookbooks/docker-builder/metadata.rb
147
+ - lib/docker_builder/cookbooks/docker-builder/recipes/destroy_container.rb
148
+ - lib/docker_builder/cookbooks/docker-builder/recipes/install_container.rb
149
+ - lib/docker_builder/cookbooks/docker-builder/recipes/provision_container.rb
150
+ - lib/docker_builder/cookbooks/docker-builder/resources/mycontainer.rb
128
151
  - lib/docker_builder/manager.rb
129
152
  - lib/docker_builder/server_settings.rb
130
153
  - lib/docker_builder/version.rb