rake-tasks-docker 0.1.0 → 0.2.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 +4 -4
- data/.gitignore +3 -0
- data/lib/rake-tasks-docker/rake_task.rb +10 -4
- data/lib/rake-tasks-docker/services.rb +28 -3
- data/lib/rake-tasks-docker/version.rb +1 -1
- metadata +3 -3
- data/Gemfile.lock +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69093da94cc65614593c83f1b9197e93cb5898f3
|
4
|
+
data.tar.gz: a41ee58f6119697b2b497abaa15a7cc82ab74593
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5171f03053091a6c430d80bfd3d29235d8ca665c1eb2d0b8063b7cd7de3e71bbec75280bb9489a71464a01f861927c379f0cfff388d99c313a29f626a2359cc
|
7
|
+
data.tar.gz: 48dafc6a1247117dcc22b69cf7d12c24c313226c7c838c50352c4998d149742300812c1b9e26773caa2b317937da1287b3d7e34c97a65162401e3064786b8e77
|
data/.gitignore
ADDED
@@ -4,14 +4,12 @@ require 'timeout'
|
|
4
4
|
require_relative 'services'
|
5
5
|
|
6
6
|
namespace :docker do
|
7
|
-
task :status, :services do |task,
|
8
|
-
services = RakeTasksDocker::Services.new(args[:services] ? args[:services].split(' ') : [])
|
7
|
+
RakeTasksDocker::Services.task :status, :services do |task, services|
|
9
8
|
puts services.status
|
10
9
|
exit(1) if services.status != 'started'
|
11
10
|
end
|
12
11
|
|
13
|
-
task :up, :services do |task,
|
14
|
-
services = RakeTasksDocker::Services.new(args[:services] ? args[:services].split(' ') : [])
|
12
|
+
RakeTasksDocker::Services.task :up, :services do |task, services|
|
15
13
|
pid = nil
|
16
14
|
|
17
15
|
begin
|
@@ -41,4 +39,12 @@ namespace :docker do
|
|
41
39
|
Process.kill('TERM', pid) unless pid.nil?
|
42
40
|
end
|
43
41
|
end
|
42
|
+
|
43
|
+
RakeTasksDocker::Services.task :stop, :services do |task, services|
|
44
|
+
Process.wait(services.stop)
|
45
|
+
end
|
46
|
+
|
47
|
+
RakeTasksDocker::Services.task :down do |task, services|
|
48
|
+
Process.wait(services.down)
|
49
|
+
end
|
44
50
|
end
|
@@ -2,12 +2,21 @@ require 'json'
|
|
2
2
|
|
3
3
|
module RakeTasksDocker
|
4
4
|
class Services
|
5
|
+
def self.from_args(args)
|
6
|
+
self.new(args[:services] ? args[:services].split(' ') : [])
|
7
|
+
end
|
8
|
+
|
5
9
|
def initialize(services = [])
|
6
10
|
@services = services
|
7
11
|
end
|
8
12
|
|
13
|
+
def self.task(*task_args, &block)
|
14
|
+
Rake::Task.define_task *task_args do |task, args|
|
15
|
+
block.call task, self.from_args(args)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
9
19
|
def refresh
|
10
|
-
containers = `docker-compose ps -q #{@services.join(' ')}`.split("\n")
|
11
20
|
@inspections = []
|
12
21
|
containers.each do |container_ref|
|
13
22
|
@inspections << JSON.parse(`docker inspect #{container_ref}`).first
|
@@ -32,7 +41,9 @@ module RakeTasksDocker
|
|
32
41
|
end
|
33
42
|
|
34
43
|
def status_from_states(states)
|
35
|
-
if states.empty?
|
44
|
+
if states.empty?
|
45
|
+
return 'not started'
|
46
|
+
elsif !(states.values & ['exited (non-zero exit code)', 'running (unhealthy)', 'restarting', 'dead']).empty?
|
36
47
|
return 'failed'
|
37
48
|
elsif !(states.values & ['created', 'running (starting)']).empty?
|
38
49
|
return 'starting'
|
@@ -53,5 +64,19 @@ module RakeTasksDocker
|
|
53
64
|
def logs
|
54
65
|
Process.spawn 'docker-compose', 'logs', '-f', *@services
|
55
66
|
end
|
67
|
+
|
68
|
+
def stop
|
69
|
+
Process.spawn 'docker-compose', 'stop', *@services
|
70
|
+
end
|
71
|
+
|
72
|
+
def down
|
73
|
+
Process.spawn 'docker-compose', 'down', '--volumes', '--rmi', 'local'
|
74
|
+
end
|
75
|
+
|
76
|
+
protected
|
77
|
+
|
78
|
+
def containers
|
79
|
+
`docker-compose ps -q #{@services.join(' ')}`.split("\n")
|
80
|
+
end
|
56
81
|
end
|
57
|
-
end
|
82
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake-tasks-docker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Thompson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -51,9 +51,9 @@ executables: []
|
|
51
51
|
extensions: []
|
52
52
|
extra_rdoc_files: []
|
53
53
|
files:
|
54
|
+
- ".gitignore"
|
54
55
|
- ".rspec"
|
55
56
|
- Gemfile
|
56
|
-
- Gemfile.lock
|
57
57
|
- Rakefile
|
58
58
|
- lib/rake-tasks-docker.rb
|
59
59
|
- lib/rake-tasks-docker/rake_task.rb
|
data/Gemfile.lock
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
rake-tasks-docker (0.1.0)
|
5
|
-
rake (>= 10.0, <= 12)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: https://rubygems.org/
|
9
|
-
specs:
|
10
|
-
diff-lcs (1.3)
|
11
|
-
rake (12.0.0)
|
12
|
-
rspec (3.6.0)
|
13
|
-
rspec-core (~> 3.6.0)
|
14
|
-
rspec-expectations (~> 3.6.0)
|
15
|
-
rspec-mocks (~> 3.6.0)
|
16
|
-
rspec-core (3.6.0)
|
17
|
-
rspec-support (~> 3.6.0)
|
18
|
-
rspec-expectations (3.6.0)
|
19
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
20
|
-
rspec-support (~> 3.6.0)
|
21
|
-
rspec-mocks (3.6.0)
|
22
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
23
|
-
rspec-support (~> 3.6.0)
|
24
|
-
rspec-support (3.6.0)
|
25
|
-
|
26
|
-
PLATFORMS
|
27
|
-
ruby
|
28
|
-
|
29
|
-
DEPENDENCIES
|
30
|
-
rake-tasks-docker!
|
31
|
-
rspec (~> 3.6)
|
32
|
-
|
33
|
-
BUNDLED WITH
|
34
|
-
1.12.5
|