Fixed Makefile dependencies, added docker_build script to work around
authorTim Pierce <twp@clinicalfuture.com>
Wed, 20 Nov 2013 00:01:07 +0000 (19:01 -0500)
committerTim Pierce <twp@clinicalfuture.com>
Wed, 20 Nov 2013 00:01:07 +0000 (19:01 -0500)
https://github.com/dotcloud/docker/issues/1875.

docker/Makefile
docker/README
docker/docker_build [new file with mode: 0755]
docker/sso/generated/apache2_vhost [deleted file]

index 43ec7e2b24f67cd40548de24e6e1df0c5fa63aa3..8c1c79c2ce196371f17293851e2b5cde72629902 100644 (file)
@@ -1,46 +1,7 @@
 all: api-image docserver-image workbench-image warehouse-image sso-image
 
-# ============================================================
-# The main Arvados servers: api, docserver, workbench, warehouse
-
-api-image: passenger-image $(API_DEPS)
-       tar -c -z -f api/generated/api.tar.gz -C ../services api
-       docker build -t arvados/api api
-       echo -n "Built at $(date)" > api-image
-
-docserver-image: base-image $(DOCSERVER_DEPS) 
-       tar -c -z -f docserver/generated/doc.tar.gz -C .. doc
-       docker build -t arvados/docserver docserver
-       echo -n "Built at $(date)" > docserver-image
-
-workbench-image: passenger-image $(WORKBENCH_DEPS)
-       tar -c -z -f workbench/generated/workbench.tar.gz -C ../apps workbench
-       docker build -t arvados/workbench workbench
-       echo -n "Built at $(date)" > workbench-image
-
-warehouse-image: base-image $(WAREHOUSE_DEPS)
-       docker build -t arvados/warehouse warehouse
-       echo -n "Built at $(date)" > warehouse-image
-
-sso-image: passenger-image $(WORKBENCH_DEPS)
-       docker build -t arvados/sso sso
-       echo -n "Built at $(date)" > sso-image
-
-# ============================================================
-# The arvados/base image is the base Debian image plus packages
-# that are dependencies for every Arvados service.
-
-passenger-image: base-image
-       docker build -t arvados/passenger passenger
-       echo -n "Built at $(date)" > passenger-image
-
-base-image: debian-image
-       docker build -t arvados/base base
-       echo -n "Built at $(date)" > base-image
-
-debian-image:
-       ./mkimage-debootstrap.sh arvados/debian wheezy http://debian.lcs.mit.edu/debian/
-       echo -n "Built at $(date)" > debian-image
+clean:
+       rm *-image */generated/*
 
 # ============================================================
 # Dependencies for */generated files which are prerequisites
@@ -58,6 +19,8 @@ WAREHOUSE_DEPS = warehouse/Dockerfile \
                  warehouse/supervisor.conf \
                  $(WAREHOUSE_GENERATED)
 
+SSO_DEPS = sso/passenger.conf $(SSO_GENERATED)
+
 API_GENERATED = \
         api/generated/apache2_vhost \
         api/generated/config_databases.sh \
@@ -75,12 +38,12 @@ API_GENERATED_IN = \
         api/secret_token.rb.in
 
 WORKBENCH_GENERATED = \
-        workbench/generated/apache_vhost \
+        workbench/generated/apache2_vhost \
         workbench/generated/production.rb \
         workbench/generated/secret_token.rb
 
 WORKBENCH_GENERATED_IN = \
-        workbench/apache_vhost.in \
+        workbench/apache2_vhost.in \
         workbench/production.rb.in \
         workbench/secret_token.rb.in
 
@@ -89,12 +52,12 @@ WAREHOUSE_GENERATED = warehouse/generated/warehouse.conf
 WAREHOUSE_GENERATED_IN = warehouse/warehouse.conf.in
 
 SSO_GENERATED = \
-        sso/generated/apache_vhost \
+        sso/generated/apache2_vhost \
         sso/generated/seeds.rb \
         sso/generated/secret_token.rb
 
 SSO_GENERATED_IN = \
-        sso/apache_vhost.in \
+        sso/apache2_vhost.in \
         sso/seeds.rb.in \
         sso/secret_token.rb.in
 
@@ -109,3 +72,46 @@ $(WAREHOUSE_GENERATED): $(WAREHOUSE_GENERATED_IN)
 
 $(SSO_GENERATED): $(SSO_GENERATED_IN)
        ./config.rb
+
+# ============================================================
+# The main Arvados servers: api, docserver, workbench, warehouse
+
+api-image: passenger-image $(API_DEPS)
+       tar -c -z -f api/generated/api.tar.gz -C ../services api
+       ./docker_build -t arvados/api api
+       echo -n "Built at $(date)" > api-image
+
+docserver-image: base-image $(DOCSERVER_DEPS) 
+       tar -c -z -f docserver/generated/doc.tar.gz -C .. doc
+       ./docker_build -t arvados/docserver docserver
+       echo -n "Built at $(date)" > docserver-image
+
+workbench-image: passenger-image $(WORKBENCH_DEPS)
+       tar -c -z -f workbench/generated/workbench.tar.gz -C ../apps workbench
+       ./docker_build -t arvados/workbench workbench
+       echo -n "Built at $(date)" > workbench-image
+
+warehouse-image: base-image $(WAREHOUSE_DEPS)
+       ./docker_build -t arvados/warehouse warehouse
+       echo -n "Built at $(date)" > warehouse-image
+
+sso-image: passenger-image $(SSO_DEPS)
+       ./docker_build -t arvados/sso sso
+       echo -n "Built at $(date)" > sso-image
+
+# ============================================================
+# The arvados/base image is the base Debian image plus packages
+# that are dependencies for every Arvados service.
+
+passenger-image: base-image
+       ./docker_build -t arvados/passenger passenger
+       echo -n "Built at $(date)" > passenger-image
+
+base-image: debian-image
+       ./docker_build -t arvados/base base
+       echo -n "Built at $(date)" > base-image
+
+debian-image:
+       ./mkimage-debootstrap.sh arvados/debian wheezy http://debian.lcs.mit.edu/debian/
+       echo -n "Built at $(date)" > debian-image
+
index 136b06bbbec62155d5772ebff3bd8c0023100623..e5642831b010f8f8cb7fe68159638132130cfaa5 100644 (file)
@@ -21,6 +21,8 @@ PREREQUISITES
 
 * Ruby (any version)
 
+* sudo privileges to run `debootstrap'
+
 BUILDING
 --------
 
diff --git a/docker/docker_build b/docker/docker_build
new file mode 100755 (executable)
index 0000000..0c0fd18
--- /dev/null
@@ -0,0 +1,18 @@
+#! /bin/bash
+
+# Wrapper script for `docker build'.
+# This is a workaround for https://github.com/dotcloud/docker/issues/1875.
+
+tmpfile=$(mktemp)
+trap "rm $tmpfile; exit 1" SIGHUP SIGINT SIGTERM
+
+docker build $* | tee ${tmpfile}
+if $(grep -q 'Error build' ${tmpfile})
+then
+  result=1
+else
+  result=0
+fi
+
+rm $tmpfile
+exit $result
diff --git a/docker/sso/generated/apache2_vhost b/docker/sso/generated/apache2_vhost
deleted file mode 100644 (file)
index 86ff9ca..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-# VirtualHost definition for the Arvados API server
-
-<VirtualHost *:80>
-  ServerName sso.arvados
-  ServerAdmin sysadmin@clinicalfuture.com
-
-  RedirectPermanent / https://sso.arvados/
-
-  LogLevel warn
-  ErrorLog  ${APACHE_LOG_DIR}/error.log
-  CustomLog ${APACHE_LOG_DIR}/access.log combined
-
-</VirtualHost>
-
-<VirtualHost *:443>
-  ServerName sso.arvados
-  ServerAdmin sysadmin@clinicalfuture.com
-
-  RailsEnv production
-  RackBaseURI /
-  RailsAppSpawnerIdleTime 1200
-
-  # Enable streaming
-  PassengerBufferResponse off
-
-  # Index file and Document Root (where the public files are located)
-  DirectoryIndex index.html
-  DocumentRoot /usr/src/sso-provider/public
-
-  LogLevel warn
-  ErrorLog  ${APACHE_LOG_DIR}/ssl_error.log
-  CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
-
-  <Directory /usr/src/sso-provider/public>
-    Options Indexes FollowSymLinks MultiViews IncludesNoExec
-    AllowOverride None
-    Order allow,deny
-    allow from all
-  </Directory>
-
-  <IfModule mod_ssl.c>
-    SSLEngine on
-    # SSLCertificateChainFile /etc/ssl/certs/startcom.sub.class1.server.ca.pem
-    # SSLCACertificateFile    /etc/ssl/certs/startcom.ca.pem
-    # SSLCertificateFile      /etc/ssl/certs/qr1hi.arvadosapi.com.crt.pem
-    # SSLCertificateKeyFile   /etc/ssl/private/qr1hi.arvadosapi.com.key.pem
-    SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
-    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
-    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
-  </IfModule>
-
-</VirtualHost>