eac_docker 0.2.1 → 0.4.1

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: 545512f3dd607d1e114604b58871a5ed17caab02e685e38e5612c00c498aa5b9
4
- data.tar.gz: c044921d80cfa1397a702833a65580d66786892a675b6e2e26fc46c6487c5ae6
3
+ metadata.gz: 7a0db3a2d136f74a3f4794e70a5641bb10d679be7a21731c67a8869b282d3f51
4
+ data.tar.gz: 496a58ae61c00001258bf0886de2f02a30d127384b0d822c408251d2e4770c26
5
5
  SHA512:
6
- metadata.gz: c5c9628a9aed8aaf7b7a37cb308b7bce2d2c31a63a30319b7178af5e284866b134c2b527b22abd68b0a74e9191dfa8f0de89e3e85ac555b9138c5aec50655baa
7
- data.tar.gz: 8b4a9a6ed89407f2847ac1c9d0d968481b0eb1fba5d94cb2bc26bd6db2ec90e5687603ccf76f68087f8147330b73b335bb95325b2993d86883e61057a7fd9cb1
6
+ metadata.gz: 61ae5de6921486e25d33e2718c80dbd15b2634985e8f0fb1d2bae3222f07846392ef3b4b1f971d3e9b32475bd473f9d402102a8634920866959670fa4a9dec89
7
+ data.tar.gz: 128a951fb2c98561b707aca8926a3289139fb4835c42de07ee9339a0802e33680a1b6aabc9d450ec8b9712364d6551668996ce9068f442d3c847c30885abb7b9
@@ -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,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_docker/executables'
4
+
5
+ module EacDocker
6
+ module Rspec
7
+ module Setup
8
+ def self.extended(obj)
9
+ obj.setup_conditional_docker_executable
10
+ end
11
+
12
+ def setup_conditional_docker_executable
13
+ conditional(:docker) { ::EacDocker::Executables.docker.validate }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacDocker
4
- VERSION = '0.2.1'
4
+ VERSION = '0.4.1'
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.1
4
+ version: 0.4.1
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: 2021-05-06 00:00:00.000000000 Z
11
+ date: 2021-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eac_ruby_utils
@@ -16,28 +16,48 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.36'
19
+ version: '0.74'
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.74'
27
+ - !ruby/object:Gem::Dependency
28
+ name: eac_templates
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: eac_ruby_gem_support
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '0.2'
47
+ version: '0.3'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 0.3.3
34
51
  type: :development
35
52
  prerelease: false
36
53
  version_requirements: !ruby/object:Gem::Requirement
37
54
  requirements:
38
55
  - - "~>"
39
56
  - !ruby/object:Gem::Version
40
- version: '0.2'
57
+ version: '0.3'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.3.3
41
61
  description:
42
62
  email:
43
63
  executables: []
@@ -46,6 +66,7 @@ extra_rdoc_files: []
46
66
  files:
47
67
  - lib/eac_docker.rb
48
68
  - lib/eac_docker/container.rb
69
+ - lib/eac_docker/debug.rb
49
70
  - lib/eac_docker/executables.rb
50
71
  - lib/eac_docker/images.rb
51
72
  - lib/eac_docker/images/base.rb
@@ -54,6 +75,7 @@ files:
54
75
  - lib/eac_docker/images/templatized.rb
55
76
  - lib/eac_docker/registry.rb
56
77
  - lib/eac_docker/rspec.rb
78
+ - lib/eac_docker/rspec/setup.rb
57
79
  - lib/eac_docker/version.rb
58
80
  homepage:
59
81
  licenses: []
@@ -73,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
95
  - !ruby/object:Gem::Version
74
96
  version: '0'
75
97
  requirements: []
76
- rubygems_version: 3.0.9
98
+ rubygems_version: 3.1.6
77
99
  signing_key:
78
100
  specification_version: 4
79
101
  summary: Put here de description.