docker-app 0.2.1
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 +7 -0
- data/.gitignore +11 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/docker-app.gemspec +36 -0
- data/exe/docker-app +20 -0
- data/lib/docker_app.rb +23 -0
- data/lib/docker_app/builder/packer.rb +105 -0
- data/lib/docker_app/chef/.chef/knife.rb +118 -0
- data/lib/docker_app/chef/chef_build_image.rb +55 -0
- data/lib/docker_app/chef/chef_destroy_container.rb +13 -0
- data/lib/docker_app/chef/chef_destroy_image.rb +17 -0
- data/lib/docker_app/chef/chef_exec_container.rb +16 -0
- data/lib/docker_app/chef/chef_run_container.rb +64 -0
- data/lib/docker_app/chef/install_container_service.rb +14 -0
- data/lib/docker_app/cli.rb +502 -0
- data/lib/docker_app/command.rb +16 -0
- data/lib/docker_app/config.rb +249 -0
- data/lib/docker_app/config/dsl.rb +64 -0
- data/lib/docker_app/config/helpers.rb +99 -0
- data/lib/docker_app/manager_container.rb +376 -0
- data/lib/docker_app/manager_image.rb +119 -0
- data/lib/docker_app/manager_swarm.rb +66 -0
- data/lib/docker_app/provisioner/base.rb +179 -0
- data/lib/docker_app/provisioner/chef.rb +93 -0
- data/lib/docker_app/server_settings.rb +361 -0
- data/lib/docker_app/version.rb +3 -0
- data/lib/templates/example-chef/.chef/knife.rb +5 -0
- data/lib/templates/example-chef/config.rb.erb +18 -0
- data/lib/templates/example-chef/servers/server1/.chef/knife.rb +8 -0
- data/lib/templates/example-chef/servers/server1/config.rb.erb +54 -0
- data/lib/templates/example-chef/servers/server1/cookbooks/server1/README.md +1 -0
- data/lib/templates/example-chef/servers/server1/cookbooks/server1/metadata.rb.erb +8 -0
- data/lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/build.rb +10 -0
- data/lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/install.rb +36 -0
- data/lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/install_host.rb +9 -0
- data/lib/templates/example-chef/servers/server1/cookbooks/server1/templates/index.html.erb +5 -0
- data/lib/templates/example-chef/servers/server1/cookbooks/server1/templates/nginx-sites/default.conf.erb +45 -0
- data/readme.md +853 -0
- data/readme_developers.md +54 -0
- metadata +129 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
# For developers
|
2
|
+
|
3
|
+
|
4
|
+
# Build image
|
5
|
+
|
6
|
+
|
7
|
+
Build Docker image with Chef provisioning:
|
8
|
+
|
9
|
+
* go to folder where servers are located
|
10
|
+
|
11
|
+
* run to build one server
|
12
|
+
|
13
|
+
```
|
14
|
+
# run from folder where servers are located
|
15
|
+
docker-app build -s nginx
|
16
|
+
|
17
|
+
# or run from any folder
|
18
|
+
docker-app build -s nginx --root-path /path/to/example-nginx
|
19
|
+
|
20
|
+
```
|
21
|
+
|
22
|
+
|
23
|
+
* it generates temp json file with node attributes
|
24
|
+
examples/example-nginx/temp/nginx.json
|
25
|
+
|
26
|
+
* runs chef-client to build image
|
27
|
+
|
28
|
+
```
|
29
|
+
SERVER_NAME=nginx chef exec chef-client -z -N nginx -j /mnt/data/projects/mmx/docker-app/examples/example-nginx/temp/nginx.json lib/docker_app/chef/chef_build_image.rb
|
30
|
+
```
|
31
|
+
|
32
|
+
* chef-client takes json file and recipe and create new Docker image and run recipe 'servers/nginx/cookbooks/recipes/build.rb'
|
33
|
+
|
34
|
+
* a new Docker image named '<<prefix>>nginx' is created
|
35
|
+
i.e. example-nginx
|
36
|
+
|
37
|
+
docker images
|
38
|
+
|
39
|
+
|
40
|
+
* run test container
|
41
|
+
|
42
|
+
docker run -ti --rm example-nginx /bin/bash
|
43
|
+
|
44
|
+
* in the interactive terminal inside the container:
|
45
|
+
check we have resources from build.rb
|
46
|
+
|
47
|
+
* exit container
|
48
|
+
|
49
|
+
* container will be automatically destroyed
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
# Run container
|
54
|
+
|
metadata
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: docker-app
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Max Ivak
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-07-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.12'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.12'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: thor
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Install Docker containers with Chef, Dockerfile and other tools
|
56
|
+
email:
|
57
|
+
- max.ivak@gmail.com
|
58
|
+
executables:
|
59
|
+
- docker-app
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- ".gitignore"
|
64
|
+
- CODE_OF_CONDUCT.md
|
65
|
+
- Gemfile
|
66
|
+
- LICENSE.txt
|
67
|
+
- bin/console
|
68
|
+
- bin/setup
|
69
|
+
- docker-app.gemspec
|
70
|
+
- exe/docker-app
|
71
|
+
- lib/docker_app.rb
|
72
|
+
- lib/docker_app/builder/packer.rb
|
73
|
+
- lib/docker_app/chef/.chef/knife.rb
|
74
|
+
- lib/docker_app/chef/chef_build_image.rb
|
75
|
+
- lib/docker_app/chef/chef_destroy_container.rb
|
76
|
+
- lib/docker_app/chef/chef_destroy_image.rb
|
77
|
+
- lib/docker_app/chef/chef_exec_container.rb
|
78
|
+
- lib/docker_app/chef/chef_run_container.rb
|
79
|
+
- lib/docker_app/chef/install_container_service.rb
|
80
|
+
- lib/docker_app/cli.rb
|
81
|
+
- lib/docker_app/command.rb
|
82
|
+
- lib/docker_app/config.rb
|
83
|
+
- lib/docker_app/config/dsl.rb
|
84
|
+
- lib/docker_app/config/helpers.rb
|
85
|
+
- lib/docker_app/manager_container.rb
|
86
|
+
- lib/docker_app/manager_image.rb
|
87
|
+
- lib/docker_app/manager_swarm.rb
|
88
|
+
- lib/docker_app/provisioner/base.rb
|
89
|
+
- lib/docker_app/provisioner/chef.rb
|
90
|
+
- lib/docker_app/server_settings.rb
|
91
|
+
- lib/docker_app/version.rb
|
92
|
+
- lib/templates/example-chef/.chef/knife.rb
|
93
|
+
- lib/templates/example-chef/config.rb.erb
|
94
|
+
- lib/templates/example-chef/servers/server1/.chef/knife.rb
|
95
|
+
- lib/templates/example-chef/servers/server1/config.rb.erb
|
96
|
+
- lib/templates/example-chef/servers/server1/cookbooks/server1/README.md
|
97
|
+
- lib/templates/example-chef/servers/server1/cookbooks/server1/metadata.rb.erb
|
98
|
+
- lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/build.rb
|
99
|
+
- lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/install.rb
|
100
|
+
- lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/install_host.rb
|
101
|
+
- lib/templates/example-chef/servers/server1/cookbooks/server1/templates/index.html.erb
|
102
|
+
- lib/templates/example-chef/servers/server1/cookbooks/server1/templates/nginx-sites/default.conf.erb
|
103
|
+
- readme.md
|
104
|
+
- readme_developers.md
|
105
|
+
homepage: https://github.com/maxivak/docker-app
|
106
|
+
licenses:
|
107
|
+
- MIT
|
108
|
+
metadata: {}
|
109
|
+
post_install_message:
|
110
|
+
rdoc_options: []
|
111
|
+
require_paths:
|
112
|
+
- lib
|
113
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
|
+
requirements: []
|
124
|
+
rubyforge_project:
|
125
|
+
rubygems_version: 2.6.12
|
126
|
+
signing_key:
|
127
|
+
specification_version: 4
|
128
|
+
summary: Docker application installer
|
129
|
+
test_files: []
|