docker-builder 0.1.13 → 0.1.14

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.
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