indocker 0.3.5 → 0.3.7

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: 0ace9121628e29137ad50db6a6ced1e89a8295d352f4df94292a9bf16dc3febb
4
- data.tar.gz: 031a8379c69ef612d6782e4246f030eb747582b47f28a1eacedb79c5d345b5f8
3
+ metadata.gz: 1d3472a334b23e6fc3ecf88306d9af0a9394a90aec769711492226322e96e2d6
4
+ data.tar.gz: '08150afcc26f9f053290d6abb1160a2a32405fa08d1cb2740b4839f3298f8e74'
5
5
  SHA512:
6
- metadata.gz: 24e0c0e996ceaccd442fb3513eedc4aa037720d6054a9696a9139d75c11262720290c5d2c1cd46545e1065689a9a518ad18c0a1bc2ead53e896db7fc0d81f24b
7
- data.tar.gz: e620e1c14a5cc29e3bacc68cbdf72f9983fe951c510501b3c12703c3e0e8db3a9964af031086f573cf8e4e2101148772c44e4c51b347b590542f967fad04c071
6
+ metadata.gz: a3eeff429884e4f1961e725c97997b9c8c58874c7bb5ba31164e18cc6bc80e0169f82ceb01855dbaed098888397cf94f773c177b3aed4fe72091edfee2b969a5
7
+ data.tar.gz: 14480618981749a870f6acadb503d2cb9cbc08652d55a098c40801bbdcf3e01639d593cb100537c9399ed3df434a59740cf45ca9322939134982a78f0cf2c247
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.1.2
1
+ 3.2.0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- indocker (0.3.2)
4
+ indocker (0.3.6)
5
5
  net-ssh
6
6
 
7
7
  GEM
@@ -11,8 +11,8 @@ GEM
11
11
  diff-lcs (1.5.0)
12
12
  docile (1.4.0)
13
13
  method_source (1.0.0)
14
- net-ssh (7.1.0)
15
- pry (0.14.1)
14
+ net-ssh (7.2.0)
15
+ pry (0.14.2)
16
16
  coderay (~> 1.1)
17
17
  method_source (~> 1.0)
18
18
  rake (12.3.3)
@@ -20,25 +20,25 @@ GEM
20
20
  rspec-core (~> 3.12.0)
21
21
  rspec-expectations (~> 3.12.0)
22
22
  rspec-mocks (~> 3.12.0)
23
- rspec-core (3.12.0)
23
+ rspec-core (3.12.2)
24
24
  rspec-support (~> 3.12.0)
25
- rspec-expectations (3.12.0)
25
+ rspec-expectations (3.12.3)
26
26
  diff-lcs (>= 1.2.0, < 2.0)
27
27
  rspec-support (~> 3.12.0)
28
- rspec-mocks (3.12.0)
28
+ rspec-mocks (3.12.6)
29
29
  diff-lcs (>= 1.2.0, < 2.0)
30
30
  rspec-support (~> 3.12.0)
31
- rspec-support (3.12.0)
31
+ rspec-support (3.12.1)
32
32
  simplecov (0.18.5)
33
33
  docile (~> 1.1)
34
34
  simplecov-html (~> 0.11)
35
35
  simplecov-html (0.12.3)
36
36
 
37
37
  PLATFORMS
38
- ruby
38
+ x86_64-linux
39
39
 
40
40
  DEPENDENCIES
41
- bundler (~> 1.17)
41
+ bundler
42
42
  indocker!
43
43
  pry
44
44
  rake (~> 12.3.3)
@@ -46,4 +46,4 @@ DEPENDENCIES
46
46
  simplecov (~> 0.18.5)
47
47
 
48
48
  BUNDLED WITH
49
- 1.17.3
49
+ 2.4.20
data/indocker.gemspec CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.require_paths = ["lib"]
25
25
 
26
26
  spec.add_dependency "net-ssh"
27
- spec.add_development_dependency "bundler", "~> 1.17"
27
+ spec.add_development_dependency "bundler"
28
28
  spec.add_development_dependency "rake", "~> 12.3.3"
29
29
  spec.add_development_dependency "rspec", "~> 3.0"
30
30
  spec.add_development_dependency "simplecov", "~> 0.18.5"
@@ -4,6 +4,8 @@ class Indocker::Configurations::Configuration
4
4
  attr_reader :registries
5
5
  attr_reader :build_servers
6
6
  attr_reader :global_build_args
7
+ attr_reader :deploy_args
8
+ attr_reader :compile_args
7
9
  attr_reader :images
8
10
  attr_reader :containers
9
11
  attr_reader :volumes
@@ -88,6 +90,14 @@ class Indocker::Configurations::Configuration
88
90
  @global_build_args = hash
89
91
  end
90
92
 
93
+ def set_deploy_args(hash)
94
+ @deploy_args = hash
95
+ end
96
+
97
+ def set_compile_args(hash)
98
+ @compile_args = hash
99
+ end
100
+
91
101
  def add_image(image)
92
102
  @images.push(image)
93
103
  end
@@ -133,6 +133,18 @@ class Indocker::DockerRunArgs
133
133
  args.push("--log-opt max-file=#{max_file}")
134
134
  end
135
135
 
136
+ cap_add = container.get_start_option(:cap_add)
137
+
138
+ if cap_add
139
+ args.push("--cap-add=#{cap_add}")
140
+ end
141
+
142
+ cap_drop = container.get_start_option(:cap_drop)
143
+
144
+ if cap_drop
145
+ args.push("--cap-drop=#{cap_drop}")
146
+ end
147
+
136
148
  health = container.get_start_option(:health) || {}
137
149
 
138
150
  if !health.is_a?(Hash)
@@ -155,6 +167,12 @@ class Indocker::DockerRunArgs
155
167
  args.push("--health-timeout #{health[:timeout]}")
156
168
  end
157
169
 
170
+ if configuration.deploy_args
171
+ configuration.deploy_args.each do |k, v|
172
+ args.push("--#{k}=#{v}")
173
+ end
174
+ end
175
+
158
176
  container.volumes.each do |volume|
159
177
  if volume.is_a?(Indocker::Volumes::Local)
160
178
  args.push("-v #{volume.local_path}:#{volume.path}")
@@ -60,7 +60,7 @@ class Indocker::Images::Image
60
60
  @compile_rpaths = flag_or_rpaths
61
61
  end
62
62
 
63
- @dockerfile = path
63
+ nil
64
64
  end
65
65
 
66
66
  def dockerfile
@@ -2,8 +2,10 @@ require 'fileutils'
2
2
 
3
3
  class Indocker::ServerPools::BuildServerConnection < Indocker::ServerPools::ServerConnection
4
4
  def compile_image_remotely(configuration_name:, image_name:)
5
+ compile_args = @configuration.compile_args ? @configuration.compile_args.map { |k, v| "--compile-arg=\"#{k}=#{v}\"" }.join(" ") : ""
6
+
5
7
  result = exec!(
6
- "cd #{Indocker::IndockerHelper.indocker_dir} && ./bin/remote/compile -C #{configuration_name} -i #{image_name} -s #{@logger.debug? ? '-d' : ''}"
8
+ "cd #{Indocker::IndockerHelper.indocker_dir} && ./bin/remote/compile -C #{configuration_name} -i #{image_name} #{compile_args} -s #{@logger.debug? ? '-d' : ''}"
7
9
  )
8
10
 
9
11
  Indocker::SshResultLogger
@@ -4,8 +4,10 @@ class Indocker::ServerPools::DeployServerConnection < Indocker::ServerPools::Ser
4
4
  debug_options = @logger.debug? ? "-d" : ""
5
5
  force_restart_options = force_restart ? "-f" : ""
6
6
 
7
+ deploy_args = @configuration.deploy_args ? @configuration.deploy_args.map { |k, v| "--deploy-arg=\"#{k}=#{v}\"" }.join(" ") : ""
8
+
7
9
  result = exec!(
8
- "cd #{Indocker::IndockerHelper.indocker_dir} && ./bin/remote/run -C #{configuration_name} -c #{container_name} #{debug_options} #{command_output} #{force_restart_options}"
10
+ "cd #{Indocker::IndockerHelper.indocker_dir} && ./bin/remote/run -C #{configuration_name} -c #{container_name} #{deploy_args} #{debug_options} #{command_output} #{force_restart_options}"
9
11
  )
10
12
 
11
13
  Indocker::SshResultLogger
@@ -1,3 +1,3 @@
1
1
  module Indocker
2
- VERSION = "0.3.5"
2
+ VERSION = "0.3.7"
3
3
  end
data/lib/indocker.rb CHANGED
@@ -345,7 +345,7 @@ module Indocker
345
345
  def deploy(containers: [], skip_tags: [], tags: [], skip_dependent: false,
346
346
  skip_containers: [], servers: [], skip_build: false, skip_deploy: false,
347
347
  force_restart: false, skip_force_restart: [], auto_confirm: false,
348
- require_confirmation: false)
348
+ require_confirmation: false, compile_args: {}, deploy_args: {})
349
349
 
350
350
  deployment_policy = Indocker::DeploymentPolicy.new(
351
351
  deploy_containers: containers,
@@ -362,6 +362,14 @@ module Indocker
362
362
  require_confirmation: require_confirmation,
363
363
  )
364
364
 
365
+ if compile_args
366
+ configuration.set_compile_args(compile_args)
367
+ end
368
+
369
+ if deploy_args
370
+ configuration.set_deploy_args(deploy_args)
371
+ end
372
+
365
373
  Indocker::Launchers::ConfigurationDeployer
366
374
  .new(logger: Indocker.logger, global_logger: Indocker.global_logger)
367
375
  .run(
@@ -390,7 +398,13 @@ module Indocker
390
398
  )
391
399
  end
392
400
 
393
- def compile(images:, skip_dependent:)
401
+ def compile(images:, skip_dependent:, compile_args: {})
402
+ if compile_args
403
+ configuration.set_global_build_args(
404
+ Indocker::HashMerger.deep_merge(compile_args, configuration.global_build_args)
405
+ )
406
+ end
407
+
394
408
  Indocker::Launchers::ImagesCompiler
395
409
  .new(Indocker.logger)
396
410
  .compile(
@@ -400,7 +414,11 @@ module Indocker
400
414
  )
401
415
  end
402
416
 
403
- def run(container_name, force_restart)
417
+ def run(container_name, force_restart, deploy_args: {})
418
+ if deploy_args
419
+ configuration.set_deploy_args(deploy_args)
420
+ end
421
+
404
422
  Indocker::Launchers::ContainerRunner
405
423
  .new(Indocker.logger)
406
424
  .run(
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: indocker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Gatiyatov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-05-11 00:00:00.000000000 Z
12
+ date: 2023-10-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: net-ssh
@@ -29,16 +29,16 @@ dependencies:
29
29
  name: bundler
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: '1.17'
34
+ version: '0'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: '1.17'
41
+ version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rake
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
223
  requirements: []
224
- rubygems_version: 3.3.24
224
+ rubygems_version: 3.4.1
225
225
  signing_key:
226
226
  specification_version: 4
227
227
  summary: Docker Containers Deployment