mcrain 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/mcrain.rb +1 -1
- data/lib/mcrain/base.rb +1 -1
- data/lib/mcrain/{boot2docker.rb → docker_machine.rb} +18 -9
- data/lib/mcrain/riak.rb +1 -1
- data/lib/mcrain/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32c04fa1f39c69a60b478fbc2b705fff5f9be98a
|
4
|
+
data.tar.gz: 02d9789d7754370e6efefccaf76b3eb318daa733
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ffa2ac30980d2e94509a8dbfda57c957e46ac9235e0ba12d4a20abb226e1cc8006326da3c7c9fa877d380b1af05d75f23fa3e76e6f2abe54b48155221556d44
|
7
|
+
data.tar.gz: 10c42352c1e25d7596dd2a975a189bbac5c862fb199084da4aad286d75190a20393a43620ca5574fce0693b6ca14e049169f1919b5716d50cbc6ae97ce82d15d
|
data/README.md
CHANGED
@@ -7,13 +7,13 @@ It supports redis, rabbitmq and riak (stand alone node or clustering) currently.
|
|
7
7
|
|
8
8
|
## Prerequisite
|
9
9
|
|
10
|
-
### With
|
10
|
+
### With docker-machine
|
11
11
|
|
12
12
|
- [install docker into Mac](https://docs.docker.com/installation/mac/)
|
13
13
|
- [install docker into Windows](https://docs.docker.com/installation/windows/)
|
14
14
|
|
15
15
|
|
16
|
-
### Without
|
16
|
+
### Without docker-machine
|
17
17
|
|
18
18
|
The docker daemon must be started with tcp socket option like `-H tcp://0.0.0.0:2375`.
|
19
19
|
Because mcrain uses [Docker Remote API](https://docs.docker.com/reference/api/docker_remote_api/).
|
data/lib/mcrain.rb
CHANGED
@@ -81,7 +81,7 @@ module Mcrain
|
|
81
81
|
end
|
82
82
|
|
83
83
|
autoload :Base, 'mcrain/base'
|
84
|
-
autoload :
|
84
|
+
autoload :DockerMachine, 'mcrain/docker_machine'
|
85
85
|
autoload :ContainerController, 'mcrain/container_controller'
|
86
86
|
autoload :ClientProvider, 'mcrain/client_provider'
|
87
87
|
|
data/lib/mcrain/base.rb
CHANGED
@@ -10,12 +10,16 @@ require 'net/ssh'
|
|
10
10
|
require 'docker'
|
11
11
|
|
12
12
|
module Mcrain
|
13
|
-
module
|
13
|
+
module DockerMachine
|
14
14
|
|
15
15
|
class << self
|
16
16
|
attr_accessor :certs_dir
|
17
|
+
|
18
|
+
def docker_machine_name
|
19
|
+
ENV['DOCKER_MACHINE_NAME']
|
20
|
+
end
|
17
21
|
end
|
18
|
-
self.certs_dir = File.expand_path('.
|
22
|
+
self.certs_dir = File.expand_path('.docker/machine/certs', ENV["HOME"])
|
19
23
|
|
20
24
|
module_function
|
21
25
|
|
@@ -25,10 +29,12 @@ module Mcrain
|
|
25
29
|
|
26
30
|
def preparing_command
|
27
31
|
return "" unless used?
|
28
|
-
|
29
|
-
|
32
|
+
name = Mcrain::DockerMachine.docker_machine_name
|
33
|
+
unless `docker-machine status #{name}`.strip.downcase == "running"
|
34
|
+
raise "docker-machine #{name} is not running. Please `docker-machine start #{name}`"
|
30
35
|
end
|
31
|
-
exports = `
|
36
|
+
exports = `docker-machine env #{name} 2>/dev/null`.strip.split(/\n/).
|
37
|
+
select{|line| line =~ /\Aexport /}
|
32
38
|
exports.empty? ? '' : "%s && " % exports.join(" && ")
|
33
39
|
end
|
34
40
|
|
@@ -44,7 +50,7 @@ module Mcrain
|
|
44
50
|
end
|
45
51
|
|
46
52
|
def build_docker_options(uri)
|
47
|
-
d =
|
53
|
+
d = DockerMachine.certs_dir
|
48
54
|
cert_path = File.join(d, "cert.pem")
|
49
55
|
key_path = File.join(d, "key.pem")
|
50
56
|
files = {
|
@@ -61,6 +67,9 @@ module Mcrain
|
|
61
67
|
|
62
68
|
# http://docs.docker.com/reference/api/docker_remote_api/
|
63
69
|
# https://github.com/boot2docker/boot2docker#ssh-into-vm
|
70
|
+
#
|
71
|
+
# can't find tcuser in virtualbox...
|
72
|
+
# https://github.com/docker/machine/blob/master/drivers/vmwarefusion/fusion_darwin.go#L28
|
64
73
|
def download_files_from_vm(host, files)
|
65
74
|
return if files.values.all?{|f| File.readable?(f)}
|
66
75
|
files.values.each{|f| FileUtils.mkdir_p(File.dirname(f))}
|
@@ -75,11 +84,11 @@ module Mcrain
|
|
75
84
|
Net::SCP.start(host, "docker", :password => "tcuser", &block)
|
76
85
|
end
|
77
86
|
|
78
|
-
|
87
|
+
DOCKER_MACHINE_DOCKER_HOME = '/home/docker'.freeze
|
79
88
|
|
80
89
|
# return temporary dire for 2nd argument of Dir.mktmpdir
|
81
90
|
def tmpdir
|
82
|
-
used? ? File.join(
|
91
|
+
used? ? File.join(DOCKER_MACHINE_DOCKER_HOME, 'tmp', Dir.tmpdir) : Dir.tmpdir
|
83
92
|
end
|
84
93
|
|
85
94
|
def ssh_to_vm(&block)
|
@@ -102,7 +111,7 @@ module Mcrain
|
|
102
111
|
|
103
112
|
def mktmpdir_remote(ssh, &block)
|
104
113
|
Dir.mktmpdir do |orig_dir|
|
105
|
-
dir = File.join(
|
114
|
+
dir = File.join(DOCKER_MACHINE_DOCKER_HOME, 'tmp', orig_dir)
|
106
115
|
cmd1 = "mkdir -p #{dir}"
|
107
116
|
Mcrain.logger.debug(cmd1)
|
108
117
|
ssh.exec! cmd1
|
data/lib/mcrain/riak.rb
CHANGED
data/lib/mcrain/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mcrain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- akm
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logger_pipe
|
@@ -122,9 +122,9 @@ files:
|
|
122
122
|
- exe/mcrain
|
123
123
|
- lib/mcrain.rb
|
124
124
|
- lib/mcrain/base.rb
|
125
|
-
- lib/mcrain/boot2docker.rb
|
126
125
|
- lib/mcrain/client_provider.rb
|
127
126
|
- lib/mcrain/container_controller.rb
|
127
|
+
- lib/mcrain/docker_machine.rb
|
128
128
|
- lib/mcrain/mysql.rb
|
129
129
|
- lib/mcrain/rabbitmq.rb
|
130
130
|
- lib/mcrain/redis.rb
|