docker-builder 0.1.6 → 0.1.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e832d508142c8ff9a62334fd697d243ab26b6cd7
4
- data.tar.gz: 8fd2471f7fcde3212c2fb9eddb9ae4fcc4b8dacf
3
+ metadata.gz: bc243843b1db3da7d4895c18e78161dc9c6c8abe
4
+ data.tar.gz: 55b78014c237a2c8b979d0a797eb0cd20d2e5fcd
5
5
  SHA512:
6
- metadata.gz: 4a39d9ad9ace6555b515290836f47358abbe85c1e4f6713ad4508e022d5994bf9ef3b6b4fd508ba06c1028e87fce6fd05ebc2b58ce75701e2e6e4949522e7c98
7
- data.tar.gz: 2673f18151df9441e6fbca6d3a8a68fe363916fc60bae5d21c06ba389614722edb315304af96741166de4b19d39b2e91becf6c73eb4a6e39a2762fd4f0acb4af
6
+ metadata.gz: 27d070bd46df8f03b12c83ec6e715ebba0be10d2f514194ca8de854f648a080d032a942fd5348fea798164050242e4e719d38d61db0ada3cea1216493c30cb8b
7
+ data.tar.gz: aa2d32b30d035ef5af61346c070f4a19d310b765e9c5f0718035251a1c2d6e2f4924640138b988e3185546fa1ad659aafe598eb4455dbae00381b1710c406da5
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ chef exec knife zero bootstrap 10.1.0.12 --node-name server-api-local --overwrite --ssh-user mmx --ssh-password Galactic1 --sudo --use-sudo-password 2>&1
@@ -0,0 +1,60 @@
1
+ base_dir = File.dirname(__FILE__)
2
+
3
+ #puts "dir=#{base_dir}"
4
+
5
+ #
6
+ require 'chef/provisioning'
7
+
8
+ #
9
+ server_name = ENV['SERVER_NAME']
10
+ #puts "server: #{server_name}"
11
+ #puts "node: #{node['docker'].inspect}"
12
+ #exit
13
+
14
+
15
+ # settings
16
+ docker_options = {
17
+ base_image: node['build']['base_image'],
18
+ #base_image: 'nginx:1.10',
19
+ privileged: true,
20
+ command: node['docker']['command'] || '',
21
+ #command: "nginx -g 'daemon off;'",
22
+ #command: "",
23
+
24
+ }
25
+
26
+ #puts "image = #{settings.image_name}"
27
+ #puts "opt = #{docker_options}"
28
+ #exit
29
+
30
+
31
+
32
+
33
+
34
+ ### docker image
35
+ with_driver 'docker'
36
+ machine_image node['base']['image_name'] 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
+
@@ -0,0 +1,13 @@
1
+ base_dir = File.dirname(__FILE__)
2
+
3
+ #
4
+ require 'chef/provisioning'
5
+
6
+ #
7
+ server_name = ENV['SERVER_NAME']
8
+
9
+ #
10
+ with_driver 'docker'
11
+ machine node['base']['container_name'] do
12
+ action :destroy
13
+ end
@@ -0,0 +1,29 @@
1
+ base_dir = File.dirname(__FILE__)
2
+
3
+ #
4
+ require 'chef/provisioning'
5
+
6
+ #
7
+ server_name = ENV['SERVER_NAME']
8
+
9
+
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
+
24
+ ### docker image
25
+ with_driver 'docker'
26
+ machine_image node['base']['image_name'] do
27
+ action :destroy
28
+ end
29
+
@@ -0,0 +1,16 @@
1
+ base_dir = File.dirname(__FILE__)
2
+
3
+ # settings
4
+ require_relative 'lib/settings'
5
+ #
6
+ server_name = ENV['SERVER_NAME']
7
+ settings = Settings.load_settings_for_server(server_name)
8
+
9
+ #
10
+ include_recipe 'docker'
11
+
12
+ docker_exec 'touch_it' do
13
+ container settings.container_name
14
+ command ['touch', '/tmp/2.txt']
15
+ end
16
+
@@ -0,0 +1,64 @@
1
+ base_dir = File.dirname(__FILE__)
2
+
3
+ #
4
+ require 'chef/provisioning'
5
+
6
+ #
7
+ server_name = ENV['SERVER_NAME']
8
+
9
+ # settings
10
+ docker_options = {
11
+ base_image: node['base']['image_name'],
12
+ privileged: true,
13
+ command: node['docker']['command'] || '',
14
+ ports: node['docker']['ports'].map{|d| "#{d[0]}:#{d[1]}"},
15
+ volumes: node['docker']['volumes'].map{|d| "#{d[0]}:#{d[1]}"},
16
+ links: node['docker']['links'].map{|d| "#{d[0]}:#{d[1]}"},
17
+
18
+ }
19
+
20
+ # more options
21
+ docker_options['hostname'] = node['docker']['hostname'] if node['docker']['hostname']
22
+
23
+
24
+ #puts "opt = #{docker_options}"
25
+ #puts "volumes = #{node['docker']['volumes']}"
26
+ #exit
27
+
28
+ # init volumes
29
+ node['docker']['volumes'].each do |d|
30
+ directory "#{d[0]}" do
31
+ recursive true
32
+
33
+ action :create
34
+
35
+ mode '0775'
36
+ #owner 'root'
37
+ #group 'root'
38
+ end
39
+ end
40
+
41
+
42
+
43
+ ### docker container
44
+ with_driver 'docker'
45
+ machine node['base']['container_name'] do
46
+ #tag '0.1'
47
+
48
+ recipe "#{server_name}::install"
49
+
50
+ # attributes
51
+ #node.keys.each do |k|
52
+ # attribute k, node[k]
53
+ #end
54
+
55
+ # attributes
56
+ node['attributes'].keys.each do |k|
57
+ attribute k, node['attributes'][k]
58
+ end
59
+
60
+
61
+ machine_options docker_options: docker_options
62
+
63
+ end
64
+
@@ -0,0 +1,42 @@
1
+ {
2
+ "base":{
3
+ "dir_servers": "/disk2/servers",
4
+ "dir_server": "/disk2/servers/server-api",
5
+ "user": "gex",
6
+ "password": "Galactic1"
7
+ },
8
+ "dir_data": "/disk2/data",
9
+ "git_repo": "git@dev.gex:mmx/my-servers.git",
10
+ "api":{
11
+ "host": "devapi.gex",
12
+ "ip": "51.1.0.50"
13
+ },
14
+ "redis":{
15
+ "docker":{
16
+ "name": "api-redis",
17
+ "command": "redis-server",
18
+ "ports": ["6379:6379"],
19
+ "base_image": "redis",
20
+ "base_image_tag": "3.2.3"
21
+ },
22
+ "attributes":{
23
+
24
+ }
25
+
26
+ },
27
+ "elasticsearch":{
28
+ "docker":{
29
+ "name": "api-elasticsearch",
30
+ "command": "elasticsearch",
31
+ "entrypoint": "/docker-entrypoint.sh",
32
+ "ports": ["9200:9200", "9300:9300"],
33
+ "base_image": "elasticsearch",
34
+ "base_image_tag": "2.3.5"
35
+ },
36
+ "attributes":{
37
+
38
+ }
39
+
40
+ }
41
+
42
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "run_list": [
3
+ "recipe[server-api::install_container_service]"
4
+ ]
5
+ }
@@ -0,0 +1,14 @@
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
+ #puts "ss = #{settings.attributes}"
10
+ #puts "container name = #{settings.container_name}"
11
+
12
+
13
+ # create systemd service
14
+ include_recipe 'server-api::install_container_service'
@@ -1,3 +1,3 @@
1
1
  module DockerBuilder
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
data/readme.md CHANGED
@@ -136,7 +136,22 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
136
136
 
137
137
 
138
138
 
139
- # Settings
139
+ # Configuration
140
+
141
+ * edit config.rb in your root folder
142
+
143
+ You can put all settings in this config.rb file and/or use config.rb file in each server's folder.
144
+
145
+ Config files:
146
+ ```
147
+ /path/to/project/config.rb
148
+ /path/to/project/servers/server1/config.rb
149
+ /path/to/project/servers/server2/config.rb
150
+ ```
151
+
152
+
153
+ ## config.rb
154
+
140
155
 
141
156
  * CHEF_COOKBOOKS - list of paths to chef cookbooks
142
157
 
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.6
4
+ version: 0.1.7
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-11-22 00:00:00.000000000 Z
11
+ date: 2016-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -109,8 +109,17 @@ files:
109
109
  - install_local.sh
110
110
  - lib/docker_builder.rb
111
111
  - lib/docker_builder/chef/.chef/knife.rb
112
+ - lib/docker_builder/chef/bootstrap_local.sh
112
113
  - lib/docker_builder/chef/chef_build_image.copy0.rb
114
+ - lib/docker_builder/chef/chef_build_image.rb
115
+ - lib/docker_builder/chef/chef_destroy_container.rb
113
116
  - lib/docker_builder/chef/chef_destroy_image.copy0.rb
117
+ - lib/docker_builder/chef/chef_destroy_image.rb
118
+ - lib/docker_builder/chef/chef_exec_container.rb
119
+ - lib/docker_builder/chef/chef_run_container.rb
120
+ - lib/docker_builder/chef/config.json
121
+ - lib/docker_builder/chef/config_run_install_container_service.json
122
+ - lib/docker_builder/chef/install_container_service.rb
114
123
  - lib/docker_builder/cli.rb
115
124
  - lib/docker_builder/config.rb
116
125
  - lib/docker_builder/config/dsl.rb