Merge branch '2257-inequality-conditions' into 2290-user-activity
[arvados.git] / docker / build.sh
old mode 100755 (executable)
new mode 100644 (file)
index baef0e8..6478f81
@@ -1,24 +1,42 @@
-#! /bin/sh
+#! /bin/bash
 
-# build the base wheezy image, if it doesn't already exist
-(docker images | grep '^arvados/debian') || \
-  ./mkimage-debootstrap.sh arvados/debian wheezy http://debian.lcs.mit.edu/debian/
+build_ok=true
 
-# build the Docker images
-docker build -t arvados/base base
+# Check that:
+#   * IP forwarding is enabled in the kernel.
 
-mkdir -p api/generated
-tar -c -z -f api/generated/api.tar.gz -C ../services api
-docker build -t arvados/api api
+if [ "$(/sbin/sysctl --values net.ipv4.ip_forward)" != "1" ]
+then
+    echo >&2 "WARNING: IP forwarding must be enabled in the kernel."
+    echo >&2 "Try: sudo sysctl net.ipv4.ip_forward=1"
+    build_ok=false
+fi
 
-mkdir -p docserver/generated
-tar -c -z -f docserver/generated/doc.tar.gz -C .. doc
-docker build -t arvados/docserver docserver
+#   * Docker can be found in the user's path
+#   * The user is in the docker group
+#   * cgroup is mounted
+#   * the docker daemon is running
 
-mkdir -p workbench/generated
-tar -c -z -f workbench/generated/workbench.tar.gz -C ../apps workbench
-docker build -t arvados/workbench workbench
+if ! docker images > /dev/null 2>&1
+then
+    echo >&2 "WARNING: docker could not be run."
+    echo >&2 "Please make sure that:"
+    echo >&2 "  * You have permission to read and write /var/run/docker.sock"
+    echo >&2 "  * a 'cgroup' volume is mounted on your machine"
+    echo >&2 "  * the docker daemon is running"
+    build_ok=false
+fi
 
-mkdir -p warehouse/generated
-tar -c -z -f warehouse/generated/warehouse.tar.gz -C ../.. warehouse-apps
-docker build -t arvados/warehouse warehouse
+#   * config.yml exists
+if [ '!' -f config.yml ]
+then
+    echo >&2 "WARNING: no config.yml found in the current directory"
+    echo >&2 "Copy config.yml.example to config.yml and update it with settings for your site."
+    build_ok=false
+fi
+
+# If ok to build, then go ahead and run make
+if $build_ok
+then
+    make $*
+fi