indocker 0.0.6 → 0.1.4

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 (183) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +10 -2
  3. data/.rspec +2 -0
  4. data/.travis.yml +7 -0
  5. data/Gemfile +5 -2
  6. data/Gemfile.lock +19 -49
  7. data/LICENSE.txt +17 -18
  8. data/README.md +20 -1
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/example/indocker/bin/deploy +120 -0
  13. data/example/indocker/bin/remote/compile +72 -0
  14. data/example/indocker/bin/remote/run +66 -0
  15. data/example/indocker/bin/utils/configurations.rb +3 -0
  16. data/example/indocker/bounded_contexts/shared/ruby/Dockerfile +10 -0
  17. data/example/indocker/bounded_contexts/shared/ruby/container.rb +5 -0
  18. data/example/indocker/bounded_contexts/shared/ruby/image.rb +3 -0
  19. data/example/indocker/configurations/dev.rb +9 -0
  20. data/example/indocker/infrastructure/build_servers.rb +8 -0
  21. data/example/indocker/infrastructure/networks.rb +1 -0
  22. data/example/indocker/infrastructure/registries.rb +3 -0
  23. data/example/indocker/infrastructure/servers.rb +8 -0
  24. data/example/indocker/setup.rb +24 -0
  25. data/indocker.gemspec +27 -25
  26. data/lib/indocker.rb +437 -130
  27. data/lib/indocker/artifacts/git.rb +25 -0
  28. data/lib/indocker/build_context.rb +87 -0
  29. data/lib/indocker/build_context_helper.rb +109 -0
  30. data/lib/indocker/build_context_pool.rb +36 -0
  31. data/lib/indocker/build_server.rb +2 -0
  32. data/lib/indocker/colored_string.rb +33 -0
  33. data/lib/indocker/concerns/inspectable.rb +12 -0
  34. data/lib/indocker/configuration_deployer.rb +525 -0
  35. data/lib/indocker/configurations/configuration.rb +122 -0
  36. data/lib/indocker/configurations/configuration_builder.rb +250 -0
  37. data/lib/indocker/configurations/formatters/stdout.rb +36 -0
  38. data/lib/indocker/container_deployer.rb +73 -0
  39. data/lib/indocker/container_helper.rb +13 -0
  40. data/lib/indocker/container_runner.rb +23 -0
  41. data/lib/indocker/containers/container.rb +118 -0
  42. data/lib/indocker/containers/container_builder.rb +186 -0
  43. data/lib/indocker/containers/restart_policy.rb +36 -0
  44. data/lib/indocker/context_args.rb +43 -0
  45. data/lib/indocker/crontab_redeploy_rules_builder.rb +54 -0
  46. data/lib/indocker/deploy_context.rb +126 -0
  47. data/lib/indocker/deployment_checker.rb +121 -0
  48. data/lib/indocker/deployment_progress.rb +495 -0
  49. data/lib/indocker/docker.rb +87 -0
  50. data/lib/indocker/docker_run_args.rb +183 -0
  51. data/lib/indocker/env_file_helper.rb +13 -0
  52. data/lib/indocker/env_files/local.rb +8 -0
  53. data/lib/indocker/env_files/remote.rb +8 -0
  54. data/lib/indocker/hash_merger.rb +9 -0
  55. data/lib/indocker/images/image.rb +86 -0
  56. data/lib/indocker/images/image_builder.rb +98 -0
  57. data/lib/indocker/images/image_compiler.rb +68 -0
  58. data/lib/indocker/images/template_compiler.rb +15 -0
  59. data/lib/indocker/images/templates_compiler.rb +28 -0
  60. data/lib/indocker/images_compiler.rb +38 -0
  61. data/lib/indocker/indocker_helper.rb +9 -0
  62. data/lib/indocker/network.rb +12 -0
  63. data/lib/indocker/network_helper.rb +7 -0
  64. data/lib/indocker/registries/abstract.rb +17 -0
  65. data/lib/indocker/registries/local.rb +5 -0
  66. data/lib/indocker/registries/remote.rb +12 -0
  67. data/lib/indocker/repositories/abstract.rb +25 -0
  68. data/lib/indocker/repositories/clonner.rb +17 -0
  69. data/lib/indocker/repositories/git.rb +24 -0
  70. data/lib/indocker/repositories/local.rb +20 -0
  71. data/lib/indocker/repositories/no_sync.rb +20 -0
  72. data/lib/indocker/rsync.rb +52 -0
  73. data/lib/indocker/server.rb +20 -0
  74. data/lib/indocker/server_pool.rb +30 -0
  75. data/lib/indocker/shell.rb +60 -0
  76. data/lib/indocker/ssh_result_logger.rb +18 -0
  77. data/lib/indocker/ssh_session.rb +92 -0
  78. data/lib/indocker/version.rb +1 -1
  79. data/lib/indocker/volume_helper.rb +7 -0
  80. data/lib/indocker/volumes/external.rb +8 -0
  81. data/lib/indocker/volumes/local.rb +9 -0
  82. data/lib/indocker/volumes/repository.rb +9 -0
  83. metadata +107 -222
  84. data/bin/indocker +0 -9
  85. data/lib/indocker/application_initializer.rb +0 -19
  86. data/lib/indocker/cli.rb +0 -27
  87. data/lib/indocker/configs/config.rb +0 -147
  88. data/lib/indocker/configs/config_factory.rb +0 -37
  89. data/lib/indocker/configs/config_initializer.rb +0 -9
  90. data/lib/indocker/configs/locator.rb +0 -23
  91. data/lib/indocker/container/container_builder.rb +0 -29
  92. data/lib/indocker/container/container_directives_runner.rb +0 -54
  93. data/lib/indocker/container/container_dsl.rb +0 -83
  94. data/lib/indocker/container/container_evaluator.rb +0 -13
  95. data/lib/indocker/container/container_inspector.rb +0 -26
  96. data/lib/indocker/container/container_manager.rb +0 -122
  97. data/lib/indocker/container/container_metadata.rb +0 -112
  98. data/lib/indocker/container/container_metadata_factory.rb +0 -30
  99. data/lib/indocker/container/container_metadata_repository.rb +0 -27
  100. data/lib/indocker/directives/base.rb +0 -17
  101. data/lib/indocker/directives/container_directives/base.rb +0 -23
  102. data/lib/indocker/directives/container_directives/cmd.rb +0 -7
  103. data/lib/indocker/directives/container_directives/depends_on.rb +0 -7
  104. data/lib/indocker/directives/container_directives/env.rb +0 -7
  105. data/lib/indocker/directives/container_directives/env_file.rb +0 -7
  106. data/lib/indocker/directives/container_directives/expose.rb +0 -7
  107. data/lib/indocker/directives/container_directives/from.rb +0 -14
  108. data/lib/indocker/directives/container_directives/network.rb +0 -12
  109. data/lib/indocker/directives/container_directives/ports.rb +0 -15
  110. data/lib/indocker/directives/container_directives/ready.rb +0 -16
  111. data/lib/indocker/directives/container_directives/volume.rb +0 -23
  112. data/lib/indocker/directives/image_directives/base.rb +0 -27
  113. data/lib/indocker/directives/image_directives/cmd.rb +0 -19
  114. data/lib/indocker/directives/image_directives/copy.rb +0 -32
  115. data/lib/indocker/directives/image_directives/docker_cp.rb +0 -20
  116. data/lib/indocker/directives/image_directives/entrypoint.rb +0 -19
  117. data/lib/indocker/directives/image_directives/env.rb +0 -9
  118. data/lib/indocker/directives/image_directives/env_file.rb +0 -19
  119. data/lib/indocker/directives/image_directives/expose.rb +0 -9
  120. data/lib/indocker/directives/image_directives/from.rb +0 -36
  121. data/lib/indocker/directives/image_directives/registry.rb +0 -30
  122. data/lib/indocker/directives/image_directives/run.rb +0 -17
  123. data/lib/indocker/directives/image_directives/workdir.rb +0 -9
  124. data/lib/indocker/directives/partial.rb +0 -21
  125. data/lib/indocker/docker_api/container_config.rb +0 -121
  126. data/lib/indocker/docker_api/docker_api.rb +0 -207
  127. data/lib/indocker/dsl_context.rb +0 -21
  128. data/lib/indocker/envs/env_metadata.rb +0 -39
  129. data/lib/indocker/envs/loader.rb +0 -19
  130. data/lib/indocker/errors.rb +0 -21
  131. data/lib/indocker/git/git_api.rb +0 -32
  132. data/lib/indocker/git/git_helper.rb +0 -34
  133. data/lib/indocker/git/git_service.rb +0 -21
  134. data/lib/indocker/handlers/container_run.rb +0 -20
  135. data/lib/indocker/handlers/container_stop.rb +0 -17
  136. data/lib/indocker/handlers/performable.rb +0 -22
  137. data/lib/indocker/image/image_builder.rb +0 -54
  138. data/lib/indocker/image/image_dependencies_manager.rb +0 -47
  139. data/lib/indocker/image/image_directives_runner.rb +0 -99
  140. data/lib/indocker/image/image_dockerfile_builder.rb +0 -24
  141. data/lib/indocker/image/image_dsl.rb +0 -89
  142. data/lib/indocker/image/image_evaluator.rb +0 -21
  143. data/lib/indocker/image/image_helper.rb +0 -9
  144. data/lib/indocker/image/image_metadata.rb +0 -50
  145. data/lib/indocker/image/image_metadata_factory.rb +0 -31
  146. data/lib/indocker/image/image_metadata_repository.rb +0 -29
  147. data/lib/indocker/networks/network_metadata.rb +0 -9
  148. data/lib/indocker/networks/network_metadata_factory.rb +0 -9
  149. data/lib/indocker/networks/network_metadata_repository.rb +0 -34
  150. data/lib/indocker/partial/partial_metadata.rb +0 -8
  151. data/lib/indocker/partial/partial_metadata_repository.rb +0 -26
  152. data/lib/indocker/registry/registry_api.rb +0 -46
  153. data/lib/indocker/registry/registry_helper.rb +0 -20
  154. data/lib/indocker/registry/registry_service.rb +0 -28
  155. data/lib/indocker/utils/ioc_container.rb +0 -17
  156. data/lib/indocker/utils/logger.rb +0 -62
  157. data/lib/indocker/utils/logger_factory.rb +0 -13
  158. data/lib/indocker/utils/registry_authenticator.rb +0 -19
  159. data/lib/indocker/utils/render_namespace.rb +0 -11
  160. data/lib/indocker/utils/render_util.rb +0 -15
  161. data/lib/indocker/utils/string_utils.rb +0 -11
  162. data/lib/indocker/utils/tar_helper.rb +0 -40
  163. data/lib/indocker/utils/test_logger_factory.rb +0 -9
  164. data/lib/indocker/volumes/volume_metadata.rb +0 -9
  165. data/lib/indocker/volumes/volume_metadata_factory.rb +0 -9
  166. data/lib/indocker/volumes/volume_metadata_repository.rb +0 -34
  167. data/spec/example/.indocker/config.rb +0 -30
  168. data/spec/example/.indocker/images_and_containers.rb +0 -25
  169. data/spec/example/assets/index.css +0 -1
  170. data/spec/example/assets/index.js +0 -1
  171. data/spec/fixtures/spec.env +0 -2
  172. data/spec/indocker/configs/config_factory_spec.rb +0 -18
  173. data/spec/indocker/configs/config_spec.rb +0 -88
  174. data/spec/indocker/container/container_builder_spec.rb +0 -67
  175. data/spec/indocker/container/container_manager_spec.rb +0 -278
  176. data/spec/indocker/docker_api/container_config_spec.rb +0 -64
  177. data/spec/indocker/docker_api/docker_api_spec.rb +0 -112
  178. data/spec/indocker/handlers/container_run_spec.rb +0 -60
  179. data/spec/indocker/image/image_builder_spec.rb +0 -153
  180. data/spec/indocker/image/image_directives_runner_spec.rb +0 -141
  181. data/spec/indocker/image/image_dockerfile_builder_spec.rb +0 -25
  182. data/spec/indocker/image/image_evaluator_spec.rb +0 -85
  183. data/spec/spec_helper.rb +0 -68
@@ -1,207 +0,0 @@
1
- require 'docker-api'
2
- require 'io/console'
3
-
4
- Docker.options = { read_timeout: 600, write_timeout: 600, chunk_size: 1 }
5
-
6
- class Indocker::DockerAPI
7
- include SmartIoC::Iocify
8
- include Indocker::ImageHelper
9
-
10
- bean :docker_api
11
-
12
- inject :logger
13
-
14
- def check_docker_installed!
15
- Docker.info
16
- nil
17
- rescue Excon::Error::Socket
18
- raise Indocker::Errors::DockerDoesNotInstalled
19
- end
20
-
21
- def authenticate!(serveraddress:, email:, password:, username:)
22
- params = {
23
- 'serveraddress' => serveraddress,
24
- 'email' => email,
25
- 'password' => password,
26
- 'username' => username
27
- }.delete_if {|_, value| value.to_s.empty?}
28
-
29
- Docker.authenticate!(params)
30
- end
31
-
32
- # Networks
33
-
34
- def create_network(name)
35
- Docker::Network.create(name.to_s).id
36
- end
37
-
38
- def add_container_to_network(network_name:, container_name:)
39
- container_id = get_container_id(container_name.to_s)
40
-
41
- Docker::Network.get(network_name.to_s).connect(container_id.to_s)
42
- end
43
-
44
- def delete_network(name)
45
- Docker::Network.get(name.to_s).remove
46
- end
47
-
48
- def network_exists?(name)
49
- !Docker::Network.get(name.to_s).nil? rescue false
50
- end
51
-
52
- def get_network_id(name)
53
- Docker::Network.get(name.to_s).id
54
- end
55
-
56
- def inspect_network(name)
57
- Docker::Network.get(name.to_s).info
58
- end
59
-
60
- def delete_networks_where(&condition)
61
- Docker::Network.all.select(&condition).map do |network|
62
- network.remove
63
- end
64
- end
65
-
66
- # Images
67
-
68
- def get_image_id(repo, tag: nil)
69
- Docker::Image.get(full_name(repo, tag)).id rescue nil
70
- end
71
-
72
- def image_exists?(repo, tag: nil)
73
- Docker::Image.exist?(full_name(repo, tag))
74
- end
75
-
76
- def delete_image(repo, tag: nil)
77
- Docker::Image.get(full_name(repo, tag)).remove(force: true)
78
- end
79
-
80
- def build_from_dir(repo:, tag:, build_dir:)
81
- image = Docker::Image.build_from_dir(build_dir, { 't' => "#{repo}:#{tag}" }) do |x|
82
- x.split("\r\n").each do |y|
83
- if (log = JSON.parse(y)) && log.has_key?("stream")
84
- yield log["stream"].strip
85
- end
86
- end
87
- end
88
-
89
- image.id
90
- end
91
-
92
- def tag(repo:, tag: nil, new_repo:, new_tag:)
93
- Docker::Image.get(full_name(repo, tag)).tag('repo' => new_repo, 'tag' => new_tag)
94
-
95
- nil
96
- end
97
-
98
- def push(repo:, tag:, push_to_repo:, push_to_tag:)
99
- Docker::Image.get(full_name(repo, tag)).push(nil, repo_tag: full_name(push_to_repo, push_to_tag))
100
-
101
- nil
102
- end
103
-
104
- def pull(opts)
105
- image = Docker::Image.create(opts)
106
-
107
- image.id
108
- end
109
-
110
- def delete_images_where(&condition)
111
- Docker::Image.all.select(&condition).map do |image|
112
- image.remove(force: true)
113
- end
114
- end
115
-
116
- #Volumes
117
-
118
- def create_volume(name)
119
- Docker::Volume.create(name.to_s).id
120
- end
121
-
122
- def get_volume_id(name)
123
- Docker::Volume.get(name.to_s).id
124
- end
125
-
126
- def all_volumes(name)
127
- Docker::Volume.all
128
- end
129
-
130
- def delete_volume(name)
131
- Docker::Volume.get(name.to_s).remove
132
- end
133
-
134
- def volume_exists?(name)
135
- !Docker::Volume.get(name.to_s).nil? rescue false
136
- end
137
-
138
- def inspect_volume(name)
139
- Docker::Volume.get(name.to_s).info
140
- end
141
-
142
- def delete_volumes_where(&condition)
143
- Docker::Volume.all.select(&condition).map do |volume|
144
- volume.remove
145
- end
146
- end
147
-
148
- # Containers
149
-
150
- def inspect_container(name)
151
- Docker::Container.get(name.to_s).info
152
- end
153
-
154
- def get_container_id(name)
155
- Docker::Container.get(name.to_s).id rescue nil
156
- end
157
-
158
- def get_container_image_id(name)
159
- Docker::Container.get(name.to_s).info['Image'] rescue nil
160
- end
161
-
162
- def get_container_state(name)
163
- Docker::Container.get(name.to_s).info["State"]["Status"]
164
- end
165
-
166
- def container_exists?(name)
167
- !Docker::Container.get(name.to_s).nil? rescue false
168
- end
169
-
170
- def start_container(name, attach: false)
171
- container = Docker::Container.get(name.to_s).start!
172
-
173
- if attach
174
- STDIN.raw do |stdin|
175
- container.attach(stdin: stdin, tty: true) do |chunk|
176
- logger << chunk
177
- end
178
- end
179
- end
180
-
181
- container.id
182
- end
183
-
184
- def stop_container(name)
185
- Docker::Container.get(name.to_s).stop rescue nil
186
- end
187
-
188
- def copy_from_container(name:, path:, &block)
189
- Docker::Container.get(name.to_s).copy(path, &block)
190
- end
191
-
192
- # TODO: Add contract
193
- def create_container(container_config)
194
- Docker::Container.create(container_config.to_hash).id
195
- end
196
-
197
- def delete_container(name)
198
- Docker::Container.get(name.to_s).delete(:force => true)
199
- end
200
-
201
- def delete_containers_where(&condition)
202
- Docker::Container.all(all: true).select(&condition).map do |container|
203
- container.stop
204
- container.delete(force: true)
205
- end
206
- end
207
- end
@@ -1,21 +0,0 @@
1
- class Indocker::DSLContext
2
- attr_reader :storage
3
-
4
- def initialize(storage = {})
5
- @storage = storage
6
- end
7
-
8
- def method_missing(method, *args)
9
- super unless @storage.key?(method)
10
-
11
- @storage.fetch(method)
12
- end
13
-
14
- def set_value(key, value)
15
- @storage[key] = value
16
- end
17
-
18
- def +(other)
19
- Indocker::DSLContext.new(@storage.merge(other.storage))
20
- end
21
- end
@@ -1,39 +0,0 @@
1
- module Indocker::Envs
2
- class EnvMetadata
3
- def initialize(variables = {})
4
- @variables = variables
5
- end
6
-
7
- def to_hash
8
- @variables
9
- end
10
-
11
- def to_json
12
- to_hash.to_json
13
- end
14
-
15
- def to_array
16
- to_hash.inject([]) do |all, (k, v)|
17
- all.push "#{k}=#{v}"
18
- end
19
- end
20
-
21
- def to_s
22
- to_array.join(' ')
23
- end
24
-
25
- def set(key:, value:)
26
- overwritten = @variables.has_key?(key) and @variables[key] != value
27
-
28
- @variables[key] = value
29
-
30
- overwritten
31
- end
32
-
33
- def +(other)
34
- combined_hash = to_hash.merge(other.to_hash)
35
-
36
- Indocker::Envs::EnvMetadata.new(combined_hash)
37
- end
38
- end
39
- end
@@ -1,19 +0,0 @@
1
- class Indocker::Envs::Loader
2
- include SmartIoC::Iocify
3
-
4
- bean :envs_loader
5
-
6
- def parse(path)
7
- raise Indocker::Errors::EnvFileDoesNotExist if !File.exists?(path)
8
-
9
- env_metadata = Indocker::Envs::EnvMetadata.new
10
-
11
- File.foreach(path) do |line|
12
- key, value = line.split('=').map(&:strip)
13
-
14
- env_metadata.set(key: key, value: value)
15
- end
16
-
17
- env_metadata
18
- end
19
- end
@@ -1,21 +0,0 @@
1
- module Indocker::Errors
2
- class ImageIsNotDefined < StandardError; end
3
- class ImageIsNotBuilded < StandardError; end
4
- class PartialIsNotDefined < StandardError; end
5
- class ContainerIsNotDefined < StandardError; end
6
- class CircularImageDependency < StandardError; end
7
- class ImageForContainerDoesNotExist < StandardError; end
8
- class DockerDoesNotInstalled < StandardError; end
9
- class ConfigFilesDoesNotFound < StandardError; end
10
- class ConfigOptionTypeMismatch < StandardError; end
11
- class DockerRegistryAuthenticationError < StandardError; end
12
- class EnvFileDoesNotExist < StandardError; end
13
- class ContainerTimeoutError < StandardError; end
14
- class ReservedKeywordUsed < StandardError; end
15
- class VolumeIsNotDefined < StandardError; end
16
-
17
- class ContainerImageAlreadyDefined < StandardError; end
18
- class NetworkAlreadyDefined < StandardError; end
19
-
20
- class InvalidParams < StandardError; end
21
- end
@@ -1,32 +0,0 @@
1
- require 'git'
2
-
3
- class Indocker::Git::GitAPI
4
- include SmartIoC::Iocify
5
-
6
- bean :git_api
7
-
8
- DEFAULT_REMOTE = 'origin'
9
-
10
- def get_remote_from_directory(dir)
11
- Git.open(dir).remote(DEFAULT_REMOTE).url
12
- rescue ArgumentError
13
- nil
14
- end
15
-
16
- def fetch(dir)
17
- Git.open(dir).pull
18
- end
19
-
20
- def clone(repository:, dir:)
21
- dir = File.expand_path(dir)
22
-
23
- git_path = File.dirname(dir)
24
- app_name = File.basename(dir)
25
-
26
- Git.clone(repository, app_name, path: git_path)
27
- end
28
-
29
- def checkout(revision:, dir:)
30
- Git.open(dir).checkout(revision)
31
- end
32
- end
@@ -1,34 +0,0 @@
1
- module Indocker::Git
2
- class GitHelper
3
- include SmartIoC::Iocify
4
-
5
- bean :git_helper
6
-
7
- inject :config
8
- inject :git_service
9
-
10
- def method_missing(method, *args)
11
- git_config = config.git.send(method)
12
- git_cache_dir = config.git.cache_dir.join(method.to_s)
13
-
14
- return git_cache_dir if updated?(git_config.repository)
15
-
16
- git_service.update(
17
- repository: git_config.repository,
18
- revision: git_config.branch || git_config.tag,
19
- workdir: git_cache_dir
20
- )
21
- git_cache.push(git_config.repository)
22
-
23
- Pathname.new(git_cache_dir)
24
- end
25
-
26
- def git_cache
27
- @git_cache ||= []
28
- end
29
-
30
- def updated?(url)
31
- git_cache.include?(url)
32
- end
33
- end
34
- end
@@ -1,21 +0,0 @@
1
- class Indocker::Git::GitService
2
- include SmartIoC::Iocify
3
-
4
- bean :git_service
5
-
6
- inject :git_api
7
-
8
- def update(repository:, revision:, workdir:)
9
- workdir_repository = git_api.get_remote_from_directory(workdir)
10
-
11
- if workdir_repository == repository
12
- git_api.fetch(workdir)
13
- git_api.checkout(revision: revision, dir: workdir)
14
- else
15
- FileUtils.rm_rf(workdir)
16
-
17
- git_api.clone(repository: repository, dir: workdir)
18
- git_api.checkout(revision: revision, dir: workdir)
19
- end
20
- end
21
- end
@@ -1,20 +0,0 @@
1
- class Indocker::Handlers::ContainerRun
2
- include SmartIoC::Iocify
3
-
4
- bean :run_container_handler
5
-
6
- inject :container_manager
7
- inject :container_metadata_repository
8
- inject :image_builder
9
-
10
- include Indocker::Handlers::Performable
11
-
12
- def handle(name:, current_path:)
13
- name = name.to_s
14
-
15
- container_metadata = container_metadata_repository.get_by_name(name)
16
- image_builder.build(container_metadata.repo, tag: container_metadata.tag)
17
-
18
- container_manager.run(name)
19
- end
20
- end
@@ -1,17 +0,0 @@
1
- class Indocker::Handlers::ContainerStop
2
- include SmartIoC::Iocify
3
-
4
- bean :stop_container_handler
5
-
6
- inject :container_manager
7
- inject :container_metadata_repository
8
- inject :image_builder
9
-
10
- include Indocker::Handlers::Performable
11
-
12
- def handle(name:, current_path:)
13
- name = name.to_s
14
-
15
- container_manager.stop(name)
16
- end
17
- end
@@ -1,22 +0,0 @@
1
- module Indocker
2
- module Handlers
3
- module Performable
4
- def self.included(klass)
5
- klass.inject(:logger)
6
- klass.inject(:application_initializer)
7
- end
8
-
9
- def perform(options)
10
- env = options.delete(:env)
11
-
12
- application_initializer.init_app(options[:current_path], env: env)
13
-
14
- self.method(:handle).call(options)
15
- rescue Docker::Error::ClientError => e
16
- logger.error e.message
17
- rescue Docker::Error::NotFoundError => e
18
- logger.error(e.message)
19
- end
20
- end
21
- end
22
- end