rbdock 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/README.md +36 -4
- data/Vagrantfile +2 -14
- data/lib/rbdock.rb +1 -2
- data/lib/rbdock/command.rb +4 -6
- data/lib/rbdock/command/options.rb +47 -58
- data/lib/rbdock/{create.rb → generate.rb} +26 -28
- data/lib/rbdock/helpers.rb +72 -3
- data/lib/rbdock/version.rb +1 -1
- data/templates/{centos_base_packages.erb → base_package/centos.erb} +1 -1
- data/templates/{ubuntu_base_packages.erb → base_package/ubuntu.erb} +1 -1
- data/templates/default/app.erb +9 -0
- data/templates/{bundler.erb → default/bundler.erb} +1 -0
- data/templates/default/ruby.erb +8 -0
- data/templates/rbenv/app.erb +8 -0
- data/templates/{rbenv_bundler.erb → rbenv/bundler.erb} +0 -0
- data/templates/{rbenv_ruby.erb → rbenv/ruby.erb} +0 -0
- data/templates/rvm/app.erb +8 -0
- data/templates/{rvm_bundler.erb → rvm/bundler.erb} +0 -0
- data/templates/{rvm_ruby.erb → rvm/ruby.erb} +0 -0
- metadata +14 -11
- data/templates/ruby.erb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6360827063092435950892991e08acb8e23a1843
|
4
|
+
data.tar.gz: 8ca404388d1a24a82901d1fd7f93206cc89c548b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6aa31f36757676489cbd1139ba1f98fd1518496c6d6c1a10ce58ad1753053c1949425d2b02c3ba890f2fad9d148afc0045402403bb56047cb9b9e3032ebb84df
|
7
|
+
data.tar.gz: 3eb3ebb1d5e6e29d9df8067c4da66c6af825b659f7ed412c61d1d2dee0a1179c39982d2eaac9afc7f00008726d9d6020b9ee1cb30583ed79021978ba09b238da
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/rbdock.png)](http://badge.fury.io/rb/rbdock)
|
4
4
|
|
5
|
-
Generate Dockerfile
|
5
|
+
Generate Dockerfile for Ruby or Rails, Sinatra.
|
6
|
+
|
7
|
+
Dockerfile to prepare ruby is almost common, so generate its common parts. This is still experimetal and under heavy construction.
|
6
8
|
|
7
9
|
## Installation
|
8
10
|
|
@@ -21,17 +23,46 @@ Or install it yourself as:
|
|
21
23
|
|
22
24
|
## Usage
|
23
25
|
|
26
|
+
### Create Dockerfile to build ruby
|
27
|
+
|
24
28
|
Create `Dockerfile` to build ruby 2.0.0-p353 ready image.
|
25
29
|
|
26
30
|
```
|
27
|
-
$ rbdock
|
31
|
+
$ rbdock 2.1.0
|
32
|
+
```
|
33
|
+
|
34
|
+
It generates this [Dockerfile](https://gist.github.com/tcnksm/9388685).
|
35
|
+
|
36
|
+
You can create `Dockerfile` to build multiple versions of ruby by rbenv or rvm.
|
37
|
+
|
38
|
+
```
|
39
|
+
$ rbdock 2.0.0-p353 1.9.3-p484 -i centos
|
28
40
|
```
|
29
41
|
|
30
|
-
|
42
|
+
It generates this [Dockerfile](https://gist.github.com/tcnksm/9388736).
|
43
|
+
|
44
|
+
|
45
|
+
### Create Dockerfile for rails/sinatra application
|
46
|
+
|
47
|
+
For example, you can work with rails application developed on local environment.
|
48
|
+
|
49
|
+
```
|
50
|
+
$ rails new my_rails_app
|
51
|
+
$ rbdock 2.1.0 --app my_rails_app --rbenv
|
52
|
+
$ docker build -t tcnksm/rails_app .
|
53
|
+
$ docker run -i -p 3000:3000 -t tcnksm/rails_app 'rails server'
|
54
|
+
```
|
55
|
+
|
56
|
+
It generates this [Dockerfile](https://gist.github.com/tcnksm/9389036).
|
57
|
+
|
58
|
+
You can work with application hosted on remote repository. For example, this is my sinatra application hosted on github.
|
31
59
|
|
32
60
|
```
|
33
|
-
$ rbdock
|
61
|
+
$ rbdock 2.0.0-p353 --app https://github.com/tcnksm/trying-space
|
62
|
+
$ docker build -t tcnksm/sinatra_app .
|
63
|
+
$ docker run -i -p 8080:8080 -t tcnksm/my_sinatra_app 'rackup -p 8080'
|
34
64
|
```
|
65
|
+
It generates this [Dockerfile](https://gist.github.com/tcnksm/9389116). Your application will be cloned to local directory (`.rbdock_app`) and `ADD` to docker image.
|
35
66
|
|
36
67
|
### Options
|
37
68
|
|
@@ -40,6 +71,7 @@ $ rbdock create 2.0.0-p353 1.9.3-p484
|
|
40
71
|
|--image `name`| Set base image. Now `ubuntu` or `cenos` is avalable. Default is `ubuntu`.|
|
41
72
|
|--rbenv| Use [rbenv](https://github.com/sstephenson/rbenv) to manage ruby installation|
|
42
73
|
|--rvm | Use [rvm](https://github.com/wayneeseguin/rvm) to manage ruby installation|
|
74
|
+
|--app `url` | Add Rails/Sinatra application. You can set local path or remote host|
|
43
75
|
|--list | List all available ruby versions.|
|
44
76
|
|
45
77
|
|
data/Vagrantfile
CHANGED
@@ -1,20 +1,8 @@
|
|
1
|
-
# -*- mode: ruby -*-
|
2
|
-
# vi: set ft=ruby :
|
3
|
-
|
4
|
-
DOCKER_URL = "192.168.50.4"
|
5
|
-
DOCKER_PORT = 5422
|
6
|
-
|
7
1
|
Vagrant.configure("2") do |config|
|
8
2
|
config.vm.box = "precise64"
|
9
3
|
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
|
10
|
-
config.vm.network :private_network, ip:
|
4
|
+
config.vm.network :private_network, ip: "192.168.50.4"
|
11
5
|
config.vm.provision :docker do |d|
|
12
6
|
d.pull_images "ubuntu"
|
13
|
-
|
14
|
-
end
|
15
|
-
config.vm.provision :shell, :inline => <<-PREPARE
|
16
|
-
sudo sed -i -e 's/DOCKER_OPTS=/DOCKER_OPTS=\"-H 0.0.0.0:#{DOCKER_PORT}\"/g' /etc/init/docker.conf
|
17
|
-
sudo service docker stop
|
18
|
-
sudo service docker start
|
19
|
-
PREPARE
|
7
|
+
end
|
20
8
|
end
|
data/lib/rbdock.rb
CHANGED
data/lib/rbdock/command.rb
CHANGED
@@ -12,13 +12,11 @@ module Rbdock
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def execute
|
15
|
-
options
|
16
|
-
|
17
|
-
|
18
|
-
case sub_command
|
19
|
-
when 'create'
|
20
|
-
Rbdock::Create.run(options)
|
15
|
+
options = Options.parse!(@argv)
|
16
|
+
if options[:app]
|
17
|
+
options[:app_path] = Rbdock.clone_app_to_local(options[:app])
|
21
18
|
end
|
19
|
+
Rbdock::Generate.run(options)
|
22
20
|
rescue => e
|
23
21
|
abort "Error: #{e.message}"
|
24
22
|
end
|
@@ -7,96 +7,85 @@ module Rbdock
|
|
7
7
|
def self.parse!(argv)
|
8
8
|
options = {}
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
set_default_value options
|
11
|
+
command_parser = create_command_parser options
|
12
12
|
|
13
13
|
begin
|
14
|
-
command_parser.
|
15
|
-
options[:command] = argv.shift
|
16
|
-
sub_command_parser[options[:command]].parse!(argv)
|
14
|
+
command_parser.parse!(argv)
|
17
15
|
ruby_version_perser options, argv
|
18
16
|
rescue OptionParser::MissingArgument, OptionParser::InvalidOption, ArgumentError => e
|
19
17
|
abort e.message
|
20
18
|
end
|
21
|
-
|
19
|
+
|
22
20
|
options
|
23
21
|
end
|
24
22
|
|
25
|
-
def self.
|
23
|
+
def self.set_default_value options
|
24
|
+
options[:image] = "ubuntu"
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.create_command_parser options
|
26
28
|
OptionParser.new do |opt|
|
27
|
-
opt
|
28
|
-
|
29
|
-
STDERR.puts opt.ver
|
30
|
-
exit
|
31
|
-
}
|
29
|
+
show_version opt
|
30
|
+
show_help opt
|
32
31
|
|
33
|
-
opt.
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
opt.
|
40
|
-
|
41
|
-
|
32
|
+
opt.on('-i name','--image=name', 'Set image name(ubuntu|centos)') { |v|
|
33
|
+
options[:image] = v
|
34
|
+
}
|
35
|
+
opt.on('--rbenv', desc='Use rbenv') {
|
36
|
+
options[:use_rbenv] = true
|
37
|
+
}
|
38
|
+
opt.on('--rvm', desc='Use rvm') {
|
39
|
+
options[:use_rvm] = true
|
40
|
+
}
|
41
|
+
opt.on('-a path','--app=path', 'Add Rails/Sinatra app') { |path|
|
42
|
+
options[:app] = path
|
42
43
|
}
|
44
|
+
opt.on('-l','--list', 'List all available ruby versions') {
|
45
|
+
list_ruby_versions
|
46
|
+
}
|
43
47
|
end
|
44
48
|
end
|
45
49
|
|
46
|
-
def self.
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
opt.
|
58
|
-
|
59
|
-
|
60
|
-
opt.on_tail('-h','--help', 'Show this message') { help_sub_command(opt) }
|
61
|
-
end
|
62
|
-
|
63
|
-
parser
|
50
|
+
def self.show_version opt
|
51
|
+
opt.on_tail('-v','--version','Show version') {
|
52
|
+
opt.version = Rbdock::VERSION
|
53
|
+
STDERR.puts opt.ver
|
54
|
+
exit
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.show_help opt
|
59
|
+
opt.banner = "Usage: #{opt.program_name} <ruby-versions> [<args>]"
|
60
|
+
opt.on_tail('-h','--help','Show this message') {
|
61
|
+
STDERR.puts opt.help
|
62
|
+
exit
|
63
|
+
}
|
64
64
|
end
|
65
65
|
|
66
66
|
def self.ruby_version_perser options, argv
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
options[:ruby_versions] = argv
|
71
|
-
end
|
67
|
+
raise ArgumentError, "#{options[:command]} ruby versions not found." if argv.empty?
|
68
|
+
check_version_avaiable argv
|
69
|
+
options[:ruby_versions] = argv
|
72
70
|
options
|
73
71
|
end
|
74
72
|
|
75
73
|
def self.check_version_avaiable argv
|
76
74
|
argv.each do |v|
|
77
|
-
if not Rbdock::
|
78
|
-
raise ArgumentError, "Definition not found: #{v} \n\nYou can list all available ruby versions with `rbdock
|
75
|
+
if not Rbdock::Generate.ruby_versions.include? v
|
76
|
+
raise ArgumentError, "Definition not found: #{v} \n\nYou can list all available ruby versions with `rbdock --list'."
|
79
77
|
end
|
80
78
|
end
|
81
79
|
end
|
82
80
|
|
83
81
|
def self.list_ruby_versions
|
84
82
|
STDERR.print "Available versions:\n "
|
85
|
-
STDERR.print Rbdock::
|
83
|
+
STDERR.print Rbdock::Generate.ruby_versions.join("\n ")
|
86
84
|
STDERR.puts
|
87
85
|
exit
|
88
86
|
end
|
89
|
-
|
90
|
-
def self.help_sub_command parser
|
91
|
-
STDERR.puts parser.help
|
92
|
-
exit
|
93
|
-
end
|
94
|
-
|
95
|
-
def self.sub_command_help
|
96
|
-
[
|
97
|
-
{name: 'create <ruby-versions> -i <image>', summary: 'Generate Dockerfile which installs <ruby-versions>'}
|
98
|
-
]
|
99
|
-
end
|
87
|
+
|
100
88
|
end
|
101
89
|
end
|
102
90
|
end
|
91
|
+
|
@@ -2,10 +2,10 @@ require "erubis"
|
|
2
2
|
|
3
3
|
module Rbdock
|
4
4
|
|
5
|
-
class
|
5
|
+
class Generate
|
6
6
|
|
7
7
|
def self.run options
|
8
|
-
new(options).
|
8
|
+
new(options).execute
|
9
9
|
end
|
10
10
|
|
11
11
|
def initialize options
|
@@ -13,15 +13,15 @@ module Rbdock
|
|
13
13
|
@ruby_versions = options[:ruby_versions]
|
14
14
|
@use_rbenv = options[:use_rbenv]
|
15
15
|
@use_rvm = options[:use_rvm]
|
16
|
+
@app_path = options[:app_path]
|
16
17
|
end
|
17
18
|
|
18
|
-
def
|
19
|
+
def execute
|
19
20
|
if @use_rbenv
|
20
21
|
safe_write rbenv_template
|
21
22
|
elsif @use_rvm
|
22
23
|
safe_write rvm_template
|
23
24
|
elsif mutiple_rubies?
|
24
|
-
# Use rbenv for default installing multiple rubies
|
25
25
|
safe_write rbenv_template
|
26
26
|
else
|
27
27
|
safe_write default_template
|
@@ -51,37 +51,35 @@ module Rbdock
|
|
51
51
|
@ruby_versions.length > 1
|
52
52
|
end
|
53
53
|
|
54
|
+
def erubis template_path
|
55
|
+
Erubis::Eruby.new(template_path.read, trim: true).result(binding)
|
56
|
+
end
|
57
|
+
|
58
|
+
def base_package_template
|
59
|
+
erubis Rbdock.source_root.join("templates/base_package/#{@image}.erb")
|
60
|
+
end
|
61
|
+
|
54
62
|
def default_template
|
55
|
-
|
56
|
-
template
|
57
|
-
|
58
|
-
|
59
|
-
template
|
60
|
-
|
61
|
-
template_path = Rbdock.source_root.join("templates/bundler.erb")
|
62
|
-
template << Erubis::Eruby.new(template_path.read, trim: true).result(binding)
|
63
|
+
template = base_package_template
|
64
|
+
template << erubis(Rbdock.source_root.join("templates/default/ruby.erb"))
|
65
|
+
template << erubis(Rbdock.source_root.join("templates/default/bundler.erb"))
|
66
|
+
template << erubis(Rbdock.source_root.join("templates/default/app.erb")) if @app_path
|
67
|
+
template
|
63
68
|
end
|
64
69
|
|
65
70
|
def rbenv_template
|
66
|
-
|
67
|
-
template
|
68
|
-
|
69
|
-
|
70
|
-
template
|
71
|
-
|
72
|
-
template_path = Rbdock.source_root.join("templates/rbenv_bundler.erb")
|
73
|
-
template << Erubis::Eruby.new(template_path.read, trim: true).result(binding)
|
71
|
+
template = base_package_template
|
72
|
+
template << erubis(Rbdock.source_root.join("templates/rbenv/ruby.erb"))
|
73
|
+
template << erubis(Rbdock.source_root.join("templates/rbenv/bundler.erb"))
|
74
|
+
template << erubis(Rbdock.source_root.join("templates/rbenv/app.erb")) if @app_path
|
75
|
+
template
|
74
76
|
end
|
75
77
|
|
76
78
|
def rvm_template
|
77
|
-
|
78
|
-
template
|
79
|
-
|
80
|
-
|
81
|
-
template << Erubis::Eruby.new(template_path.read, trim: true).result(binding)
|
82
|
-
|
83
|
-
template_path = Rbdock.source_root.join("templates/rvm_bundler.erb")
|
84
|
-
template << Erubis::Eruby.new(template_path.read, trim: true).result(binding)
|
79
|
+
template = base_package_template
|
80
|
+
template << erubis(Rbdock.source_root.join("templates/rvm/ruby.erb"))
|
81
|
+
template << erubis(Rbdock.source_root.join("templates/rvm/bundler.erb"))
|
82
|
+
template << erubis(Rbdock.source_root.join("templates/rvm/app.erb")) if @app_path
|
85
83
|
end
|
86
84
|
|
87
85
|
def self.ruby_versions
|
data/lib/rbdock/helpers.rb
CHANGED
@@ -1,7 +1,76 @@
|
|
1
1
|
require "pathname"
|
2
|
+
require "uri"
|
2
3
|
|
3
4
|
module Rbdock
|
4
|
-
|
5
|
-
|
6
|
-
|
5
|
+
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def source_root
|
9
|
+
@source_root ||= Pathname.new(File.expand_path('../../../', __FILE__))
|
10
|
+
end
|
11
|
+
|
12
|
+
def clone_app_to_local url
|
13
|
+
raise StandardError, "command git not found." if `which git`.empty?
|
14
|
+
|
15
|
+
if local? url
|
16
|
+
if not File.exist?(File.join(source_root, url))
|
17
|
+
raise StandardError, "#{url} is not exit"
|
18
|
+
end
|
19
|
+
|
20
|
+
return url
|
21
|
+
end
|
22
|
+
|
23
|
+
if not already_cloned?
|
24
|
+
return exec_clone url
|
25
|
+
end
|
26
|
+
|
27
|
+
if already_cloned? and same_app?(url)
|
28
|
+
return update_app url
|
29
|
+
end
|
30
|
+
|
31
|
+
return replace_app url
|
32
|
+
end
|
33
|
+
|
34
|
+
def default_app_path
|
35
|
+
'.rbdock_app'
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def local? url
|
41
|
+
not URI.regexp =~ url
|
42
|
+
end
|
43
|
+
|
44
|
+
def exec_clone url
|
45
|
+
if not system("git clone -q #{url} #{default_app_path}")
|
46
|
+
raise StandardError, "clone #{url} is failed. Check url."
|
47
|
+
end
|
48
|
+
STDERR.puts "Clone #{url} to #{default_app_path}/"
|
49
|
+
default_app_path
|
50
|
+
end
|
51
|
+
|
52
|
+
def replace_app url
|
53
|
+
system("rm -fr #{default_app_path}")
|
54
|
+
exec_clone url
|
55
|
+
STDERR.puts "Delete old app and clone #{url} to #{default_app_path}/"
|
56
|
+
default_app_path
|
57
|
+
end
|
58
|
+
|
59
|
+
def update_app url
|
60
|
+
if not system("cd #{default_app_path}; git pull -q")
|
61
|
+
raise StandardError, "clone #{url} is failed. Check url."
|
62
|
+
end
|
63
|
+
STDERR.puts "Update #{url}"
|
64
|
+
default_app_path
|
65
|
+
end
|
66
|
+
|
67
|
+
def already_cloned?
|
68
|
+
File.exist? default_app_path
|
69
|
+
end
|
70
|
+
|
71
|
+
def same_app? url
|
72
|
+
url == `git --git-dir=.rbdock_app/.git config --get remote.origin.url`.chomp
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
7
76
|
end
|
data/lib/rbdock/version.rb
CHANGED
@@ -5,6 +5,6 @@ RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.
|
|
5
5
|
RUN yum -y update
|
6
6
|
RUN yum install -y make gcc gcc-c++ wget curl git
|
7
7
|
RUN yum install -y openssl-devel zlib-devel readline-devel libffi-devel httpd-devel libyaml-devel
|
8
|
-
RUN yum install -y bzip2 autoconf automake libtool bison iconv-devel
|
8
|
+
RUN yum install -y bzip2 autoconf automake libtool bison iconv-devel ruby-devel
|
9
9
|
RUN yum --enablerepo=epel -y install libyaml-devel
|
10
10
|
|
@@ -4,6 +4,6 @@ FROM ubuntu
|
|
4
4
|
RUN apt-get update
|
5
5
|
RUN apt-get install -y build-essential wget curl git
|
6
6
|
RUN apt-get install -y zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev
|
7
|
-
RUN apt-get install sqlite3 libsqlite3-dev
|
7
|
+
RUN apt-get install -y sqlite3 libsqlite3-dev
|
8
8
|
RUN apt-get clean
|
9
9
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbdock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tcnksm
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: erubis
|
@@ -128,19 +128,22 @@ files:
|
|
128
128
|
- lib/rbdock.rb
|
129
129
|
- lib/rbdock/command.rb
|
130
130
|
- lib/rbdock/command/options.rb
|
131
|
-
- lib/rbdock/
|
131
|
+
- lib/rbdock/generate.rb
|
132
132
|
- lib/rbdock/helpers.rb
|
133
133
|
- lib/rbdock/version.rb
|
134
134
|
- rbdock.gemspec
|
135
135
|
- spec/spec_helper.rb
|
136
|
-
- templates/
|
137
|
-
- templates/
|
138
|
-
- templates/
|
139
|
-
- templates/
|
140
|
-
- templates/ruby.erb
|
141
|
-
- templates/
|
142
|
-
- templates/
|
143
|
-
- templates/
|
136
|
+
- templates/base_package/centos.erb
|
137
|
+
- templates/base_package/ubuntu.erb
|
138
|
+
- templates/default/app.erb
|
139
|
+
- templates/default/bundler.erb
|
140
|
+
- templates/default/ruby.erb
|
141
|
+
- templates/rbenv/app.erb
|
142
|
+
- templates/rbenv/bundler.erb
|
143
|
+
- templates/rbenv/ruby.erb
|
144
|
+
- templates/rvm/app.erb
|
145
|
+
- templates/rvm/bundler.erb
|
146
|
+
- templates/rvm/ruby.erb
|
144
147
|
homepage: https://github.com/tcnksm/rbdock
|
145
148
|
licenses:
|
146
149
|
- MIT
|
data/templates/ruby.erb
DELETED
@@ -1,5 +0,0 @@
|
|
1
|
-
# Install ruby
|
2
|
-
RUN wget -P /root/src ftp://ftp.ruby-lang.org/pub/ruby/ruby-<%= @ruby_versions[0] %>.tar.gz
|
3
|
-
RUN cd /root/src; tar xvf ruby-<%= @ruby_versions[0] %>.tar.gz
|
4
|
-
RUN cd /root/src/ruby-<%= @ruby_versions[0] %>; ./configure --disable-install-doc; make install
|
5
|
-
|