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.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/CODE_OF_CONDUCT.md +49 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +21 -0
  6. data/bin/console +14 -0
  7. data/bin/setup +8 -0
  8. data/docker-app.gemspec +36 -0
  9. data/exe/docker-app +20 -0
  10. data/lib/docker_app.rb +23 -0
  11. data/lib/docker_app/builder/packer.rb +105 -0
  12. data/lib/docker_app/chef/.chef/knife.rb +118 -0
  13. data/lib/docker_app/chef/chef_build_image.rb +55 -0
  14. data/lib/docker_app/chef/chef_destroy_container.rb +13 -0
  15. data/lib/docker_app/chef/chef_destroy_image.rb +17 -0
  16. data/lib/docker_app/chef/chef_exec_container.rb +16 -0
  17. data/lib/docker_app/chef/chef_run_container.rb +64 -0
  18. data/lib/docker_app/chef/install_container_service.rb +14 -0
  19. data/lib/docker_app/cli.rb +502 -0
  20. data/lib/docker_app/command.rb +16 -0
  21. data/lib/docker_app/config.rb +249 -0
  22. data/lib/docker_app/config/dsl.rb +64 -0
  23. data/lib/docker_app/config/helpers.rb +99 -0
  24. data/lib/docker_app/manager_container.rb +376 -0
  25. data/lib/docker_app/manager_image.rb +119 -0
  26. data/lib/docker_app/manager_swarm.rb +66 -0
  27. data/lib/docker_app/provisioner/base.rb +179 -0
  28. data/lib/docker_app/provisioner/chef.rb +93 -0
  29. data/lib/docker_app/server_settings.rb +361 -0
  30. data/lib/docker_app/version.rb +3 -0
  31. data/lib/templates/example-chef/.chef/knife.rb +5 -0
  32. data/lib/templates/example-chef/config.rb.erb +18 -0
  33. data/lib/templates/example-chef/servers/server1/.chef/knife.rb +8 -0
  34. data/lib/templates/example-chef/servers/server1/config.rb.erb +54 -0
  35. data/lib/templates/example-chef/servers/server1/cookbooks/server1/README.md +1 -0
  36. data/lib/templates/example-chef/servers/server1/cookbooks/server1/metadata.rb.erb +8 -0
  37. data/lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/build.rb +10 -0
  38. data/lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/install.rb +36 -0
  39. data/lib/templates/example-chef/servers/server1/cookbooks/server1/recipes/install_host.rb +9 -0
  40. data/lib/templates/example-chef/servers/server1/cookbooks/server1/templates/index.html.erb +5 -0
  41. data/lib/templates/example-chef/servers/server1/cookbooks/server1/templates/nginx-sites/default.conf.erb +45 -0
  42. data/readme.md +853 -0
  43. data/readme_developers.md +54 -0
  44. 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: []