Merge branch 'master' into 2221-complete-docker
[arvados.git] / docker / workbench / Dockerfile
index d46a53139371b9b7fe97a6e10a6cb0fd451dfdef..bd0bf4551eb485e418fc31f0da324edee2c347df 100644 (file)
@@ -1,50 +1,34 @@
-# Arvados API server Docker container.
+# Arvados Workbench Docker container.
 
-FROM arvados/base
-MAINTAINER Ward Vandewege <ward@clinicalfuture.com>
+FROM arvados/passenger
+MAINTAINER Ward Vandewege <ward@curoverse.com>
 
-# Need to set the mysql passwords before installing mysql-server
-ENV DEBIAN_FRONTEND noninteractive
-
-# Install packages
-# Fix Locale
 # Update Arvados source
-RUN \
-    apt-get update ;\
-    apt-get install -q -y apt-utils git curl procps apache2-mpm-worker locales \
-                          libcurl4-openssl-dev apache2-threaded-dev libapr1-dev libaprutil1-dev ;\
-    curl -L https://get.rvm.io | bash -s stable --ruby=${RUBY_VERSION_NUM} ;\
-    /bin/sed -ri 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen ;\
-    /usr/sbin/locale-gen ;\
-    cd /usr/src/arvados; git pull ;\
-    touch /usr/src/arvados/apps/workbench/log/production.log ;\
-    chmod 666 /usr/src/arvados/apps/workbench/log/production.log ;\
-    touch /usr/src/arvados/apps/workbench/db/production.sqlite3 ;\
-    bundle install --gemfile=/usr/src/arvados/apps/workbench/Gemfile ;\
-    cd /usr/src/arvados/apps/workbench; rake assets:precompile ;\
-    passenger-install-apache2-module --auto ;\
-    a2enmod rewrite
+RUN /bin/mkdir -p /usr/src/arvados/apps
+ADD generated/workbench.tar.gz /usr/src/arvados/apps/
+ADD generated/secret_token.rb /usr/src/arvados/apps/workbench/config/initializers/secret_token.rb
+ADD generated/production.rb /usr/src/arvados/apps/workbench/config/environments/production.rb
+ADD passenger.conf /etc/apache2/conf.d/passenger
+
+
+RUN bundle install --gemfile=/usr/src/arvados/apps/workbench/Gemfile && \
+    touch /usr/src/arvados/apps/workbench/log/production.log && \
+    chmod 666 /usr/src/arvados/apps/workbench/log/production.log && \
+    touch /usr/src/arvados/apps/workbench/db/production.sqlite3 && \
+    bundle install --gemfile=/usr/src/arvados/apps/workbench/Gemfile && \
+    cd /usr/src/arvados/apps/workbench && \
+    rake assets:precompile && \
+    chown -R www-data:www-data /usr/src/arvados/apps/workbench
 
 # Configure Apache
-# Install gems needed for workbench
-ADD apache2_vhost /etc/apache2/sites-available/workbench
+ADD generated/apache2_vhost /etc/apache2/sites-available/workbench
 RUN \
-  a2dissite default ;\
-  a2ensite workbench 
-
-# Set up the production environment
-ADD secret_token.rb /usr/src/arvados/apps/workbench/config/initializers/secret_token.rb
-ADD production.rb /usr/src/arvados/apps/workbench/config/environments/production.rb
-ADD passenger.conf /etc/apache2/conf.d/passenger
+  a2dissite default && \
+  a2ensite workbench && \
+  a2enmod rewrite
 
-# Finally, start Apache
-ENV APACHE_RUN_USER    www-data
-ENV APACHE_RUN_GROUP   www-data
-ENV APACHE_PID_FILE    /var/run/apache2.pid
-ENV APACHE_RUN_DIR     /var/run/apache2
-ENV APACHE_LOCK_DIR    /var/lock/apache2
-ENV APACHE_LOG_DIR     /var/log/apache2
-ENV LANG               C
+ADD apache2_foreground.sh /etc/apache2/foreground.sh
 
-CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
+# Start Apache
+CMD ["/etc/apache2/foreground.sh"]