rbbt-image 0.1.22 → 0.1.23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Dockerfile +3 -1
- data/bin/build_rbbt_provision_sh.rb +83 -3
- data/share/provision_scripts/Dockerfile.R-packages +16 -0
- data/share/provision_scripts/R_setup.sh +25 -0
- data/share/provision_scripts/gem_setup.sh +9 -2
- data/share/provision_scripts/ruby_setup.sh +10 -4
- data/share/provision_scripts/tokyocabinet_setup.sh +11 -0
- data/share/provision_scripts/ubuntu_setup.sh +10 -7
- data/share/provision_scripts/variables.sh +1 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 985e74d5183e70ec0ba00624edf6bf6a5fc32479
|
4
|
+
data.tar.gz: 9f983398ac5b35b6ea43d36dc7d1d8c734190235
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 853f5b6d1221b2da5e48c4e553bfe69b96758df9d44c35ede7c642de519fe57e6b07995720ca2766fce4a34ebc21614168b4ba2dbb4b630f572637080efd55f2
|
7
|
+
data.tar.gz: 43f68462a65f1b1affea381f1cd569b69c4407ce2b8675b530c3429d55c0f05cf2ecf771020ad476c04f5d74e494348e23eb25e484ab4b8118531d0eb49b20c5
|
data/Dockerfile
CHANGED
@@ -26,19 +26,25 @@ $ #{$0} [options]
|
|
26
26
|
-rr--remote_resources* Remote resources to gather from file-server
|
27
27
|
-rw--remote_workflows* Remote workflows server from workflow-server
|
28
28
|
-ss--skip_base_system Skip base system installation
|
29
|
+
-st--skip_tokyocabinet Skip tokyocabinet setup installation
|
29
30
|
-sr--skip_ruby Skip ruby setup installation
|
30
31
|
-sg--skip_gem Skip ruby gem installation
|
31
32
|
-su--skip_user_setup Skip user setup
|
32
33
|
-sb--skip_bootstrap Skip user bootstrap
|
34
|
+
-Rc--R_custom Install a custom installation of R
|
35
|
+
-Rp--R_packages Install basic R packages
|
33
36
|
-c--concurrent Prepare system for high-concurrency
|
37
|
+
-Rbv--ruby_version* Ruby version to use, using three numbers (defaults to 2.4.1)
|
34
38
|
-op--optimize Optimize files under ~/.rbbt
|
35
39
|
-dt--docker* Build docker image using the provided name
|
36
40
|
-df--docker_file* Use a Dockerfile different than the default
|
37
41
|
-dd--docker_dependency* Use a different image in the Dockerfile FROM
|
42
|
+
-si--singularity* Build singularity image using the provided name
|
38
43
|
-v--volumnes* List of volumes to set-up
|
39
44
|
--nocolor Prevent rbbt from using colors and control sequences in the logs while provisioning
|
40
45
|
--nobar Prevent rbbt from using progress bars while provisioning
|
41
46
|
EOF
|
47
|
+
|
42
48
|
if options[:help]
|
43
49
|
if defined? rbbt_usage
|
44
50
|
rbbt_usage and exit 0
|
@@ -51,9 +57,16 @@ end
|
|
51
57
|
root_dir = File.dirname(File.dirname(File.expand_path(__FILE__)))
|
52
58
|
script_dir = File.join(root_dir, "share/provision_scripts/")
|
53
59
|
|
60
|
+
if options[:singularity]
|
61
|
+
options[:skip_user_setup] = true
|
62
|
+
options[:skip_bootstrap] = true
|
63
|
+
end
|
64
|
+
|
54
65
|
USER = options[:user] || 'rbbt'
|
55
66
|
SKIP_BASE_SYSTEM = options[:skip_base_system]
|
67
|
+
SKIP_TOKYOCABINET= options[:skip_tokyocabinet]
|
56
68
|
SKIP_RUBY = options[:skip_ruby]
|
69
|
+
R_CUSTOM = options[:R_custom]
|
57
70
|
SKIP_BOOT = options[:skip_bootstrap]
|
58
71
|
SKIP_USER = options[:skip_user_setup]
|
59
72
|
SKIP_GEM = options[:skip_gem]
|
@@ -75,6 +88,8 @@ VARIABLES[:REMOTE_WORKFLOWS] = options[:remote_workflows].split(/[\s,]+/)*" " if
|
|
75
88
|
VARIABLES[:RBBT_NOCOLOR] = "true" if options[:nocolor]
|
76
89
|
VARIABLES[:RBBT_NO_PROGRESS] = "true" if options[:nobar]
|
77
90
|
|
91
|
+
options[:ruby_version] ||= "2.4.1"
|
92
|
+
|
78
93
|
|
79
94
|
provision_script =<<-EOF
|
80
95
|
#!/bin/bash -x
|
@@ -82,6 +97,9 @@ provision_script =<<-EOF
|
|
82
97
|
echo "RUNNING PROVISION"
|
83
98
|
echo
|
84
99
|
echo "CMD: #{File.basename($0) + " " + orig_argv.collect{|a| a =~ /\s/ ? "\'#{a}\'" : a }.join(" ")}"
|
100
|
+
echo
|
101
|
+
echo -n "Starting: "
|
102
|
+
date
|
85
103
|
|
86
104
|
EOF
|
87
105
|
|
@@ -95,16 +113,32 @@ else
|
|
95
113
|
end
|
96
114
|
}
|
97
115
|
|
98
|
-
|
116
|
+
#{
|
117
|
+
if not SKIP_BASE_SYSTEM and R_CUSTOM
|
118
|
+
"echo 1.1 Setting custom R"
|
119
|
+
File.read(script_dir + 'R_setup.sh')
|
120
|
+
end
|
121
|
+
}
|
122
|
+
|
123
|
+
echo "2. Setting up tokyocabinet"
|
124
|
+
#{
|
125
|
+
if not SKIP_TOKYOCABINET
|
126
|
+
File.read(script_dir + 'tokyocabinet_setup.sh')
|
127
|
+
else
|
128
|
+
"echo SKIPPED\necho"
|
129
|
+
end
|
130
|
+
}
|
131
|
+
|
132
|
+
echo "3. Setting up ruby"
|
99
133
|
#{
|
100
134
|
if not SKIP_RUBY
|
101
|
-
File.read(script_dir + 'ruby_setup.sh')
|
135
|
+
"export RUBY_VERSION='#{options[:ruby_version]}'\n" << File.read(script_dir + 'ruby_setup.sh')
|
102
136
|
else
|
103
137
|
"echo SKIPPED\necho"
|
104
138
|
end
|
105
139
|
}
|
106
140
|
|
107
|
-
echo "3. Setting up gems"
|
141
|
+
echo "3.1. Setting up gems"
|
108
142
|
#{
|
109
143
|
if not SKIP_GEM
|
110
144
|
File.read(script_dir + 'gem_setup.sh')
|
@@ -220,6 +254,8 @@ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc /usr/share/man /usr
|
|
220
254
|
|
221
255
|
echo
|
222
256
|
echo "Installation done."
|
257
|
+
date
|
258
|
+
|
223
259
|
EOF
|
224
260
|
|
225
261
|
docker_dependency = options[:docker_dependency]
|
@@ -234,6 +270,9 @@ if options[:docker]
|
|
234
270
|
volumnes = options[:volumnes].split(/\s*[,|]\s*/).collect{|d| "VOLUME " << d} * "\n"
|
235
271
|
dockerfile_text.sub!(/^RUN/, volumnes + "\nRUN")
|
236
272
|
end
|
273
|
+
if options[:R_packages]
|
274
|
+
dockerfile_text.sub!(/^(# END PROVISION)/, '\1' + "\n" + Open.read(File.join(script_dir, 'Dockerfile.R-packages')) + "\n" )
|
275
|
+
end
|
237
276
|
TmpFile.with_file(nil, false) do |dir|
|
238
277
|
FileUtils.mkdir_p dir
|
239
278
|
Path.setup(dir)
|
@@ -252,3 +291,44 @@ else
|
|
252
291
|
puts provision_script
|
253
292
|
end
|
254
293
|
|
294
|
+
if singularity_image = options[:singularity]
|
295
|
+
docker_dep = options[:docker_dependency] || 'ubuntu'
|
296
|
+
|
297
|
+
TmpFile.with_file(nil, false) do |dir|
|
298
|
+
Path.setup(dir)
|
299
|
+
|
300
|
+
provision_file = dir['provision.sh']
|
301
|
+
|
302
|
+
bootstrap_text=<<-EOF
|
303
|
+
Bootstrap: docker
|
304
|
+
From: #{docker_dep}
|
305
|
+
|
306
|
+
%post
|
307
|
+
cat > /tmp/rbbt_provision.sh <<"EOS"
|
308
|
+
#{provision_script}
|
309
|
+
EOS
|
310
|
+
bash /tmp/rbbt_provision.sh
|
311
|
+
EOF
|
312
|
+
FileUtils.mkdir_p dir
|
313
|
+
Open.write(dir["singularity_bootstrap"].find, bootstrap_text)
|
314
|
+
Open.write(provision_file, provision_script)
|
315
|
+
|
316
|
+
puts "RUN"
|
317
|
+
puts "==="
|
318
|
+
cmd_create = "singularity create -s 2048 #{singularity_image}"
|
319
|
+
cmd_boot = "singularity bootstrap #{singularity_image} '#{dir["singularity_bootstrap"]}'"
|
320
|
+
puts cmd_create
|
321
|
+
io = CMD.cmd(cmd_create, :pipe => true, :log => true)
|
322
|
+
while line = io.gets
|
323
|
+
puts line
|
324
|
+
end
|
325
|
+
|
326
|
+
puts cmd_boot
|
327
|
+
io = CMD.cmd(cmd_boot, :pipe => true, :log => true)
|
328
|
+
while line = io.gets
|
329
|
+
puts line
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
333
|
+
end
|
334
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
RUN echo "install.packages(c('Rcpp','RJSONIO','XML'), repos='http://cran.us.r-project.org')" | R --vanilla
|
2
|
+
RUN wget 'https://cran.r-project.org/src/contrib/Archive/plyr/plyr_1.8.1.tar.gz' -O /tmp/plyr_1.8.1.tar.gz
|
3
|
+
RUN R CMD INSTALL /tmp/plyr_1.8.1.tar.gz
|
4
|
+
RUN wget 'https://cran.r-project.org/src/contrib/Archive/car/car_2.0-22.tar.gz' -O /tmp/car_2.0-22.tar.gz
|
5
|
+
RUN R CMD INSTALL /tmp/car_2.0-22.tar.gz
|
6
|
+
RUN echo "install.packages(c('digest', 'gtable', 'reshape2', 'scales', 'proto'), repos='http://cran.us.r-project.org')" | R --vanilla
|
7
|
+
RUN wget 'https://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_1.0.0.tar.gz' -O /tmp/ggplot2_1.0.0.tar.gz
|
8
|
+
RUN R CMD INSTALL /tmp/ggplot2_1.0.0.tar.gz
|
9
|
+
RUN wget 'https://cran.r-project.org/src/contrib/Archive/ggthemes/ggthemes_1.7.0.tar.gz' -O /tmp/ggthemes_1.7.0.tar.gz
|
10
|
+
RUN R CMD INSTALL /tmp/ggthemes_1.7.0.tar.gz
|
11
|
+
RUN wget 'https://cran.r-project.org/src/contrib/gridSVG_1.5-0.tar.gz' -O /tmp/gridSVG_1.5-0.tar.gz
|
12
|
+
RUN R CMD INSTALL /tmp/gridSVG_1.5-0.tar.gz
|
13
|
+
RUN echo "install.packages(c('NMF'), repos='http://cran.us.r-project.org')" | R --vanilla
|
14
|
+
RUN echo "install.packages(c('Cairo','drc', 'Rserve'), repos='http://cran.us.r-project.org')" | R --vanilla
|
15
|
+
RUN echo "source('http://bioconductor.org/biocLite.R'); biocLite('limma')" | R --vanilla
|
16
|
+
RUN rm /tmp/*.gz
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/bin/bash -x
|
2
|
+
|
3
|
+
# R INSTALL
|
4
|
+
# ============
|
5
|
+
|
6
|
+
cd /tmp
|
7
|
+
|
8
|
+
apt-get remove r-base-core
|
9
|
+
|
10
|
+
wget https://cran.r-project.org/src/base/R-3/R-3.3.2.tar.gz
|
11
|
+
tar -xvzf R-3.3.2.tar.gz
|
12
|
+
|
13
|
+
cd R-3.3.2/
|
14
|
+
./configure --prefix=/usr/local --enable-R-shlib
|
15
|
+
make && make install
|
16
|
+
|
17
|
+
grep -v R_HOME /etc/profile > profile.tmp
|
18
|
+
echo >> profile.tmp
|
19
|
+
echo "# For RSRuby gem " >> profile.tmp
|
20
|
+
echo "export R_HOME='/usr/local/lib/R'" >> profile.tmp
|
21
|
+
echo "export LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH:\$R_HOME/lib\"" >> profile.tmp
|
22
|
+
echo "export LD_RUN_PATH=\"\$LD_RUN_PATH:\$R_HOME/lib\"" >> profile.tmp
|
23
|
+
mv profile.tmp /etc/profile
|
24
|
+
|
25
|
+
. /etc/profile
|
@@ -3,16 +3,21 @@
|
|
3
3
|
# RUBY GEMS and RBBT
|
4
4
|
# =================
|
5
5
|
|
6
|
+
. /etc/profile
|
7
|
+
|
6
8
|
export REALLY_GEM_UPDATE_SYSTEM=true
|
7
9
|
env REALLY_GEM_UPDATE_SYSTEM=true gem update --no-ri --no-rdoc --system
|
8
10
|
gem install --force --no-ri --no-rdoc ZenTest
|
9
11
|
gem install --force --no-ri --no-rdoc RubyInline
|
10
12
|
|
11
13
|
# R (extra config in gem)
|
12
|
-
|
14
|
+
. /etc/profile
|
15
|
+
export R_INCLUDE="$(echo "$R_HOME" | sed 's@/usr/lib\(32\|64\)*@/usr/share@')/include"
|
16
|
+
gem install --conservative --no-ri --no-rdoc rsruby -- --with-R-dir="$R_HOME" --with-R-include="$R_INCLUDE" \
|
17
|
+
--with_cflags="-fPIC -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wall -fno-strict-aliasing"
|
13
18
|
|
14
19
|
# Java (extra config in gem)
|
15
|
-
export JAVA_HOME=$(echo /usr/lib/jvm/java
|
20
|
+
export JAVA_HOME=$(echo /usr/lib/jvm/java-?-openjdk-*)
|
16
21
|
gem install --conservative --force --no-ri --no-rdoc rjb
|
17
22
|
|
18
23
|
# Rbbt and some optional gems
|
@@ -28,3 +33,5 @@ gem install --no-ri --no-rdoc --force \
|
|
28
33
|
wget http://ubio.bioinfo.cnio.es/people/mvazquezg/lockfile-2.1.4.gem -O /tmp/lockfile-2.1.4.gem
|
29
34
|
gem install --no-ri --no-rdoc /tmp/lockfile-2.1.4.gem
|
30
35
|
|
36
|
+
# Extra things for web interface
|
37
|
+
gem install --no-ri --no-rdoc bio-svgenes mimemagic
|
@@ -3,13 +3,19 @@
|
|
3
3
|
# RUBY INSTALL
|
4
4
|
# ============
|
5
5
|
|
6
|
+
_small_version=`echo $RUBY_VERSION | cut -f 1,2 -d.`
|
6
7
|
cd /tmp
|
7
|
-
wget https://cache.ruby-lang.org/pub/ruby/
|
8
|
-
tar -xvzf ruby
|
9
|
-
cd ruby
|
8
|
+
wget https://cache.ruby-lang.org/pub/ruby/$_small_version/ruby-${RUBY_VERSION}.tar.gz -O "ruby.tar.gz"
|
9
|
+
tar -xvzf ruby.tar.gz
|
10
|
+
cd ruby-*/
|
10
11
|
./configure --prefix=/usr/local
|
11
12
|
make && make install
|
12
13
|
|
13
|
-
|
14
|
+
unset _small_version
|
15
|
+
|
16
|
+
grep '#Ruby2' /etc/profile || echo 'export PATH="/usr/local/bin:$PATH" #Ruby2' >> /etc/profile
|
14
17
|
. /etc/profile
|
15
18
|
|
19
|
+
#\curl -sSL https://get.rvm.io | bash -s stable
|
20
|
+
#source /etc/profile.d/rvm.sh
|
21
|
+
#rvm install $RUBY_VERSION
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/bin/bash -x
|
2
|
+
|
3
|
+
# TOKYOCABINET INSTALL
|
4
|
+
# ===================
|
5
|
+
|
6
|
+
cd /tmp
|
7
|
+
wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.48.tar.gz -O "tokyocabinet.tar.gz"
|
8
|
+
tar -xvzf tokyocabinet.tar.gz
|
9
|
+
cd tokyocabinet-1.4.48
|
10
|
+
./configure --prefix=/usr/local
|
11
|
+
make && make install
|
@@ -11,16 +11,19 @@ apt-get -y install \
|
|
11
11
|
bison autoconf g++ libxslt1-dev make \
|
12
12
|
zlib1g-dev libbz2-dev libreadline6 libreadline6-dev \
|
13
13
|
wget curl git openssl libyaml-0-2 libyaml-dev \
|
14
|
-
|
15
|
-
r-base-core r-base-dev r-cran-rserve \
|
16
|
-
openjdk-7-jdk \
|
17
|
-
libtokyocabinet-dev tokyocabinet-bin \
|
14
|
+
openjdk-8-jdk \
|
15
|
+
libcairo2 libcairo2-dev r-base-core r-base-dev r-cran-rserve liblzma5 liblzma-dev libcurl4-openssl-dev \
|
18
16
|
build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev libffi-dev
|
19
17
|
|
18
|
+
# This link was broken for some reason
|
19
|
+
rm /usr/lib/R/bin/Rserve
|
20
|
+
ln -s /usr/lib/R/site-library/Rserve/libs/Rserve /usr/lib/R/bin/Rserve
|
20
21
|
|
21
22
|
grep R_HOME /etc/profile || echo "export R_HOME='/usr/lib/R' # For Ruby's RSRuby gem" >> /etc/profile
|
22
23
|
. /etc/profile
|
23
24
|
|
24
|
-
|
25
|
-
rm /
|
26
|
-
|
25
|
+
apt-get clean
|
26
|
+
rm -rf /var/lib/apt/lists/*
|
27
|
+
|
28
|
+
|
29
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-image
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rbbt-util
|
@@ -39,9 +39,12 @@ files:
|
|
39
39
|
- bin/build_rbbt_provision_sh.rb
|
40
40
|
- bin/run_rbbt_docker.rb
|
41
41
|
- lib/rbbt/docker.rb
|
42
|
+
- share/provision_scripts/Dockerfile.R-packages
|
43
|
+
- share/provision_scripts/R_setup.sh
|
42
44
|
- share/provision_scripts/bootstrap.sh
|
43
45
|
- share/provision_scripts/gem_setup.sh
|
44
46
|
- share/provision_scripts/ruby_setup.sh
|
47
|
+
- share/provision_scripts/tokyocabinet_setup.sh
|
45
48
|
- share/provision_scripts/ubuntu_setup.sh
|
46
49
|
- share/provision_scripts/user_setup.sh
|
47
50
|
- share/provision_scripts/variables.sh
|
@@ -65,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
68
|
version: '0'
|
66
69
|
requirements: []
|
67
70
|
rubyforge_project:
|
68
|
-
rubygems_version: 2.6.
|
71
|
+
rubygems_version: 2.6.13
|
69
72
|
signing_key:
|
70
73
|
specification_version: 4
|
71
74
|
summary: Build docker and Vagrant (VM) images
|