indocker 0.3.5 → 0.3.7

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: 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