X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1c2902c9d8fe6d69517e5b870400aadb93863090..dbd32ecbca3f108953e3b0560fcabbc300d58e7c:/docker/api/Dockerfile diff --git a/docker/api/Dockerfile b/docker/api/Dockerfile index 8a8ec98279..0c23d66ee5 100644 --- a/docker/api/Dockerfile +++ b/docker/api/Dockerfile @@ -1,26 +1,46 @@ # Arvados API server Docker container. -FROM arvados/base +FROM arvados/passenger MAINTAINER Tim Pierce # Install postgres and apache -RUN apt-get -q -y install procps postgresql postgresql-server-dev-9.1 apache2 +RUN apt-get -q -y install procps postgresql postgresql-server-dev-9.1 apache2 \ + supervisor -# Configure databases and users. -ADD config_databases.sh /tmp/ -RUN /tmp/config_databases.sh -RUN rm /tmp/config_databases.sh +RUN /bin/mkdir -p /usr/src/arvados/services +ADD generated/api.tar.gz /usr/src/arvados/services/ -# Install gems needed for API server -RUN bundle install --gemfile=/usr/src/arvados/services/api/Gemfile +# Install generated config files +ADD generated/database.yml /usr/src/arvados/services/api/config/database.yml +ADD generated/secret_token.rb /usr/src/arvados/services/api/config/initializers/secret_token.rb +ADD generated/omniauth.rb /usr/src/arvados/services/api/config/initializers/omniauth.rb +ADD generated/production.rb /usr/src/arvados/services/api/config/environments/production.rb +ADD generated/apache2_vhost /etc/apache2/sites-available/arvados -# Set up the Rails database. This has to be done in a script so that -# postgres can run in the background while running rake db:setup. +# Configure Rails databases. ENV RAILS_ENV production -ADD database.yml /usr/src/arvados/services/api/config/database.yml -ADD config_rake.sh /tmp/config_rake.sh -RUN /tmp/config_rake.sh +ADD generated/config_databases.sh /tmp/config_databases.sh +RUN sh /tmp/config_databases.sh && \ + rm /tmp/config_databases.sh && \ + /etc/init.d/postgresql start && \ + cd /usr/src/arvados/services/api && \ + rake db:setup && \ + rake assets:precompile ; \ + chown www-data:www-data config.ru ; \ + chown www-data:www-data log -R ; \ + chown www-data:www-data tmp -R -ADD secret_token.rb /usr/src/arvados/services/api/config/initializers/secret_token.rb -ADD omniauth.rb /usr/src/arvados/services/api/config/initializers/omniauth.rb -ADD production.rb /usr/src/arvados/services/api/config/environments/production.rb +# Configure Apache and Passenger. +ADD passenger.conf /etc/apache2/conf.d/passenger +RUN a2dissite default ; \ + a2ensite arvados ; \ + a2enmod rewrite ; \ + a2enmod ssl ; \ + /bin/mkdir /var/run/apache2 + +# Supervisor. +ADD supervisor.conf /etc/supervisor/conf.d/arvados.conf +ADD apache2_foreground.sh /etc/apache2/foreground.sh + +# Start the supervisor. +CMD ["/usr/bin/supervisord", "-n"]