Merge branch 'master' of git.clinicalfuture.com:arvados
[arvados.git] / docker / base / Dockerfile
1 # Arvados base image (wheezy+rvm+rails+Arvados source) in Docker
2
3 # Based on Debian Wheezy
4 FROM arvados/debian:wheezy
5 MAINTAINER Tim Pierce <twp@clinicalfuture.com>
6
7 # TODO(twp): parameterize variables via autoconf or similar.
8 ENV RUBY_VERSION_NUM   2.0.0
9 ENV POSTGRES_ROOT_PW   dummy_pw
10
11 ENV ARVADOS_DEV_DB     arvados_development
12 ENV ARVADOS_DEV_USER   arvados
13 ENV ARVADOS_DEV_PW     dummy_pw
14
15 ENV ARVADOS_TEST_DB    arvados_test
16 ENV ARVADOS_TEST_USER  arvados
17 ENV ARVADOS_TEST_PW    dummy_pw
18
19 ENV ARVADOS_PROD_DB    arvados_production
20 ENV ARVADOS_PROD_USER  arvados
21 ENV ARVADOS_PROD_PW    dummy_pw
22
23 # Install prerequisite packages for Arvados
24 RUN apt-get update
25 RUN apt-get -q -y install -q -y apt-utils
26 RUN apt-get -q -y install git curl procps postgresql postgresql-server-dev-9.1 apache2
27 RUN curl -L https://get.rvm.io | bash -s stable --ruby=${RUBY_VERSION_NUM}
28
29 # Set up RVM environment. These are just the env variables created by
30 # /usr/local/rvm/scripts/rvm, which can't be run from a non-login shell.
31 # TODO(twp): figure out a less awful solution.
32 ENV RUBY_VERSION ruby-2.0.0-p247
33 ENV MY_RUBY_HOME /usr/local/rvm/rubies/ruby-2.0.0-p247
34 ENV GEM_HOME /usr/local/rvm/gems/ruby-2.0.0-p247
35 ENV GEM_PATH /usr/local/rvm/gems/ruby-2.0.0-p247:/usr/local/rvm/gems/ruby-2.0.0-p247@global
36 ENV IRBRC /usr/local/rvm/rubies/ruby-2.0.0-p247/.irbrc
37 ENV rvm_path /usr/local/rvm
38 ENV rvm_prefix /usr/local
39 ENV rvm_env_string ruby-2.0.0-p247
40 ENV rvm_version 1.23.13 (stable)
41 ENV rvm_ruby_string ruby-2.0.0-p247
42 ENV PATH /usr/local/rvm/gems/ruby-2.0.0-p247/bin:/usr/local/rvm/gems/ruby-2.0.0-p247@global/bin:/usr/local/rvm/rubies/ruby-2.0.0-p247/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
43
44 # Download Arvados source.
45 RUN git clone git://github.com/clinicalfuture/arvados.git /usr/src/arvados
46
47 # Install gems
48 RUN bundle install --gemfile=/usr/src/arvados/services/api/Gemfile
49
50 # Configure databases and users.
51 ADD postgresql_config.sh /tmp/postgresql_config.sh
52 RUN /tmp/postgresql_config.sh
53
54 # Finish configuration. The remaining steps need PostgreSQL to be running,
55 # so they are done in a single step.
56 ENV RAILS_ENV production
57 ADD database.yml /usr/src/arvados/services/api/config/database.yml
58 ADD config_rake.sh /tmp/config_rake.sh
59 RUN /tmp/config_rake.sh
60