dapp 0.5.13 → 0.6.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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dapp +3 -0
  3. data/config/en/common.yml +35 -6
  4. data/config/en/net_status.yml +20 -6
  5. data/lib/dapp.rb +53 -27
  6. data/lib/dapp/application.rb +48 -27
  7. data/lib/dapp/application/git_artifact.rb +1 -1
  8. data/lib/dapp/application/path.rb +2 -18
  9. data/lib/dapp/application/tags.rb +5 -5
  10. data/lib/dapp/build/stage/artifact.rb +8 -3
  11. data/lib/dapp/build/stage/base.rb +43 -30
  12. data/lib/dapp/build/stage/{infra_install.rb → before_install.rb} +6 -6
  13. data/lib/dapp/build/stage/before_setup.rb +27 -0
  14. data/lib/dapp/build/stage/docker_instructions.rb +12 -1
  15. data/lib/dapp/build/stage/from.rb +4 -3
  16. data/lib/dapp/build/stage/{source_1_archive.rb → ga_archive.rb} +7 -7
  17. data/lib/dapp/build/stage/{source_1_archive_dependencies.rb → ga_archive_dependencies.rb} +4 -4
  18. data/lib/dapp/build/stage/{source_base.rb → ga_base.rb} +31 -7
  19. data/lib/dapp/build/stage/{source_dependencies_base.rb → ga_dependencies_base.rb} +5 -6
  20. data/lib/dapp/build/stage/{source_5.rb → ga_latest_patch.rb} +6 -6
  21. data/lib/dapp/build/stage/install/ga_post_install_patch.rb +21 -0
  22. data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +21 -0
  23. data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +21 -0
  24. data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +31 -0
  25. data/lib/dapp/build/stage/install/install.rb +31 -0
  26. data/lib/dapp/build/stage/mod/artifact.rb +9 -19
  27. data/lib/dapp/build/stage/mod/group.rb +42 -0
  28. data/lib/dapp/build/stage/mod/logging.rb +62 -26
  29. data/lib/dapp/build/stage/setup/chef_cookbooks.rb +37 -0
  30. data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +25 -0
  31. data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +31 -0
  32. data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +25 -0
  33. data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +27 -0
  34. data/lib/dapp/build/stage/setup/setup.rb +31 -0
  35. data/lib/dapp/builder/base.rb +9 -6
  36. data/lib/dapp/builder/chef.rb +128 -107
  37. data/lib/dapp/builder/chef/berksfile.rb +3 -0
  38. data/lib/dapp/builder/shell.rb +4 -3
  39. data/lib/dapp/cli.rb +8 -6
  40. data/lib/dapp/cli/base.rb +6 -1
  41. data/lib/dapp/cli/bp.rb +41 -0
  42. data/lib/dapp/cli/build.rb +17 -4
  43. data/lib/dapp/cli/cleanup.rb +24 -0
  44. data/lib/dapp/cli/list.rb +2 -2
  45. data/lib/dapp/cli/push.rb +8 -9
  46. data/lib/dapp/cli/run.rb +3 -4
  47. data/lib/dapp/cli/spush.rb +20 -0
  48. data/lib/dapp/cli/stages.rb +2 -0
  49. data/lib/dapp/cli/stages/cleanup.rb +7 -3
  50. data/lib/dapp/cli/stages/flush.rb +6 -3
  51. data/lib/dapp/config/application.rb +17 -11
  52. data/lib/dapp/config/chef.rb +4 -0
  53. data/lib/dapp/config/docker.rb +3 -2
  54. data/lib/dapp/config/git_artifact.rb +1 -2
  55. data/lib/dapp/config/main.rb +5 -2
  56. data/lib/dapp/config/shell.rb +20 -16
  57. data/lib/dapp/docker_registry.rb +32 -0
  58. data/lib/dapp/docker_registry/base.rb +47 -0
  59. data/lib/dapp/docker_registry/default.rb +18 -0
  60. data/lib/dapp/docker_registry/mod/authorization.rb +62 -0
  61. data/lib/dapp/docker_registry/mod/request.rb +44 -0
  62. data/lib/dapp/error/image.rb +6 -0
  63. data/lib/dapp/error/project.rb +6 -0
  64. data/lib/dapp/error/registry.rb +6 -0
  65. data/lib/dapp/exception/registry.rb +6 -0
  66. data/lib/dapp/git_artifact.rb +6 -7
  67. data/lib/dapp/git_repo/base.rb +1 -1
  68. data/lib/dapp/git_repo/remote.rb +6 -38
  69. data/lib/dapp/helper/sha256.rb +3 -3
  70. data/lib/dapp/helper/shellout.rb +25 -7
  71. data/lib/dapp/helper/streaming.rb +1 -3
  72. data/lib/dapp/image/argument.rb +31 -18
  73. data/lib/dapp/image/docker.rb +15 -8
  74. data/lib/dapp/image/stage.rb +10 -12
  75. data/lib/dapp/lock/base.rb +44 -0
  76. data/lib/dapp/lock/error.rb +14 -0
  77. data/lib/dapp/lock/file.rb +33 -0
  78. data/lib/dapp/prctl.rb +22 -0
  79. data/lib/dapp/project.rb +75 -0
  80. data/lib/dapp/project/command/bp.rb +24 -0
  81. data/lib/dapp/project/command/build.rb +21 -0
  82. data/lib/dapp/project/command/cleanup.rb +24 -0
  83. data/lib/dapp/project/command/common.rb +51 -0
  84. data/lib/dapp/project/command/list.rb +14 -0
  85. data/lib/dapp/project/command/push.rb +21 -0
  86. data/lib/dapp/project/command/run.rb +15 -0
  87. data/lib/dapp/project/command/spush.rb +17 -0
  88. data/lib/dapp/project/command/stages_cleanup.rb +70 -0
  89. data/lib/dapp/project/command/stages_flush.rb +18 -0
  90. data/lib/dapp/project/dappfile.rb +70 -0
  91. data/lib/dapp/project/lock.rb +27 -0
  92. data/lib/dapp/project/logging/base.rb +107 -0
  93. data/lib/dapp/project/logging/process.rb +104 -0
  94. data/lib/dapp/project/paint.rb +16 -0
  95. data/lib/dapp/project/ssh_agent.rb +77 -0
  96. data/lib/dapp/version.rb +1 -1
  97. metadata +74 -27
  98. data/lib/dapp/application/deps/gitartifact.rb +0 -39
  99. data/lib/dapp/application/logging.rb +0 -120
  100. data/lib/dapp/application/system_shellout.rb +0 -63
  101. data/lib/dapp/build/stage/chef_cookbooks.rb +0 -33
  102. data/lib/dapp/build/stage/infra_setup.rb +0 -27
  103. data/lib/dapp/build/stage/install.rb +0 -27
  104. data/lib/dapp/build/stage/setup.rb +0 -27
  105. data/lib/dapp/build/stage/source_1.rb +0 -21
  106. data/lib/dapp/build/stage/source_1_dependencies.rb +0 -27
  107. data/lib/dapp/build/stage/source_2.rb +0 -17
  108. data/lib/dapp/build/stage/source_2_dependencies.rb +0 -17
  109. data/lib/dapp/build/stage/source_3.rb +0 -17
  110. data/lib/dapp/build/stage/source_3_dependencies.rb +0 -23
  111. data/lib/dapp/build/stage/source_4.rb +0 -21
  112. data/lib/dapp/build/stage/source_4_dependencies.rb +0 -27
  113. data/lib/dapp/cli/smartpush.rb +0 -19
  114. data/lib/dapp/controller.rb +0 -119
  115. data/lib/dapp/error/controller.rb +0 -6
  116. data/lib/dapp/helper/log.rb +0 -73
@@ -38,6 +38,9 @@ module Dapp
38
38
  end
39
39
 
40
40
  def add_local_cookbook_path(name, path)
41
+ raise(::Dapp::Builder::Chef::Error, code: :berksfile_absolute_path_forbidden,
42
+ data: { cookbook: name, path: path }) if path.start_with? '/'
43
+
41
44
  @local_cookbooks[name] = {
42
45
  name: name,
43
46
  path: home_path.join(path)
@@ -2,14 +2,15 @@ module Dapp
2
2
  module Builder
3
3
  # Shell
4
4
  class Shell < Base
5
- [:infra_install, :infra_setup, :install, :setup].each do |stage|
5
+ [:before_install, :before_setup, :install, :setup].each do |stage|
6
6
  define_method("#{stage}_checksum") do
7
7
  [application.config._shell.public_send("_#{stage}"),
8
8
  application.config._shell.public_send("_#{stage}_cache_version")].flatten
9
9
  end
10
10
  define_method("#{stage}?") { !stage_empty?(stage) }
11
- define_method("#{stage}") do |image|
12
- image.add_command(*stage_commands(stage)) unless stage_empty?(stage)
11
+ define_method(stage.to_s) do |image|
12
+ image.add_command("export DAPP_BUILD_STAGE=#{stage}",
13
+ *stage_commands(stage)) unless stage_empty?(stage)
13
14
  end
14
15
  end
15
16
 
@@ -7,18 +7,20 @@ module Dapp
7
7
  include Mixlib::CLI
8
8
  include Helper::Trivia
9
9
 
10
- SUBCOMMANDS = %w(build smartpush push list run stages).freeze
10
+ SUBCOMMANDS = %w(build push spush list run stages cleanup bp).freeze
11
11
 
12
12
  banner <<BANNER.freeze
13
13
  Usage: dapp [options] sub-command [sub-command options]
14
14
 
15
15
  Available subcommands: (for details, dapp SUB-COMMAND --help)
16
16
 
17
- dapp build [options] [PATTERN ...]
18
- dapp push [options] [PATTERN...] REPO
19
- dapp smartpush [options] [PATTERN ...] REPOPREFIX
20
- dapp list [options] [PATTERN ...]
21
- dapp run [options] [PATTERN...] [DOCKER ARGS]
17
+ dapp build [options] [APPS PATTERN ...]
18
+ dapp bp [options] [APPS PATTERN ...] REPO
19
+ dapp push [options] [APP PATTERN] REPO
20
+ dapp spush [options] [APPS PATTERN ...] REPO
21
+ dapp list [options] [APPS PATTERN ...]
22
+ dapp run [options] [APP PATTERN] [DOCKER ARGS]
23
+ dapp cleanup [options] [APPS PATTERN ...]
22
24
  dapp stages
23
25
 
24
26
  Options:
@@ -43,6 +43,11 @@ module Dapp
43
43
  default: false,
44
44
  boolean: true
45
45
 
46
+ option :dev,
47
+ long: '--dev',
48
+ default: false,
49
+ boolean: true
50
+
46
51
  def initialize
47
52
  self.class.options.merge!(Base.options)
48
53
  super()
@@ -50,7 +55,7 @@ module Dapp
50
55
 
51
56
  def run(argv = ARGV)
52
57
  self.class.parse_options(self, argv)
53
- Controller.new(cli_options: config, patterns: cli_arguments).public_send(class_to_lowercase)
58
+ Project.new(cli_options: config, apps_patterns: cli_arguments).public_send(class_to_lowercase)
54
59
  end
55
60
  end
56
61
  end
@@ -0,0 +1,41 @@
1
+ require 'mixlib/cli'
2
+
3
+ module Dapp
4
+ class CLI
5
+ # CLI bp subcommand
6
+ class Bp < Push
7
+ include Dapp::Helper::Shellout
8
+
9
+ banner <<BANNER.freeze
10
+ Version: #{Dapp::VERSION}
11
+
12
+ Usage:
13
+ dapp bp [options] [APPS PATTERNS] REPO
14
+
15
+ APPS PATTERN Applications to process [default: *].
16
+ REPO Pushed image name.
17
+
18
+ Options:
19
+ BANNER
20
+ option :tmp_dir_prefix,
21
+ long: '--tmp-dir-prefix PREFIX',
22
+ description: 'Tmp directory prefix'
23
+
24
+ option :lock_timeout,
25
+ long: '--lock-timeout TIMEOUT',
26
+ description: 'Redefine resource locking timeout (in seconds)',
27
+ proc: ->(v) { v.to_i }
28
+
29
+ option :git_artifact_branch,
30
+ long: '--git-artifact-branch BRANCH',
31
+ description: 'Default branch to archive artifacts from'
32
+
33
+ option :ssh_key,
34
+ long: '--ssh-key SSH_KEY',
35
+ description: ['Enable only specified ssh keys ',
36
+ '(use system ssh-agent by default)'].join,
37
+ default: nil,
38
+ proc: ->(v) { composite_options(:ssh_key) << v }
39
+ end
40
+ end
41
+ end
@@ -10,9 +10,9 @@ module Dapp
10
10
  Version: #{Dapp::VERSION}
11
11
 
12
12
  Usage:
13
- dapp build [options] [PATTERN ...]
13
+ dapp build [options] [APPS PATTERN ...]
14
14
 
15
- PATTERN Applications to process [default: *].
15
+ APPS PATTERN Applications to process [default: *].
16
16
 
17
17
  Options:
18
18
  BANNER
@@ -20,6 +20,11 @@ BANNER
20
20
  long: '--tmp-dir-prefix PREFIX',
21
21
  description: 'Tmp directory prefix'
22
22
 
23
+ option :lock_timeout,
24
+ long: '--lock-timeout TIMEOUT',
25
+ description: 'Redefine resource locking timeout (in seconds)',
26
+ proc: ->(v) { v.to_i }
27
+
23
28
  option :git_artifact_branch,
24
29
  long: '--git-artifact-branch BRANCH',
25
30
  description: 'Default branch to archive artifacts from'
@@ -37,8 +42,16 @@ BANNER
37
42
  option :introspect_stage,
38
43
  long: '--introspect-stage STAGE',
39
44
  proc: proc { |v| v.to_sym },
40
- in: [nil, :from, :infra_install, :source_1_archive, :source_1, :install, :artifact, :source_2,
41
- :infra_setup, :source_3, :chef_cookbooks, :setup, :source_4, :source_5, :docker_instructions]
45
+ in: [nil, :from, :before_install, :g_a_archive, :g_a_pre_install_patch, :install, :g_a_post_install_patch,
46
+ :artifact, :before_setup, :g_a_pre_setup_patch, :chef_cookbooks, :setup, :g_a_post_setup_patch,
47
+ :g_a_latest_patch, :docker_instructions]
48
+
49
+ option :ssh_key,
50
+ long: '--ssh-key SSH_KEY',
51
+ description: ['Enable only specified ssh keys ',
52
+ '(use system ssh-agent by default)'].join,
53
+ default: nil,
54
+ proc: ->(v) { composite_options(:ssh_key) << v }
42
55
  end
43
56
  end
44
57
  end
@@ -0,0 +1,24 @@
1
+ require 'mixlib/cli'
2
+
3
+ module Dapp
4
+ class CLI
5
+ # Cleanup subcommand
6
+ class Cleanup < Base
7
+ banner <<BANNER.freeze
8
+ Version: #{Dapp::VERSION}
9
+
10
+ Usage:
11
+ dapp cleanup [options] [APPS PATTERN ...]
12
+
13
+ APPS PATTERN Applications to process [default: *].
14
+
15
+ Options:
16
+ BANNER
17
+
18
+ option :lock_timeout,
19
+ long: '--lock-timeout TIMEOUT',
20
+ description: 'Redefine resource locking timeout (in seconds)',
21
+ proc: ->(v) { v.to_i }
22
+ end
23
+ end
24
+ end
@@ -8,9 +8,9 @@ module Dapp
8
8
  Version: #{Dapp::VERSION}
9
9
 
10
10
  Usage:
11
- dapp list [options] [PATTERN ...]
11
+ dapp list [options] [APPS PATTERN ...]
12
12
 
13
- PATTERN Applications to process [default: *].
13
+ APPS PATTERN Applications to process [default: *].
14
14
 
15
15
  Options:
16
16
  BANNER
@@ -8,12 +8,17 @@ module Dapp
8
8
  Version: #{Dapp::VERSION}
9
9
 
10
10
  Usage:
11
- dapp push [options] [PATTERN ...] REPO
11
+ dapp push [options] [APP PATTERN] REPO
12
12
 
13
- PATTERN Applications to process [default: *].
13
+ APP PATTERN Applications to process [default: *].
14
14
  REPO Pushed image name.
15
+
15
16
  Options:
16
17
  BANNER
18
+ option :lock_timeout,
19
+ long: '--lock-timeout TIMEOUT',
20
+ description: 'Redefine resource locking timeout (in seconds)',
21
+ proc: ->(v) { v.to_i }
17
22
 
18
23
  option :git_artifact_branch,
19
24
  long: '--git-artifact-branch BRANCH',
@@ -45,16 +50,10 @@ BANNER
45
50
  description: 'Tag by git commit',
46
51
  boolean: true
47
52
 
48
- option :force,
49
- long: '--force',
50
- description: 'Override existing image',
51
- default: false,
52
- boolean: true
53
-
54
53
  def run(argv = ARGV)
55
54
  self.class.parse_options(self, argv)
56
55
  repo = self.class.required_argument(self)
57
- Controller.new(cli_options: config, patterns: cli_arguments).public_send(class_to_lowercase, repo)
56
+ Project.new(cli_options: config, apps_patterns: cli_arguments).public_send(class_to_lowercase, repo)
58
57
  end
59
58
  end
60
59
  end
@@ -8,12 +8,11 @@ module Dapp
8
8
  Version: #{Dapp::VERSION}
9
9
 
10
10
  Usage:
11
- dapp run [options] [PATTERN...] [DOCKER ARGS]
11
+ dapp run [options] [APP PATTERN] [DOCKER ARGS]
12
12
 
13
- PATTERN Applications to process [default: *].
13
+ APP PATTERN Application to process [default: *].
14
14
  DOCKER ARGS Docker run options and command separated by '--'
15
15
 
16
-
17
16
  Options:
18
17
  BANNER
19
18
 
@@ -49,7 +48,7 @@ BANNER
49
48
  index = filtered_args.index('--') || filtered_args.count
50
49
  docker_options = index.nonzero? ? filtered_args.slice(0..index - 1) : []
51
50
  command = filtered_args.slice(index + 1..-1) || []
52
- Controller.new(cli_options: config, patterns: pattern).run(docker_options, command)
51
+ Project.new(cli_options: config, apps_patterns: pattern).run(docker_options, command)
53
52
  end
54
53
  end
55
54
  end
@@ -0,0 +1,20 @@
1
+ require 'mixlib/cli'
2
+
3
+ module Dapp
4
+ class CLI
5
+ # CLI spush subcommand
6
+ class Spush < Push
7
+ banner <<BANNER.freeze
8
+ Version: #{Dapp::VERSION}
9
+
10
+ Usage:
11
+ dapp spush [options] [APPS PATTERN ...] REPO
12
+
13
+ APPS PATTERN Applications to process [default: *].
14
+ REPO Pushed image name.
15
+
16
+ Options:
17
+ BANNER
18
+ end
19
+ end
20
+ end
@@ -13,6 +13,8 @@ Available subcommands: (for details, dapp SUB-COMMAND --help)
13
13
 
14
14
  dapp stages flush
15
15
  dapp stages cleanup
16
+
17
+ Options:
16
18
  BANNER
17
19
  end
18
20
  end
@@ -3,18 +3,22 @@ require 'mixlib/cli'
3
3
  module Dapp
4
4
  class CLI
5
5
  class Stages
6
- # Flush stages subcommand
6
+ # stages cleanup subcommand
7
7
  class Cleanup < Base
8
8
  banner <<BANNER.freeze
9
9
  Version: #{Dapp::VERSION}
10
10
 
11
11
  Usage:
12
- dapp stages cleanup [options] [PATTERN ...]
12
+ dapp stages cleanup [options] [APPS PATTERN ...] [REPO]
13
+
14
+ APPS PATTERN Applications to process [default: *].
15
+
13
16
  Options:
14
17
  BANNER
15
18
  def run(argv = ARGV)
16
19
  self.class.parse_options(self, argv)
17
- Controller.new(cli_options: config, patterns: cli_arguments).stages_cleanup
20
+ repo = self.class.required_argument(self)
21
+ Project.new(cli_options: config, apps_patterns: cli_arguments).stages_cleanup(repo)
18
22
  end
19
23
  end
20
24
  end
@@ -3,18 +3,21 @@ require 'mixlib/cli'
3
3
  module Dapp
4
4
  class CLI
5
5
  class Stages
6
- # Flush stages subcommand
6
+ # stages flush subcommand
7
7
  class Flush < Base
8
8
  banner <<BANNER.freeze
9
9
  Version: #{Dapp::VERSION}
10
10
 
11
11
  Usage:
12
- dapp stages flush [options] [PATTERN ...]
12
+ dapp stages flush [options] [APPS PATTERN ...]
13
+
14
+ APPS PATTERN Applications to process [default: *].
15
+
13
16
  Options:
14
17
  BANNER
15
18
  def run(argv = ARGV)
16
19
  self.class.parse_options(self, argv)
17
- Controller.new(cli_options: config, patterns: cli_arguments).stages_flush
20
+ Project.new(cli_options: config, apps_patterns: cli_arguments).stages_flush
18
21
  end
19
22
  end
20
23
  end
@@ -34,6 +34,14 @@ module Dapp
34
34
  @_setup_dependencies.concat(args)
35
35
  end
36
36
 
37
+ def builder(type)
38
+ project.log_warning(desc: { code: 'excess_builder_instruction', context: 'warning' }) if @_chef.empty? && @_shell.empty?
39
+ raise Error::Config, code: :builder_type_unsupported, data: { type: type } unless [:chef, :shell].include?((type = type.to_sym))
40
+ another_builder = [:chef, :shell].find { |t| t != type }
41
+ instance_variable_set(:"@_#{another_builder}", Config.const_get(another_builder.capitalize).new)
42
+ @_builder = type
43
+ end
44
+
37
45
  def chef
38
46
  raise Error::Config, code: :builder_type_conflict unless _builder == :chef
39
47
  @_chef ||= Chef.new
@@ -44,6 +52,10 @@ module Dapp
44
52
  @_shell ||= Shell.new
45
53
  end
46
54
 
55
+ def docker
56
+ @_docker ||= Docker.new
57
+ end
58
+
47
59
  def artifact(where_to_add, **options, &blk)
48
60
  @_artifact << begin
49
61
  config = clone.tap do |app|
@@ -59,17 +71,6 @@ module Dapp
59
71
  @_git_artifact ||= GitArtifact.new
60
72
  end
61
73
 
62
- def docker
63
- @_docker ||= Docker.new
64
- end
65
-
66
- def builder(type)
67
- raise Error::Config, code: :builder_type_unsupported, data: { type: type } unless [:chef, :shell].include?((type = type.to_sym))
68
- another_builder = [:chef, :shell].find { |t| t != type }
69
- instance_variable_set(:"@_#{another_builder}", Config.const_get(another_builder.capitalize).new)
70
- @_builder = type
71
- end
72
-
73
74
  def _name
74
75
  (@_name || @_basename).tap do |name|
75
76
  reg = '^[[[:alnum:]]_.-]*$'
@@ -98,11 +99,16 @@ module Dapp
98
99
  _app_chain.first
99
100
  end
100
101
 
102
+ protected
103
+
104
+ attr_accessor :project
105
+
101
106
  private
102
107
 
103
108
  # rubocop:disable Metrics/AbcSize
104
109
  def clone
105
110
  Application.new(self).tap do |app|
111
+ app.instance_variable_set(:'@project', project)
106
112
  app.instance_variable_set(:'@_builder', _builder)
107
113
  app.instance_variable_set(:'@_home_path', _home_path)
108
114
  app.instance_variable_set(:'@_basename', _basename)
@@ -39,6 +39,10 @@ module Dapp
39
39
  reset_recipes
40
40
  end
41
41
 
42
+ def empty?
43
+ @_modules.empty? && @_recipes.empty?
44
+ end
45
+
42
46
  def clone
43
47
  Marshal.load(Marshal.dump(self))
44
48
  end
@@ -14,8 +14,9 @@ module Dapp
14
14
  @_onbuild = []
15
15
  end
16
16
 
17
- def from(image_name, cache_version: nil)
18
- @_from = image_name
17
+ def from(image, cache_version: nil)
18
+ raise(Error::Config, code: :docker_from_incorrect, data: { name: image }) unless image =~ /^[[^ ].]+:[[^ ].]+$/
19
+ @_from = image
19
20
  @_from_cache_version = cache_version
20
21
  end
21
22
 
@@ -33,13 +33,12 @@ module Dapp
33
33
 
34
34
  # Remote
35
35
  class Remote < Local
36
- attr_accessor :_url, :_name, :_branch, :_ssh_key_path
36
+ attr_accessor :_url, :_name, :_branch
37
37
 
38
38
  def initialize(url, where_to_add, **options)
39
39
  @_url = url
40
40
  @_name = url.gsub(%r{.*?([^\/ ]+)\.git}, '\\1')
41
41
  @_branch = options.delete(:branch)
42
- @_ssg_key_path = options.delete(:ssg_key_path)
43
42
  super(where_to_add, **options)
44
43
  end
45
44