eac_docker 0.2.0 → 0.4.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.
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.