docker-ruby 0.1.1
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 +7 -0
- data/lib/commands/run.rb +56 -0
- data/lib/docker.rb +25 -0
- data/spec/docker/ruby_spec.rb +11 -0
- data/spec/spec_helper.rb +2 -0
- metadata +90 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 04f7a26610908d2b31fdc57137ed7d90a21e39dd
|
4
|
+
data.tar.gz: 4c8a39a8ff5b06695f3f57a56ed0beb0d582152f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c70227545dc931df32e71a2dd0679d7f17d7bb2a4e14683ede38a14a46dab487ad3764b7a2783ab9d04aa8fa7399aafe7f51957da9f5b3717cfb73b2a5dc5bd3
|
7
|
+
data.tar.gz: 40437e922a6e2c73f0057192564ee02a57c6a887acad77aba55b70d3f889ac33fa57abe2fe43a1dca7dace377ed4596e44e3f029d3ad54615da663cbb86bede3
|
data/lib/commands/run.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
module Docker
|
2
|
+
module Run
|
3
|
+
class << self
|
4
|
+
|
5
|
+
def execute(options={})
|
6
|
+
opts = parse_options(options)
|
7
|
+
puts opts
|
8
|
+
Docker.run_docker_command('run', opts)
|
9
|
+
end
|
10
|
+
|
11
|
+
def parse_options(o)
|
12
|
+
raise ArgumentError.new('image is required') if !o[:image]
|
13
|
+
s = ''
|
14
|
+
s += "#{o[:options]} " if o[:options]
|
15
|
+
|
16
|
+
if o[:detach]
|
17
|
+
s += "-d "
|
18
|
+
else
|
19
|
+
s += "--rm "
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
if o[:volumes]
|
24
|
+
raise ArgumentError.new('volumes must be an array') if !o[:volumes].is_a?(Array)
|
25
|
+
|
26
|
+
o[:volumes].each do |volume|
|
27
|
+
s += "-v #{volume} "
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
if o[:ports]
|
32
|
+
raise ArgumentError.new('ports must be an array') if !o[:ports].is_a?(Array)
|
33
|
+
|
34
|
+
o[:ports].each do |port|
|
35
|
+
s += "-p #{port} "
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
if o[:env]
|
40
|
+
raise ArgumentError.new('env must be an array') if !o[:env].is_a?(Array)
|
41
|
+
|
42
|
+
o[:env].each do |v|
|
43
|
+
s += "-e #{v} "
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
s += "--name=#{o[:name]}" if o[:name]
|
48
|
+
|
49
|
+
s += "#{o[:image]} "
|
50
|
+
s += "#{o[:command]} " if o[:command]
|
51
|
+
s
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/docker.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# commands
|
2
|
+
require 'commands/run'
|
3
|
+
|
4
|
+
module Docker
|
5
|
+
class << self
|
6
|
+
attr_accessor :host
|
7
|
+
|
8
|
+
def run_docker_command(subcommand, opts)
|
9
|
+
c = "docker "
|
10
|
+
c += "-H #{host} " if host
|
11
|
+
c += subcommand + ' '
|
12
|
+
c += opts
|
13
|
+
|
14
|
+
puts c
|
15
|
+
|
16
|
+
#run_command(c)
|
17
|
+
end
|
18
|
+
|
19
|
+
def run_command(command)
|
20
|
+
result = system(command)
|
21
|
+
raise StandardError.new('command failed to run. do you have docker installed?') if result.nil?
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: docker-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- "@thogg4"
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-08-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.12'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.12'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
description: Write a longer description or delete this line.
|
56
|
+
email:
|
57
|
+
- thogg4@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- lib/commands/run.rb
|
63
|
+
- lib/docker.rb
|
64
|
+
- spec/docker/ruby_spec.rb
|
65
|
+
- spec/spec_helper.rb
|
66
|
+
homepage: https://github.com
|
67
|
+
licenses:
|
68
|
+
- MIT
|
69
|
+
metadata: {}
|
70
|
+
post_install_message:
|
71
|
+
rdoc_options: []
|
72
|
+
require_paths:
|
73
|
+
- lib
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
requirements: []
|
85
|
+
rubyforge_project:
|
86
|
+
rubygems_version: 2.2.5
|
87
|
+
signing_key:
|
88
|
+
specification_version: 4
|
89
|
+
summary: Write a short summary, because Rubygems requires one.
|
90
|
+
test_files: []
|