docker-app 0.2.1

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