docker-builder 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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