indocker 0.1.1 → 0.1.6

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: 9b625051ee86d20ec224e8f277b5fc884ce7c02ef671a18533836e9e654c1fcf
4
- data.tar.gz: 1867b3210ab2134bd52366a2ded1abc0e24ef122ecc8337a5213f5f0460526a5
3
+ metadata.gz: 69e124a571ae32781f28cbe640d3f406914c9cbbf88ebe5178d31280844c0ea6
4
+ data.tar.gz: 78f3b3a06fd08188b48ad8fedae468a62ea6d9dc348442bf22fc9fdd1b6cf93d
5
5
  SHA512:
6
- metadata.gz: 8298028d5eea2ac46b1ebf67fb5b19b0846c96a1bc731b6717869412f802d7781d3ee80fa15e7ae75336f5fa878fa9ea90fcfbb5e7a668bcc500d2f5bc4a97d5
7
- data.tar.gz: 9f2a4091d1def4b6f86aef36c240a5f5439ee0c604f516b7f52b215b7285b53cbe41800530e517ee97159bda7b99665bfa9a1cf92371e7011c9671f15ddf20b1
6
+ metadata.gz: d169e30efdcf9ae6c97bf01a836be681c9bdc6cf9515fc61d30b4ae57ad9368a96e7619703fe0ad54cba968123de6ce6da6b96f1272cd7eab95ea73e7ed6416c
7
+ data.tar.gz: e4b61302d306cc10d85edfffd37db51b668399a6c0ebb214451693394318b389bcf106fc116ee9f2ad1cf17f301c9ba17b1b4d6031a1218351f6c5210b3bd7b0
@@ -1,12 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- indocker (0.1.1)
4
+ indocker (0.1.6)
5
+ net-ssh
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
9
10
  diff-lcs (1.3)
11
+ net-ssh (6.1.0)
10
12
  rake (10.5.0)
11
13
  rspec (3.9.0)
12
14
  rspec-core (~> 3.9.0)
data/README.md CHANGED
@@ -4,29 +4,16 @@ Docker Containers Deployment
4
4
 
5
5
  ## Installation
6
6
 
7
- Add this line to your application's Gemfile:
8
-
9
- ```ruby
10
- gem 'indocker'
7
+ ```
8
+ $ gem install indocker
11
9
  ```
12
10
 
13
- And then execute:
14
-
15
- $ bundle
16
-
17
- Or install it yourself as:
18
-
19
- $ gem install indocker
20
-
21
- ## Usage
22
-
23
- TODO: Write usage instructions here
24
-
25
- ## Development
26
-
27
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
11
+ ## Development: Launch example app
28
12
 
29
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
13
+ ```ruby
14
+ cd example
15
+ bundle exec indocker/bin/deploy -C dev -c ruby -d
16
+ ```
30
17
 
31
18
  ## License
32
19
 
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require_relative 'utils/configurations'
5
+
6
+ configurations = list_configurations(File.expand_path(File.join(__dir__, '../configurations')))
7
+
8
+ ARGV << '-h' if ARGV.empty?
9
+
10
+ options = {
11
+ skip_build: false,
12
+ force_restart: false,
13
+ skip_tags: [],
14
+ skip_force_restart: [],
15
+ }
16
+
17
+ OptionParser.new do |opts|
18
+ opts.banner = "Usage: indocker/bin/deploy [options]"
19
+
20
+ opts.on("-d", "--debug", "Debug mode") do |val|
21
+ options[:debug] = true
22
+ end
23
+
24
+ opts.on("-C", "--configuration REQUIRED", String, "Configuration name") do |val|
25
+ options[:configuration] = val
26
+ end
27
+
28
+ opts.on("-c", "--container OPTIONAL", String, "Deploy by container name") do |val|
29
+ options[:containers] ||= []
30
+ options[:containers].push(val.to_sym)
31
+ end
32
+
33
+ opts.on("-t", "--tag OPTIONAL", String, "Deploy containers by tag") do |val|
34
+ options[:tags] ||= []
35
+ options[:tags].push(val)
36
+ end
37
+
38
+ opts.on("-s", "--skip OPTIONAL", String, "Skip container during deployment") do |val|
39
+ options[:skip_containers] ||= []
40
+ options[:skip_containers] << val.to_sym
41
+ end
42
+
43
+ opts.on("-S", "--server OPTIONAL", String, "Deploy containers that include specfic server") do |val|
44
+ options[:servers] ||= []
45
+ options[:servers].push(val.to_sym)
46
+ end
47
+
48
+ opts.on("-D", "--skip-dependent", "Do not deploy dependent containers") do |val|
49
+ options[:skip_dependent] = true
50
+ end
51
+
52
+ opts.on("-f", "--force-restart", "Force to restart each container") do |val|
53
+ options[:force_restart] = true
54
+ end
55
+
56
+ opts.on("-F", "--skip-force-restart OPTIONAL", "Skip force restart of specific container for force restart mode") do |val|
57
+ options[:skip_force_restart].push(val.to_sym)
58
+ end
59
+
60
+ opts.on("-B", "--skip-build", "Skip image build") do |val|
61
+ options[:skip_build] = true
62
+ end
63
+
64
+ opts.on("-y", "--auto-confirm", "Automatically confirm deployment") do |val|
65
+ options[:auto_confirm] = true
66
+ end
67
+
68
+ opts.on("-r", "--require-confirmation", "Require deploy confirmation") do |val|
69
+ options[:require_confirmation] = true
70
+ end
71
+
72
+ opts.on("-T", "--skip-tag OPTIONAL", "Skip containers tagged by specific tags") do |val|
73
+ options[:skip_tags].push(val)
74
+ end
75
+
76
+ opts.on_tail("-h", "--help", "Show help") do
77
+ puts opts
78
+ exit
79
+ end
80
+ end.parse!
81
+
82
+ if !options.has_key?(:configuration)
83
+ puts "You should specify configuration using -C or --configuration option.\nAvailable configurations: #{configurations.sort.join(', ')}"
84
+ exit 1
85
+ end
86
+
87
+ if !configurations.include?(options[:configuration])
88
+ puts "Invalid configuration provided: #{options[:configuration]}.\nAvailable configurations: #{configurations.inspect}"
89
+ exit 1
90
+ end
91
+
92
+ begin
93
+ require 'indocker'
94
+ rescue LoadError
95
+ puts "InDocker has been moved into a separate gem. Please install using `gem install indocker`"
96
+ exit
97
+ end
98
+
99
+ if options[:debug]
100
+ Indocker.set_log_level(Logger::DEBUG)
101
+ else
102
+ Indocker.set_log_level(Logger::INFO)
103
+ end
104
+
105
+ Indocker.set_configuration_name(options[:configuration])
106
+ require_relative '../setup'
107
+
108
+ Indocker.deploy(
109
+ containers: options[:containers] || [],
110
+ tags: options[:tags] || [],
111
+ skip_containers: options[:skip_containers] || [],
112
+ skip_dependent: !!options[:skip_dependent],
113
+ servers: options[:servers] || [],
114
+ skip_build: options[:skip_build],
115
+ force_restart: options[:force_restart],
116
+ skip_tags: options[:skip_tags] || [],
117
+ skip_force_restart: options[:skip_force_restart] || [],
118
+ auto_confirm: !!options[:auto_confirm],
119
+ require_confirmation: !!options[:require_confirmation],
120
+ )
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require_relative '../utils/configurations'
5
+
6
+ configurations = list_configurations(File.expand_path(File.join(__dir__, '../../configurations')))
7
+
8
+ ARGV << '-h' if ARGV.empty?
9
+
10
+ options = {}
11
+
12
+ OptionParser.new do |opts|
13
+ opts.banner = "Usage: indocker/bin/remote/compile [options] (only on remote server)"
14
+
15
+ opts.on("-C", "--configuration REQUIRED", String, "Configuration name") do |val|
16
+ options[:configuration] = val
17
+ end
18
+
19
+ opts.on("-d", "--debug", "Debug mode") do |val|
20
+ options[:debug] = true
21
+ end
22
+
23
+ opts.on("-i", "--image REQUIRED", String, "Image to be compiled") do |val|
24
+ options[:images] ||= []
25
+ options[:images].push(val.to_sym)
26
+ end
27
+
28
+ opts.on("-s", "--skip-dependent", String, "Do not compile dependent images") do |val|
29
+ options[:skip_dependent] = true
30
+ end
31
+
32
+ opts.on_tail("-h", "--help", "Show help") do
33
+ puts opts
34
+ exit
35
+ end
36
+ end.parse!
37
+
38
+ if !options.has_key?(:configuration)
39
+ puts "You should specify configuration using -C or --configuration option.\nAvailable configurations: #{configurations.sort.join(', ')}"
40
+ exit 1
41
+ end
42
+
43
+ if !configurations.include?(options[:configuration])
44
+ puts "Invalid configuration provided: #{options[:configuration]}.\nAvailable configurations: #{configurations.inspect}"
45
+ exit 1
46
+ end
47
+
48
+ if !options.has_key?(:images)
49
+ puts "At least one image should be provided"
50
+ end
51
+
52
+ begin
53
+ require 'indocker'
54
+ rescue LoadError
55
+ puts "InDocker has been moved into a separate gem. Please install using `gem install indocker`"
56
+ exit 1
57
+ end
58
+
59
+ if options[:debug]
60
+ Indocker.set_log_level(Logger::DEBUG)
61
+ else
62
+ Indocker.set_log_level(Logger::INFO)
63
+ end
64
+
65
+ Indocker.set_configuration_name(options[:configuration])
66
+ require_relative '../../setup'
67
+
68
+
69
+ Indocker.compile(
70
+ images: options[:images] || [],
71
+ skip_dependent: !!options[:skip_dependent]
72
+ )
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require_relative '../utils/configurations'
5
+
6
+ configurations = list_configurations(File.expand_path(File.join(__dir__, '../../configurations')))
7
+
8
+ ARGV << '-h' if ARGV.empty?
9
+
10
+ options = {
11
+ force_restart: false,
12
+ }
13
+
14
+ OptionParser.new do |opts|
15
+ opts.banner = "Usage: indocker/bin/remote/run [options] (only on remove server)"
16
+
17
+ opts.on("-C", "--configuration REQUIRED", String, "Configuration name") do |val|
18
+ options[:configuration] = val
19
+ end
20
+
21
+ opts.on("-d", "--debug", "Debug mode") do |val|
22
+ options[:debug] = true
23
+ end
24
+
25
+ opts.on("-c", "--container REQUIRED", String, "Container name") do |val|
26
+ options[:container] = val.to_sym
27
+ end
28
+
29
+ opts.on("-f", "--force-restart", "Force to restart each container") do |val|
30
+ options[:force_restart] = true
31
+ end
32
+
33
+ opts.on_tail("-h", "--help", "Show help") do
34
+ puts opts
35
+ exit
36
+ end
37
+ end.parse!
38
+
39
+ if !options.has_key?(:configuration)
40
+ puts "You should specify configuration using -C or --configuration option.\nAvailable configurations: #{configurations.sort.join(', ')}"
41
+ exit 1
42
+ end
43
+
44
+ if !configurations.include?(options[:configuration])
45
+ puts "Invalid configuration provided: #{options[:configuration]}.\nAvailable configurations: #{configurations.inspect}"
46
+ exit 1
47
+ end
48
+
49
+ begin
50
+ require 'indocker'
51
+ rescue LoadError
52
+ puts "InDocker has been moved into a separate gem. Please install using `gem install indocker`"
53
+ exit 1
54
+ end
55
+
56
+ if options[:debug]
57
+ Indocker.set_log_level(Logger::DEBUG)
58
+ else
59
+ Indocker.set_log_level(Logger::INFO)
60
+ end
61
+
62
+ Indocker.set_configuration_name(options[:configuration])
63
+ require_relative '../../setup'
64
+
65
+
66
+ Indocker.run(options[:container], options[:force_restart])
@@ -0,0 +1,3 @@
1
+ def list_configurations(configurations_dir)
2
+ Dir[File.join(configurations_dir, '**/*.rb')].map {|c| c.split('/').last.gsub('.rb', '')}
3
+ end
@@ -0,0 +1,10 @@
1
+ FROM ruby:2.5.0
2
+
3
+ RUN dpkg --add-architecture i386 \
4
+ && apt-get update \
5
+ && apt-get install vim curl -y \
6
+ && apt-get clean \
7
+ && rm -rf /var/lib/apt/lists/*
8
+
9
+ RUN mkdir /app
10
+ WORKDIR /app
@@ -0,0 +1,5 @@
1
+ Indocker
2
+ .define_container(:ruby)
3
+ .tags('ruby', 'console=true')
4
+ .image(:ruby)
5
+ .networks(:app_net)
@@ -0,0 +1,3 @@
1
+ Indocker
2
+ .define_image(:ruby)
3
+ .registry(:default)
@@ -0,0 +1,9 @@
1
+ Indocker
2
+ .build_configuration(:dev)
3
+ .use_registry(:dev, as: :default)
4
+ .use_build_server(:local_bs)
5
+ .enabled_containers(
6
+ ruby: {
7
+ servers: [:localhost],
8
+ }
9
+ )
@@ -0,0 +1,8 @@
1
+ Indocker.add_build_server(
2
+ Indocker::BuildServer.new(
3
+ name: :local_bs,
4
+ host: 'localhost',
5
+ user: `whoami`.strip,
6
+ port: 22
7
+ )
8
+ )
@@ -0,0 +1 @@
1
+ Indocker.define_network(:app_net)
@@ -0,0 +1,3 @@
1
+ Indocker.add_registry(
2
+ Indocker::Registries::Local.new(:dev)
3
+ )
@@ -0,0 +1,8 @@
1
+ Indocker.add_server(
2
+ Indocker::Server.new(
3
+ name: :localhost,
4
+ host: 'localhost',
5
+ user: `whoami`.strip,
6
+ port: 22
7
+ )
8
+ )
@@ -0,0 +1,24 @@
1
+ require 'indocker'
2
+
3
+ root_dir = File.join(__dir__, '..', '..')
4
+
5
+ Indocker.set_root_dir(__dir__)
6
+ Indocker.set_deploy_dir(File.join(root_dir, 'tmp', 'deployment'))
7
+
8
+ Indocker.set_dockerignore [
9
+ 'Dockerfile',
10
+ '.DS_Store',
11
+ '**/.DS_Store',
12
+ '**/*.log',
13
+ '.vscode',
14
+ 'tmp',
15
+ ]
16
+
17
+ require_relative 'infrastructure/registries'
18
+ require_relative 'infrastructure/servers'
19
+ require_relative 'infrastructure/build_servers'
20
+ require_relative 'infrastructure/networks'
21
+
22
+ Indocker.set_bounded_contexts_dir(File.join(__dir__, 'bounded_contexts'))
23
+
24
+ require_relative "configurations/#{Indocker.configuration_name}"
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
+ spec.add_dependency "net-ssh"
26
27
  spec.add_development_dependency "bundler", "~> 1.17"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
28
29
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -67,13 +67,15 @@ class Indocker::ConfigurationDeployer
67
67
  )
68
68
 
69
69
  remote_operations = sync_indocker(servers)
70
+ wait_remote_operations(remote_operations)
70
71
 
72
+ remote_operations = sync_env_files(deploy_servers, configuration.env_files)
71
73
  wait_remote_operations(remote_operations)
72
74
 
73
- remote_operations += sync_env_files(deploy_servers, configuration.env_files)
74
- remote_operations += pull_repositories(clonner, build_servers, configuration.repositories)
75
- remote_operations += sync_artifacts(clonner, configuration.artifact_servers)
75
+ remote_operations = pull_repositories(clonner, build_servers, configuration.repositories)
76
+ wait_remote_operations(remote_operations)
76
77
 
78
+ remote_operations = sync_artifacts(clonner, configuration.artifact_servers)
77
79
  wait_remote_operations(remote_operations)
78
80
 
79
81
  update_crontab_redeploy_rules(configuration, build_servers.first)
@@ -380,33 +382,35 @@ class Indocker::ConfigurationDeployer
380
382
  @progress.start_syncing_artifact(server, artifact)
381
383
 
382
384
  thread = Thread.new do
383
- session = Indocker::SshSession.new(
384
- host: server.host,
385
- user: server.user,
386
- port: server.port,
387
- logger: @logger
388
- )
385
+ server.synchronize do
386
+ session = Indocker::SshSession.new(
387
+ host: server.host,
388
+ user: server.user,
389
+ port: server.port,
390
+ logger: @logger
391
+ )
389
392
 
390
- @logger.info("Pulling git artifact #{artifact.name.to_s.green} for #{server.user}@#{server.host}")
391
- result = clonner.clone(session, artifact.repository)
393
+ @logger.info("Pulling git artifact #{artifact.name.to_s.green} for #{server.user}@#{server.host}")
394
+ result = clonner.clone(session, artifact.repository)
392
395
 
393
- if result.exit_code != 0
394
- @logger.error("Artifact repository :#{artifact.repository.name} was not clonned")
395
- @logger.error(result.stderr_data)
396
- exit 1
397
- end
396
+ if result.exit_code != 0
397
+ @logger.error("Artifact repository :#{artifact.repository.name} was not clonned")
398
+ @logger.error(result.stderr_data)
399
+ exit 1
400
+ end
398
401
 
399
- source_path = File.join(artifact.repository.clone_path, artifact.source_path)
400
- result = session.exec!("mkdir -p #{artifact.target_path}")
401
- result = session.exec!("cp -r #{source_path} #{artifact.target_path}")
402
+ source_path = File.join(artifact.repository.clone_path, artifact.source_path)
403
+ result = session.exec!("mkdir -p #{artifact.target_path}")
404
+ result = session.exec!("cp -r #{source_path} #{artifact.target_path}")
402
405
 
403
- if !result.success?
404
- @logger.error(result.stdout_data)
405
- @logger.error(result.stderr_data)
406
- exit 1
407
- end
406
+ if !result.success?
407
+ @logger.error(result.stdout_data)
408
+ @logger.error(result.stderr_data)
409
+ exit 1
410
+ end
408
411
 
409
- @progress.finish_syncing_artifact(server, artifact)
412
+ @progress.finish_syncing_artifact(server, artifact)
413
+ end
410
414
  end
411
415
 
412
416
  RemoteOperation.new(thread, server, :artifact_sync)
@@ -14,9 +14,8 @@ class Indocker::ContextArgs
14
14
  end
15
15
 
16
16
  value = @context_args.fetch(name) do
17
- Indocker.logger.error("build arg '#{format_arg(name)}' is not defined#{@container ? " for container :#{@container.name}" : ""}")
18
- Indocker.logger.error("available args: #{@context_args.inspect}")
19
- exit 1
17
+ Indocker.logger.warn("build arg '#{format_arg(name)}' is not defined#{@container ? " for container :#{@container.name}" : ""}")
18
+ Indocker.logger.warn("available args: #{@context_args.inspect}")
20
19
  end
21
20
 
22
21
  if value.is_a?(Hash)
@@ -60,6 +60,14 @@ class Indocker::DockerRunArgs
60
60
  end
61
61
  end
62
62
 
63
+ sysctl = container.get_start_option(:sysctl)
64
+
65
+ if sysctl
66
+ Array(sysctl).each do |val|
67
+ args.push("--sysctl #{val}")
68
+ end
69
+ end
70
+
63
71
  if container.is_daemonized?
64
72
  args.push("--detach")
65
73
  end
@@ -10,6 +10,8 @@ class Indocker::Repositories::Clonner
10
10
  raise ArgumenError.new("only git repositories should be clonned") if !repository.is_git?
11
11
 
12
12
  session.exec!("rm -rf #{repository.clone_path} && mkdir -p #{repository.clone_path}")
13
- session.exec!("git clone -b #{repository.branch} --depth 1 #{repository.remote_url} #{repository.clone_path}")
13
+
14
+ git_command = "git clone -b #{repository.branch} --depth 1 #{repository.remote_url} #{repository.clone_path}"
15
+ session.exec!("ssh-agent bash -c 'ssh-add ~/.ssh/#{repository.ssh_key}; #{git_command}'")
14
16
  end
15
17
  end
@@ -1,13 +1,16 @@
1
1
  class Indocker::Repositories::Git < Indocker::Repositories::Abstract
2
- attr_reader :remote_url, :remote_name, :email, :password, :branch
2
+ attr_reader :remote_url, :remote_name, :email, :password, :branch, :ssh_key
3
3
 
4
- def setup(remote_name:, remote_url:, email: nil, password: nil, branch:, clone_path: nil)
4
+ DEFAULT_SSH_KEY = "id_rsa"
5
+
6
+ def setup(remote_name:, remote_url:, email: nil, password: nil, branch:, clone_path: nil, ssh_key: DEFAULT_SSH_KEY)
5
7
  @remote_name = remote_name
6
8
  @remote_url = remote_url
7
9
  @email = email
8
10
  @password = password
9
11
  @branch = branch
10
12
  @clone_path = clone_path
13
+ @ssh_key = ssh_key
11
14
  self
12
15
  end
13
16
 
@@ -17,4 +17,14 @@ class Indocker::Server
17
17
  super
18
18
  end
19
19
  end
20
+
21
+ def synchronize(&block)
22
+ semaphore.synchronize do
23
+ block.call if block_given?
24
+ end
25
+ end
26
+
27
+ def semaphore
28
+ @semaphore ||= Mutex.new
29
+ end
20
30
  end
@@ -1,3 +1,3 @@
1
1
  module Indocker
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,16 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: indocker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Gatiyatov
8
8
  - Iskander Khaziev
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-01-10 00:00:00.000000000 Z
12
+ date: 2020-07-01 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: net-ssh
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: bundler
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -70,6 +84,19 @@ files:
70
84
  - Rakefile
71
85
  - bin/console
72
86
  - bin/setup
87
+ - example/indocker/bin/deploy
88
+ - example/indocker/bin/remote/compile
89
+ - example/indocker/bin/remote/run
90
+ - example/indocker/bin/utils/configurations.rb
91
+ - example/indocker/bounded_contexts/shared/ruby/Dockerfile
92
+ - example/indocker/bounded_contexts/shared/ruby/container.rb
93
+ - example/indocker/bounded_contexts/shared/ruby/image.rb
94
+ - example/indocker/configurations/dev.rb
95
+ - example/indocker/infrastructure/build_servers.rb
96
+ - example/indocker/infrastructure/networks.rb
97
+ - example/indocker/infrastructure/registries.rb
98
+ - example/indocker/infrastructure/servers.rb
99
+ - example/indocker/setup.rb
73
100
  - indocker.gemspec
74
101
  - lib/indocker.rb
75
102
  - lib/indocker/artifacts/git.rb
@@ -132,7 +159,7 @@ homepage: https://github.com/ArtStation/indocker
132
159
  licenses:
133
160
  - MIT
134
161
  metadata: {}
135
- post_install_message:
162
+ post_install_message:
136
163
  rdoc_options: []
137
164
  require_paths:
138
165
  - lib
@@ -147,8 +174,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
174
  - !ruby/object:Gem::Version
148
175
  version: '0'
149
176
  requirements: []
150
- rubygems_version: 3.0.6
151
- signing_key:
177
+ rubygems_version: 3.0.8
178
+ signing_key:
152
179
  specification_version: 4
153
180
  summary: Docker Containers Deployment
154
181
  test_files: []