-
Notifications
You must be signed in to change notification settings - Fork 3
/
Bockerfile.ruby187
72 lines (53 loc) · 1.78 KB
/
Bockerfile.ruby187
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/bash
# Purpose: Ruby-187
# Author : Anh K. Huynh
# Date : 2016 July 6th
ed_reuse "$(dirname ${BASH_SOURCE[0]:-.})"/Bockerfile.base
ed_cmd '["/usr/local/bin/chruby-exec", "1.8.7", "--", "irb"]'
ed_bocker() {
ed_ruby187_install
ed_ruby187_install_rubygems
}
ed_ruby187_install_rubygems() {
local rubygems="1.4.0"
mkdir /tmp/rubygems/ && cd /tmp/rubygems/
curl -Lo rubygems.tgz https://rubygems.org/rubygems/rubygems-$rubygems.tgz
tar xfvz rubygems.tgz
set +u #; required by `chruby.sh`
source /etc/profile.d/chruby.sh
chruby ruby-1.8.7
set -u #; ruby is now 1.8.7
cd rubygems-$rubygems/ && ruby setup.rb install
echo "gem: --no-ri --no-rdoc -V" > /root/.gemrc
cd / && rm -rf /tmp/rubygems/
ruby -rrubygems -e 'puts "Ruby 1.8.7 and Rubygems are ready."'
}
ed_ruby187_install() {
local chruby="0.3.9"
local rubyinstall="0.6.0"
ed_apt_install make curl ca-certificates
cd /root/
curl -Lo chruby.tgz https://github.com/postmodern/chruby/archive/v$chruby.tar.gz
curl -Lo ruby-install.tgz https://github.com/postmodern/ruby-install/archive/v$rubyinstall.tar.gz
tar xfvz chruby.tgz
tar xfvz ruby-install.tgz
cd /root/chruby-$chruby/ && make install
cd /root/ruby-install-$rubyinstall && make install
ln -s /usr/local/share/chruby/chruby.sh /etc/profile.d/chruby.sh
cd /root/ && ruby-install ruby-1.8.7-p374
set +u #; required by `chruby.sh`
source /etc/profile.d/chruby.sh
chruby ruby-1.8.7
ruby --version | grep '1.8.7'
set -u #; ruby is now 1.8.7
# Clean up
rm -rf /usr/local/src/
cd / && rm -rf /root/ && mkdir /root/ && chmod 700 /root/
ed_apt_purge \
make git gcc python3.4 gcc-4.8 iproute2 cpp-4.8 \
manpages manpages-dev \
$(dpkg -l \
| grep -E '^[hi]i' \
| awk '{print $2}' \
| grep -- "-dev")
}