indocker 0.0.6 → 0.1.0

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 (170) 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 +17 -49
  7. data/LICENSE.txt +17 -18
  8. data/README.md +33 -1
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/indocker.gemspec +26 -25
  13. data/lib/indocker.rb +429 -130
  14. data/lib/indocker/artifacts/git.rb +25 -0
  15. data/lib/indocker/build_context.rb +87 -0
  16. data/lib/indocker/build_context_helper.rb +109 -0
  17. data/lib/indocker/build_context_pool.rb +36 -0
  18. data/lib/indocker/build_server.rb +2 -0
  19. data/lib/indocker/colored_string.rb +33 -0
  20. data/lib/indocker/concerns/inspectable.rb +12 -0
  21. data/lib/indocker/configuration_deployer.rb +525 -0
  22. data/lib/indocker/configurations/configuration.rb +122 -0
  23. data/lib/indocker/configurations/configuration_builder.rb +250 -0
  24. data/lib/indocker/configurations/formatters/stdout.rb +36 -0
  25. data/lib/indocker/container_deployer.rb +73 -0
  26. data/lib/indocker/container_helper.rb +13 -0
  27. data/lib/indocker/container_runner.rb +23 -0
  28. data/lib/indocker/containers/container.rb +118 -0
  29. data/lib/indocker/containers/container_builder.rb +186 -0
  30. data/lib/indocker/containers/restart_policy.rb +36 -0
  31. data/lib/indocker/context_args.rb +44 -0
  32. data/lib/indocker/crontab_redeploy_rules_builder.rb +54 -0
  33. data/lib/indocker/deploy_context.rb +126 -0
  34. data/lib/indocker/deployment_checker.rb +121 -0
  35. data/lib/indocker/deployment_progress.rb +495 -0
  36. data/lib/indocker/docker.rb +87 -0
  37. data/lib/indocker/docker_run_args.rb +175 -0
  38. data/lib/indocker/env_file_helper.rb +13 -0
  39. data/lib/indocker/env_files/local.rb +8 -0
  40. data/lib/indocker/env_files/remote.rb +8 -0
  41. data/lib/indocker/hash_merger.rb +9 -0
  42. data/lib/indocker/images/image.rb +86 -0
  43. data/lib/indocker/images/image_builder.rb +98 -0
  44. data/lib/indocker/images/image_compiler.rb +68 -0
  45. data/lib/indocker/images/template_compiler.rb +15 -0
  46. data/lib/indocker/images/templates_compiler.rb +28 -0
  47. data/lib/indocker/images_compiler.rb +38 -0
  48. data/lib/indocker/indocker_helper.rb +9 -0
  49. data/lib/indocker/network.rb +12 -0
  50. data/lib/indocker/network_helper.rb +7 -0
  51. data/lib/indocker/registries/abstract.rb +17 -0
  52. data/lib/indocker/registries/local.rb +5 -0
  53. data/lib/indocker/registries/remote.rb +12 -0
  54. data/lib/indocker/repositories/abstract.rb +25 -0
  55. data/lib/indocker/repositories/clonner.rb +15 -0
  56. data/lib/indocker/repositories/git.rb +21 -0
  57. data/lib/indocker/repositories/local.rb +20 -0
  58. data/lib/indocker/repositories/no_sync.rb +20 -0
  59. data/lib/indocker/rsync.rb +52 -0
  60. data/lib/indocker/server.rb +20 -0
  61. data/lib/indocker/server_pool.rb +30 -0
  62. data/lib/indocker/shell.rb +60 -0
  63. data/lib/indocker/ssh_result_logger.rb +18 -0
  64. data/lib/indocker/ssh_session.rb +92 -0
  65. data/lib/indocker/version.rb +1 -1
  66. data/lib/indocker/volume_helper.rb +7 -0
  67. data/lib/indocker/volumes/external.rb +8 -0
  68. data/lib/indocker/volumes/local.rb +9 -0
  69. data/lib/indocker/volumes/repository.rb +9 -0
  70. metadata +88 -230
  71. data/bin/indocker +0 -9
  72. data/lib/indocker/application_initializer.rb +0 -19
  73. data/lib/indocker/cli.rb +0 -27
  74. data/lib/indocker/configs/config.rb +0 -147
  75. data/lib/indocker/configs/config_factory.rb +0 -37
  76. data/lib/indocker/configs/config_initializer.rb +0 -9
  77. data/lib/indocker/configs/locator.rb +0 -23
  78. data/lib/indocker/container/container_builder.rb +0 -29
  79. data/lib/indocker/container/container_directives_runner.rb +0 -54
  80. data/lib/indocker/container/container_dsl.rb +0 -83
  81. data/lib/indocker/container/container_evaluator.rb +0 -13
  82. data/lib/indocker/container/container_inspector.rb +0 -26
  83. data/lib/indocker/container/container_manager.rb +0 -122
  84. data/lib/indocker/container/container_metadata.rb +0 -112
  85. data/lib/indocker/container/container_metadata_factory.rb +0 -30
  86. data/lib/indocker/container/container_metadata_repository.rb +0 -27
  87. data/lib/indocker/directives/base.rb +0 -17
  88. data/lib/indocker/directives/container_directives/base.rb +0 -23
  89. data/lib/indocker/directives/container_directives/cmd.rb +0 -7
  90. data/lib/indocker/directives/container_directives/depends_on.rb +0 -7
  91. data/lib/indocker/directives/container_directives/env.rb +0 -7
  92. data/lib/indocker/directives/container_directives/env_file.rb +0 -7
  93. data/lib/indocker/directives/container_directives/expose.rb +0 -7
  94. data/lib/indocker/directives/container_directives/from.rb +0 -14
  95. data/lib/indocker/directives/container_directives/network.rb +0 -12
  96. data/lib/indocker/directives/container_directives/ports.rb +0 -15
  97. data/lib/indocker/directives/container_directives/ready.rb +0 -16
  98. data/lib/indocker/directives/container_directives/volume.rb +0 -23
  99. data/lib/indocker/directives/image_directives/base.rb +0 -27
  100. data/lib/indocker/directives/image_directives/cmd.rb +0 -19
  101. data/lib/indocker/directives/image_directives/copy.rb +0 -32
  102. data/lib/indocker/directives/image_directives/docker_cp.rb +0 -20
  103. data/lib/indocker/directives/image_directives/entrypoint.rb +0 -19
  104. data/lib/indocker/directives/image_directives/env.rb +0 -9
  105. data/lib/indocker/directives/image_directives/env_file.rb +0 -19
  106. data/lib/indocker/directives/image_directives/expose.rb +0 -9
  107. data/lib/indocker/directives/image_directives/from.rb +0 -36
  108. data/lib/indocker/directives/image_directives/registry.rb +0 -30
  109. data/lib/indocker/directives/image_directives/run.rb +0 -17
  110. data/lib/indocker/directives/image_directives/workdir.rb +0 -9
  111. data/lib/indocker/directives/partial.rb +0 -21
  112. data/lib/indocker/docker_api/container_config.rb +0 -121
  113. data/lib/indocker/docker_api/docker_api.rb +0 -207
  114. data/lib/indocker/dsl_context.rb +0 -21
  115. data/lib/indocker/envs/env_metadata.rb +0 -39
  116. data/lib/indocker/envs/loader.rb +0 -19
  117. data/lib/indocker/errors.rb +0 -21
  118. data/lib/indocker/git/git_api.rb +0 -32
  119. data/lib/indocker/git/git_helper.rb +0 -34
  120. data/lib/indocker/git/git_service.rb +0 -21
  121. data/lib/indocker/handlers/container_run.rb +0 -20
  122. data/lib/indocker/handlers/container_stop.rb +0 -17
  123. data/lib/indocker/handlers/performable.rb +0 -22
  124. data/lib/indocker/image/image_builder.rb +0 -54
  125. data/lib/indocker/image/image_dependencies_manager.rb +0 -47
  126. data/lib/indocker/image/image_directives_runner.rb +0 -99
  127. data/lib/indocker/image/image_dockerfile_builder.rb +0 -24
  128. data/lib/indocker/image/image_dsl.rb +0 -89
  129. data/lib/indocker/image/image_evaluator.rb +0 -21
  130. data/lib/indocker/image/image_helper.rb +0 -9
  131. data/lib/indocker/image/image_metadata.rb +0 -50
  132. data/lib/indocker/image/image_metadata_factory.rb +0 -31
  133. data/lib/indocker/image/image_metadata_repository.rb +0 -29
  134. data/lib/indocker/networks/network_metadata.rb +0 -9
  135. data/lib/indocker/networks/network_metadata_factory.rb +0 -9
  136. data/lib/indocker/networks/network_metadata_repository.rb +0 -34
  137. data/lib/indocker/partial/partial_metadata.rb +0 -8
  138. data/lib/indocker/partial/partial_metadata_repository.rb +0 -26
  139. data/lib/indocker/registry/registry_api.rb +0 -46
  140. data/lib/indocker/registry/registry_helper.rb +0 -20
  141. data/lib/indocker/registry/registry_service.rb +0 -28
  142. data/lib/indocker/utils/ioc_container.rb +0 -17
  143. data/lib/indocker/utils/logger.rb +0 -62
  144. data/lib/indocker/utils/logger_factory.rb +0 -13
  145. data/lib/indocker/utils/registry_authenticator.rb +0 -19
  146. data/lib/indocker/utils/render_namespace.rb +0 -11
  147. data/lib/indocker/utils/render_util.rb +0 -15
  148. data/lib/indocker/utils/string_utils.rb +0 -11
  149. data/lib/indocker/utils/tar_helper.rb +0 -40
  150. data/lib/indocker/utils/test_logger_factory.rb +0 -9
  151. data/lib/indocker/volumes/volume_metadata.rb +0 -9
  152. data/lib/indocker/volumes/volume_metadata_factory.rb +0 -9
  153. data/lib/indocker/volumes/volume_metadata_repository.rb +0 -34
  154. data/spec/example/.indocker/config.rb +0 -30
  155. data/spec/example/.indocker/images_and_containers.rb +0 -25
  156. data/spec/example/assets/index.css +0 -1
  157. data/spec/example/assets/index.js +0 -1
  158. data/spec/fixtures/spec.env +0 -2
  159. data/spec/indocker/configs/config_factory_spec.rb +0 -18
  160. data/spec/indocker/configs/config_spec.rb +0 -88
  161. data/spec/indocker/container/container_builder_spec.rb +0 -67
  162. data/spec/indocker/container/container_manager_spec.rb +0 -278
  163. data/spec/indocker/docker_api/container_config_spec.rb +0 -64
  164. data/spec/indocker/docker_api/docker_api_spec.rb +0 -112
  165. data/spec/indocker/handlers/container_run_spec.rb +0 -60
  166. data/spec/indocker/image/image_builder_spec.rb +0 -153
  167. data/spec/indocker/image/image_directives_runner_spec.rb +0 -141
  168. data/spec/indocker/image/image_dockerfile_builder_spec.rb +0 -25
  169. data/spec/indocker/image/image_evaluator_spec.rb +0 -85
  170. data/spec/spec_helper.rb +0 -68
@@ -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
@@ -1,54 +0,0 @@
1
- class Indocker::ImageBuilder
2
- include SmartIoC::Iocify
3
-
4
- bean :image_builder
5
-
6
- inject :image_metadata_repository
7
- inject :image_dependencies_manager
8
- inject :image_directives_runner
9
- inject :docker_api
10
- inject :logger
11
- inject :image_dockerfile_builder
12
-
13
- def build(repo, tag: Indocker::ImageHelper::DEFAULT_TAG)
14
- image_metadata = image_metadata_repository.find_by_repo(repo, tag: tag)
15
-
16
- FileUtils.mkdir_p(image_metadata.build_dir)
17
-
18
- image_dependencies_manager.get_dependencies!(image_metadata).each do |dependency_metadata|
19
- build(dependency_metadata.repo, tag: dependency_metadata.tag)
20
- end
21
-
22
- image_directives_runner.run_all(image_metadata.prepare_directives)
23
-
24
- File.open(File.join(image_metadata.build_dir, Indocker::DOCKERFILE_NAME), 'w') do |f|
25
- f.puts image_dockerfile_builder.build(*image_metadata.build_directives)
26
-
27
- logger.debug image_dockerfile_builder.build(*image_metadata.build_directives)
28
- end
29
-
30
- File.open(File.join(image_metadata.build_dir, '.dockerignore'), 'w') do |f|
31
- f.puts '.git'
32
- f.puts '.gitignore'
33
- f.puts 'LICENSE'
34
- f.puts 'VERSION'
35
- f.puts 'README.md'
36
- f.puts 'Changelog.md'
37
- f.puts 'Makefile'
38
- f.puts 'docker-compose.yml'
39
- f.puts 'docs'
40
- end
41
-
42
- docker_api.build_from_dir(
43
- repo: image_metadata.repo,
44
- tag: image_metadata.tag,
45
- build_dir: image_metadata.build_dir.to_s
46
- ) { |log| logger.info(log) }
47
-
48
- image_directives_runner.run_all(image_metadata.after_build_directives)
49
- ensure
50
- image_metadata = image_metadata_repository.find_by_repo(repo, tag: tag)
51
-
52
- FileUtils.rm_rf(image_metadata.build_dir)
53
- end
54
- end
@@ -1,47 +0,0 @@
1
- class Indocker::ImageDependenciesManager
2
- include SmartIoC::Iocify
3
-
4
- bean :image_dependencies_manager
5
-
6
- inject :repository, ref: :image_metadata_repository
7
- inject :container_metadata_repository
8
- inject :image_evaluator
9
-
10
- def get_dependencies!(image_metadata)
11
- check_circular_dependencies!(image_metadata)
12
-
13
- get_dependencies(image_metadata)
14
- end
15
-
16
- private
17
-
18
- def check_circular_dependencies!(image_metadata, used_images = [])
19
- raise Indocker::Errors::CircularImageDependency if used_images.include?(image_metadata.full_name)
20
-
21
- used_images.push(image_metadata.full_name)
22
-
23
- get_dependencies(image_metadata).each do |dependency|
24
- check_circular_dependencies!(dependency, used_images)
25
- end
26
-
27
- nil
28
- end
29
-
30
- def get_dependencies(meta)
31
- dependencies = []
32
-
33
- docker_cp_dependencies = meta.docker_cp_directives.map do |c|
34
- container = container_metadata_repository.get_by_name(c.container_name)
35
-
36
- repository.find_by_repo(container.repo, tag: container.tag)
37
- end
38
-
39
- dependencies.concat(docker_cp_dependencies)
40
-
41
- if !meta.dockerhub_image?
42
- dependencies << repository.find_by_repo(meta.from_repo, tag: meta.from_tag)
43
- end
44
-
45
- dependencies.uniq
46
- end
47
- end
@@ -1,99 +0,0 @@
1
- class Indocker::ImageDirectivesRunner
2
- include SmartIoC::Iocify
3
-
4
- bean :image_directives_runner
5
-
6
- inject :container_manager
7
- inject :config
8
- inject :render_util
9
- inject :docker_api
10
-
11
- def run_all(directives)
12
- directives.each {|c| run(c)}
13
- end
14
-
15
- def run(directive)
16
- case directive
17
- when Indocker::ImageDirectives::DockerCp
18
- run_docker_cp(directive)
19
- when Indocker::ImageDirectives::Copy
20
- run_copy(directive)
21
- when Indocker::ImageDirectives::Registry
22
- run_registry(directive)
23
- end
24
- end
25
-
26
- def run_docker_cp(directive)
27
- directive.copy_actions.each do |from, to|
28
- container_manager.copy(
29
- name: directive.container_name,
30
- copy_from: from,
31
- copy_to: File.join(directive.build_dir, to)
32
- )
33
- end
34
- end
35
-
36
- def run_copy(directive)
37
- directive.copy_actions.each do |from, _|
38
- source = File.exists?(from) ? from : File.join(directive.build_dir, from)
39
- destination = File.join(directive.build_dir.to_s, from.to_s)
40
-
41
- copy_compile_file(
42
- from: source,
43
- to: destination,
44
- locals: directive.locals,
45
- compile: directive.compile
46
- )
47
- end
48
- end
49
-
50
- def run_registry(directive)
51
- docker_api.tag(
52
- repo: directive.repo,
53
- tag: directive.tag,
54
- new_repo: directive.new_repo,
55
- new_tag: directive.new_tag
56
- )
57
-
58
- docker_api.push(
59
- repo: directive.repo,
60
- tag: directive.tag,
61
- push_to_repo: directive.new_repo,
62
- push_to_tag: directive.new_tag
63
- ) if directive.push
64
- end
65
-
66
- private
67
-
68
- def copy_compile_file(from:, to:, locals: {}, compile: false)
69
- raise ArgumentError, "Copy destination #{from} not exists" if !File.exists?(from)
70
-
71
- if File.directory?(from)
72
- Dir.glob(File.join(from, '**', '*'), File::FNM_DOTMATCH).each do |file_source_path|
73
- next if File.directory?(file_source_path)
74
-
75
- file_relative_path = Pathname.new(file_source_path).relative_path_from( Pathname.new(from) ).to_s
76
- file_destination_path = File.join(to, file_relative_path)
77
-
78
- copy_compile_file(
79
- from: file_source_path,
80
- to: file_destination_path,
81
- locals: locals,
82
- compile: compile
83
- )
84
- end
85
-
86
- return
87
- end
88
-
89
- if !Dir.exist?(File.dirname(to))
90
- FileUtils.mkdir_p(File.dirname(to))
91
- end
92
-
93
- write_content = compile ? render_util.render( File.read(from), locals ) :
94
- File.read(from)
95
- File.write(to, write_content)
96
-
97
- File.chmod(File.stat(from).mode, to)
98
- end
99
- end
@@ -1,24 +0,0 @@
1
- class Indocker::ImageDockerfileBuilder
2
- include SmartIoC::Iocify
3
-
4
- bean :image_dockerfile_builder
5
-
6
- inject :envs_loader
7
-
8
- def build(*directives)
9
- dockerfile_content = ""
10
-
11
- dockerfile_content = directives.map do |directive|
12
- case directive
13
- when Indocker::ImageDirectives::EnvFile
14
- env_metadata = envs_loader.parse(directive.path)
15
-
16
- directive.to_s(env_metadata.to_s)
17
- else
18
- directive.to_s
19
- end
20
- end
21
-
22
- dockerfile_content.join("\n")
23
- end
24
- end
@@ -1,89 +0,0 @@
1
- class Indocker::ImageDSL
2
- attr_reader :directives
3
-
4
- def initialize(context)
5
- @context = context
6
- @directives = []
7
- end
8
-
9
- def method_missing(method, *args)
10
- @context.send(method)
11
- rescue
12
- super
13
- end
14
-
15
- def set_arg(key, value)
16
- @context.set_value(key, value)
17
- end
18
-
19
- def partial(name, opts = {})
20
- @directives << Indocker::Directives::Partial.new(name, @context, opts)
21
- end
22
-
23
- def expose(port)
24
- @directives << Indocker::ImageDirectives::Expose.new(port)
25
- end
26
-
27
- def from(*args)
28
- first_from_directive = @directives.detect {|c| c.instance_of?(Indocker::ImageDirectives::From)}
29
- raise Indocker::Errors::DirectiveAlreadyInUse, first_from_directive if first_from_directive
30
-
31
- @directives << Indocker::ImageDirectives::From.new(*args)
32
- end
33
-
34
- def use(item)
35
- case item
36
- when Indocker::Registry::RegistryHelper
37
- first_from_directive = @directives.detect {|c| c.instance_of?(Indocker::ImageDirectives::Registry)}
38
- raise Indocker::Errors::DirectiveAlreadyInUse, first_from_directive if first_from_directive
39
-
40
- @directives << Indocker::ImageDirectives::Registry.new(
41
- repo: repo,
42
- tag: tag,
43
- registry: item.registry,
44
- push: item.push
45
- )
46
- end
47
- end
48
-
49
- def workdir(*args)
50
- @directives << Indocker::ImageDirectives::Workdir.new(*args)
51
- end
52
-
53
- def run(*args)
54
- @directives << Indocker::ImageDirectives::Run.new(*args)
55
- end
56
-
57
- def cmd(*args)
58
- @directives << Indocker::ImageDirectives::Cmd.new(*args)
59
- end
60
-
61
- def copy(copy_actions = {}, compile = false)
62
- @directives << Indocker::ImageDirectives::Copy.new(
63
- compile: compile,
64
- copy_actions: copy_actions,
65
- locals: @context.storage,
66
- build_dir: @context.build_dir
67
- )
68
- end
69
-
70
- def entrypoint(*args)
71
- @directives << Indocker::ImageDirectives::Entrypoint.new(*args)
72
- end
73
-
74
- def env(*args)
75
- @directives << Indocker::ImageDirectives::Env.new(args)
76
- end
77
-
78
- def env_file(*paths)
79
- @directives.concat paths.map {|p| Indocker::ImageDirectives::EnvFile.new(p)}
80
- end
81
-
82
- def before_build(&block)
83
- instance_exec &block
84
- end
85
-
86
- def docker_cp(container_name, &block)
87
- @directives << Indocker::ImageDirectives::DockerCp.new(container_name, @context.build_dir, &block)
88
- end
89
- end
@@ -1,21 +0,0 @@
1
- class Indocker::ImageEvaluator
2
- include SmartIoC::Iocify
3
-
4
- bean :image_evaluator
5
- inject :partial_metadata_repository
6
-
7
- def evaluate(context, &block)
8
- image_dsl = Indocker::ImageDSL.new(context)
9
-
10
- image_dsl.instance_eval(&block)
11
-
12
- image_dsl.directives
13
- .map do |directive|
14
- next directive if !directive.partial_directive?
15
-
16
- partial = partial_metadata_repository.find_by_name(directive.name)
17
- evaluate(directive.context, &partial.definition)
18
- end
19
- .flatten
20
- end
21
- end
@@ -1,9 +0,0 @@
1
- module Indocker::ImageHelper
2
- DEFAULT_TAG = 'latest'
3
-
4
- def full_name(repo, tag = nil)
5
- tag ||= DEFAULT_TAG
6
-
7
- "#{repo}:#{tag}"
8
- end
9
- end
@@ -1,50 +0,0 @@
1
- class Indocker::ImageMetadata
2
- include Indocker::ImageHelper
3
-
4
- attr_reader :repo, :tag, :directives, :build_dir
5
-
6
- def initialize(repo:, tag:, directives:, build_dir:)
7
- @repo = repo
8
- @tag = tag
9
- @directives = directives
10
- @build_dir = build_dir
11
- end
12
-
13
- def full_name
14
- super(@repo, @tag)
15
- end
16
-
17
- def prepare_directives
18
- directives.select {|d| d.prepare_directive?}
19
- end
20
-
21
- def after_build_directives
22
- directives.select {|d| d.after_build_directive?}
23
- end
24
-
25
- def build_directives
26
- directives.select {|d| d.build_directive?}
27
- end
28
-
29
- def docker_cp_directives
30
- directives.select {|d| d.is_a?(Indocker::ImageDirectives::DockerCp)}
31
- end
32
-
33
- def from_repo
34
- from_directive.repo
35
- end
36
-
37
- def from_tag
38
- from_directive.tag
39
- end
40
-
41
- def dockerhub_image?
42
- from_directive.dockerhub_image?
43
- end
44
-
45
- private
46
-
47
- def from_directive
48
- @directives.detect {|c| c.instance_of?(Indocker::ImageDirectives::From)}
49
- end
50
- end
@@ -1,31 +0,0 @@
1
- class Indocker::ImageMetadataFactory
2
- include Indocker::ImageHelper
3
- include SmartIoC::Iocify
4
-
5
- bean :image_metadata_factory
6
-
7
- inject :image_evaluator
8
- inject :docker_api
9
- inject :config
10
- inject :git_helper
11
- inject :registry_service
12
-
13
- def create(repo, tag: Indocker::ImageHelper::DEFAULT_TAG, &definition)
14
- context = Indocker::DSLContext.new(
15
- build_dir: config.build_dir.join(repo.to_s),
16
- git: git_helper,
17
- repo: repo,
18
- tag: tag,
19
- registry: registry_service
20
- )
21
-
22
- directives = image_evaluator.evaluate(context, &definition)
23
-
24
- Indocker::ImageMetadata.new(
25
- repo: repo.intern,
26
- tag: tag.intern,
27
- directives: directives,
28
- build_dir: config.build_dir.join(repo.to_s)
29
- )
30
- end
31
- end