eac_docker 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 30d5ee27849d893d0baaeae9c9693dcb5b3b84349eee98f07081d6566ee5b632
4
- data.tar.gz: 749bf0ae7c23323717f41acfa32170e4053c4d43205269c643da486d1d73cd00
3
+ metadata.gz: 23cb2be3b085b58aca17331b8423c9a7411a80c405288aa4985dd638bddc3ac3
4
+ data.tar.gz: fe63f09139b19feefcf0593f18f3816cefa6c2ef625ebf7c019bca25436fa42d
5
5
  SHA512:
6
- metadata.gz: c054e0d39c8aad0cf2547b49ec509331bc8e98548208e7769c7d742fc585e2436dd1998630dac2792c1732e00df4e191f06766f04522404f0fc330b9e367146f
7
- data.tar.gz: 3386804efb02936f16b3d2e3564c8fb07834309d778ce20c7edba1a0dbd5d8e68967b4b16779984804abc99acf7076324509932c42ea230067b80819e5b4a0a6
6
+ metadata.gz: 2028ed9e3f5de2c1cdf4a3135876cde44d4f870f611329c0846e3043bb0efbe404e150fb53cc1451d21d6c836c4a784c25aae4784301eba2ba0bafbb256ad46b
7
+ data.tar.gz: cf15244416cd4839de5642b6cb68cd90b26327cb99455a337246b5d8b7854655aba2b06702d5c5929132c4313b97ed12adabea33acaaf2106cfceda88b03fb69
@@ -7,7 +7,7 @@ module EacDocker
7
7
  enable_immutable
8
8
  immutable_accessor :interactive, :temporary, :tty, type: :boolean
9
9
  immutable_accessor :env, type: :hash
10
- immutable_accessor :command_arg, :volume, type: :array
10
+ immutable_accessor :capability, :command_arg, :volume, type: :array
11
11
  attr_reader :id
12
12
  common_constructor :image
13
13
 
@@ -43,8 +43,8 @@ module EacDocker
43
43
  end
44
44
 
45
45
  def run_command_args
46
- run_command_boolean_args + run_command_envs_args + run_command_volumes_args + [image.id] +
47
- command_args
46
+ run_command_boolean_args + run_command_capabilities_args + run_command_envs_args +
47
+ run_command_volumes_args + [image.provide.id] + command_args
48
48
  end
49
49
 
50
50
  def stop
@@ -63,6 +63,10 @@ module EacDocker
63
63
  r
64
64
  end
65
65
 
66
+ def run_command_capabilities_args
67
+ capabilities.flat_map { |capability| ['--cap-add', capability] }
68
+ end
69
+
66
70
  def run_command_volumes_args
67
71
  volumes.flat_map { |volume| ['--volume', volume] }
68
72
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/boolean'
4
+
5
+ module EacDocker
6
+ module Debug
7
+ class << self
8
+ ENABLE_ENVVAR = 'EAC_DOCKER_DEBUG'
9
+
10
+ def enabled?
11
+ ::EacRubyUtils::Boolean.parse(ENV[ENABLE_ENVVAR])
12
+ end
13
+ end
14
+ end
15
+ end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_docker/debug'
3
4
  require 'eac_docker/executables'
4
5
  require 'eac_docker/images/base'
5
6
  require 'eac_ruby_utils/core_ext'
@@ -26,6 +27,9 @@ module EacDocker
26
27
  private
27
28
 
28
29
  def id_uncached
30
+ if ::EacDocker::Debug.enabled?
31
+ ::EacDocker::Executables.docker.command(*build_args.excluding('--quiet')).system!
32
+ end
29
33
  ::EacDocker::Executables.docker.command(*build_args).execute!.strip
30
34
  end
31
35
 
@@ -4,23 +4,38 @@ require 'eac_docker/images/base'
4
4
  require 'eac_docker/images/coded'
5
5
  require 'eac_ruby_utils/core_ext'
6
6
  require 'eac_ruby_utils/fs/temp'
7
+ require 'eac_templates/patches/object/template'
7
8
 
8
9
  module EacDocker
9
10
  module Images
10
11
  class Templatized < ::EacDocker::Images::Base
11
12
  enable_immutable
12
13
  immutable_accessor :tag
14
+ attr_reader :provide_dir
15
+
16
+ def id
17
+ tag
18
+ end
13
19
 
14
20
  def provide
15
21
  ::EacRubyUtils::Fs::Temp.on_directory do |provide_dir|
16
- template.apply(self, provide_dir)
17
- coded_image(provide_dir).tag(tag).provide
22
+ begin
23
+ self.provide_dir = provide_dir
24
+ template.apply(self, provide_dir)
25
+ coded_image(provide_dir).tag(tag).provide
26
+ ensure
27
+ self.provide_dir = nil
28
+ end
18
29
  end
19
30
  end
20
31
 
21
32
  def coded_image(provide_dir)
22
33
  ::EacDocker::Images::Coded.new(provide_dir)
23
34
  end
35
+
36
+ private
37
+
38
+ attr_writer :provide_dir
24
39
  end
25
40
  end
26
41
  end
@@ -1,17 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/rspec/conditional'
4
- require 'eac_docker/executables'
3
+ require 'eac_ruby_utils/core_ext'
5
4
 
6
5
  module EacDocker
7
6
  module Rspec
8
- class << self
9
- def configure
10
- ::EacRubyUtils::Rspec::Conditional.default.add(:docker) do
11
- ::EacDocker::Executables.docker.validate
12
- end
13
- RSpec.configure { |config| ::EacRubyUtils::Rspec::Conditional.default.configure(config) }
14
- end
15
- end
7
+ require_sub __FILE__
16
8
  end
17
9
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/rspec/conditional'
4
+ require 'eac_docker/executables'
5
+
6
+ module EacDocker
7
+ module Rspec
8
+ module SetupInclude
9
+ class << self
10
+ def setup(setup_obj)
11
+ setup_conditional_docker_executable(setup_obj)
12
+ end
13
+
14
+ def setup_conditional_docker_executable(setup_obj)
15
+ ::EacRubyUtils::Rspec::Conditional.default.add(:docker) do
16
+ ::EacDocker::Executables.docker.validate
17
+ end
18
+ ::EacRubyUtils::Rspec::Conditional.default.configure(setup_obj.rspec_config)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacDocker
4
- VERSION = '0.2.0'
4
+ VERSION = '0.4.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-19 00:00:00.000000000 Z
11
+ date: 2021-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eac_ruby_utils
@@ -16,34 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.36'
19
+ version: '0.70'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.36'
26
+ version: '0.70'
27
27
  - !ruby/object:Gem::Dependency
28
- name: eac_ruby_gem_support
28
+ name: eac_templates
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.1'
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: 0.1.1
37
- type: :development
34
+ type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - "~>"
42
39
  - !ruby/object:Gem::Version
43
40
  version: '0.1'
44
- - - ">="
41
+ - !ruby/object:Gem::Dependency
42
+ name: eac_ruby_gem_support
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
45
53
  - !ruby/object:Gem::Version
46
- version: 0.1.1
54
+ version: '0.3'
47
55
  description:
48
56
  email:
49
57
  executables: []
@@ -52,6 +60,7 @@ extra_rdoc_files: []
52
60
  files:
53
61
  - lib/eac_docker.rb
54
62
  - lib/eac_docker/container.rb
63
+ - lib/eac_docker/debug.rb
55
64
  - lib/eac_docker/executables.rb
56
65
  - lib/eac_docker/images.rb
57
66
  - lib/eac_docker/images/base.rb
@@ -60,6 +69,7 @@ files:
60
69
  - lib/eac_docker/images/templatized.rb
61
70
  - lib/eac_docker/registry.rb
62
71
  - lib/eac_docker/rspec.rb
72
+ - lib/eac_docker/rspec/setup_include.rb
63
73
  - lib/eac_docker/version.rb
64
74
  homepage:
65
75
  licenses: []
@@ -79,8 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
89
  - !ruby/object:Gem::Version
80
90
  version: '0'
81
91
  requirements: []
82
- rubyforge_project:
83
- rubygems_version: 2.7.7
92
+ rubygems_version: 3.1.6
84
93
  signing_key:
85
94
  specification_version: 4
86
95
  summary: Put here de description.