[ARVADOS-DEV] updated: 9e77eee58a6b6d4470b405dcf9d285c452e278eb

git at public.curoverse.com git at public.curoverse.com
Wed Jan 13 10:20:19 EST 2016


Summary of changes:
 arvbox/README                               | 56 ++++++++++++++++++++++++++++-
 arvbox/bin/arvbox                           | 42 +++++++++++++++-------
 arvbox/lib/arvbox/docker/Dockerfile.base    |  3 +-
 arvbox/lib/arvbox/docker/service/docker/run | 24 ++++++-------
 arvbox/lib/arvbox/docker/waitforpostgres.sh |  4 +++
 jenkins/run-tests.sh                        |  1 +
 6 files changed, 103 insertions(+), 27 deletions(-)
 create mode 100755 arvbox/lib/arvbox/docker/waitforpostgres.sh

       via  9e77eee58a6b6d4470b405dcf9d285c452e278eb (commit)
       via  92546f434119eba728ef2e1cb4591d36324fa703 (commit)
      from  3f61293fb2c19f658e13c9e6b09b5d1c104acf48 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 9e77eee58a6b6d4470b405dcf9d285c452e278eb
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Wed Jan 13 10:20:14 2016 -0500

    8080: Use run-tests --temp.  Attempt to add support for centos6 for docker-in-docker.

diff --git a/arvbox/bin/arvbox b/arvbox/bin/arvbox
index 83a09b5..f6aa0bc 100755
--- a/arvbox/bin/arvbox
+++ b/arvbox/bin/arvbox
@@ -96,6 +96,8 @@ run() {
                 git clone https://github.com/curoverse/arvados-dev.git "$ARVADOS_DEV_ROOT"
             fi
 
+            mkdir -p $VAR_DATA/test
+
             docker run \
                    --detach \
                    --name=$ARVBOX_CONTAINER \
@@ -129,12 +131,8 @@ run() {
                    $ARVBOX_CONTAINER \
                    /usr/local/lib/arvbox/runsu.sh \
                    /usr/src/arvados-dev/jenkins/run-tests.sh \
-                   --leave-temp \
+                   --temp /var/lib/arvados/test \
                    WORKSPACE=/usr/src/arvados \
-                   VENVDIR=/var/lib/arvados/tests-venv \
-                   VENV3DIR=/var/lib/arvados/tests-venv3 \
-                   GOPATH=/var/lib/arvados/tests-gostuff \
-                   GEMHOME=/var/lib/gems/ruby/2.1.0 \
                    GEM_HOME=/var/lib/gems \
                    "$@"
         else
@@ -273,7 +271,7 @@ case "$subcmd" in
     log|svrestart)
         if test -n "$1" ; then
             if test "$subcmd" = log ; then
-                docker exec -ti $ARVBOX_CONTAINER tail -n100 "/etc/service/$1/log/main/current"
+                docker exec -ti $ARVBOX_CONTAINER /usr/bin/env TERM=$TERM less --follow-name +GF "/etc/service/$1/log/main/current"
             fi
             if test "$subcmd" = svrestart ; then
                 docker exec -ti $ARVBOX_CONTAINER sv restart "$1"
diff --git a/arvbox/lib/arvbox/docker/service/docker/run b/arvbox/lib/arvbox/docker/service/docker/run
index 83537d3..64fcc75 100755
--- a/arvbox/lib/arvbox/docker/service/docker/run
+++ b/arvbox/lib/arvbox/docker/service/docker/run
@@ -4,23 +4,23 @@
 
 exec 2>&1
 
-#!/bin/bash
-
 # Ensure that all nodes in /dev/mapper correspond to mapped devices currently loaded by the device-mapper kernel driver
 dmsetup mknodes
 
-# First, make sure that cgroups are mounted correctly.
-CGROUP=/sys/fs/cgroup
 : {LOG:=stdio}
 
-[ -d $CGROUP ] ||
-	mkdir $CGROUP
-
-mountpoint -q $CGROUP ||
-	mount -n -t tmpfs -o uid=0,gid=0,mode=0755 cgroup $CGROUP || {
-		echo "Could not make a tmpfs mount. Did you use --privileged?"
-		exit 1
-	}
+# First, make sure that cgroups are mounted correctly.
+for CGROUP in /sys/fs/cgroup /cgroup ; do
+    [ -d $CGROUP ] || mkdir $CGROUP
+
+    if mountpoint -q $CGROUP ; then
+        break
+    else
+	if mount -n -t tmpfs -o uid=0,gid=0,mode=0755 cgroup $CGROUP ; then
+            break
+        fi
+    fi
+done
 
 if [ -d /sys/kernel/security ] && ! mountpoint -q /sys/kernel/security
 then
diff --git a/jenkins/run-tests.sh b/jenkins/run-tests.sh
index e50d485..a7b5fda 100755
--- a/jenkins/run-tests.sh
+++ b/jenkins/run-tests.sh
@@ -589,6 +589,7 @@ bundle_install_trylocal() {
             echo "(Running bundle install again, without --local.)"
             bundle install --no-deployment
         fi
+        bundle package --all
     )
 }
 

commit 92546f434119eba728ef2e1cb4591d36324fa703
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Jan 12 16:02:12 2016 -0500

    8080: Add waitforpostgres.sh script.  Expand README.

diff --git a/arvbox/README b/arvbox/README
index bfc4ab4..d8179bc 100644
--- a/arvbox/README
+++ b/arvbox/README
@@ -2,9 +2,32 @@ Arvados-in-a-box
 
 Development and demonstration environment for Arvados.
 
+
+Quick start:
+
+$ ./bin/arvbox reboot dev
+
+
 Usage:
 
-$ ./bin/arvbox reboot
+Arvados-in-a-box
+
+arvbox (build|start|run|open|shell|ip|stop|reboot|reset|destroy|log|svrestart)
+
+build <config>      build arvbox Docker image
+start|run <config>  start arvbox container
+open       open arvbox workbench in a web browser
+shell      enter arvbox shell
+ip         print arvbox ip address
+stop       stop arvbox container
+restart <config>  stop, then run again
+reboot  <config>  stop, build arvbox Docker image, run
+reset      delete arvbox arvados data (be careful!)
+destroy    delete all arvbox code and data (be careful!)
+log       <service> tail log of specified service
+svrestart <service> restart specified service inside arvbox
+clone <from> <to>   clone an arvbox
+
 
 Notes:
 
@@ -16,3 +39,34 @@ Services are run with process supervision, so a service which exits will be
 restarted.  Dependencies between services are handled by repeatedly trying and
 failing the service script until dependencies are fulfilled (by other service
 scripts) enabling the service script to complete.
+
+
+Environment variables:
+
+ARVBOX_DOCKER
+The location of Dockerfile.base and associated files used by "arvbox build".
+default: result of $(readlink -f $(dirname $0)/../lib/arvbox/docker)
+
+ARVBOX_CONTAINER
+The name of the Docker container to manipulate.
+default: arvbox
+
+ARVBOX_BASE
+The base directory to store persistent data for arvbox containers.
+default: $HOME/.arvbox
+
+ARVBOX_DATA
+The base directory to store persistent data for the current container.
+default: $ARVBOX_BASE/$ARVBOX_CONTAINER
+
+ARVADOS_ROOT
+The root directory of the Arvados source tree
+default: $ARVBOX_DATA/arvados
+
+ARVADOS_DEV_ROOT
+The root directory of the Arvados-dev source tree
+default: $ARVBOX_DATA/arvados-dev
+
+SSO_ROOT
+The root directory of the SSO source tree
+default: $ARVBOX_DATA/sso-devise-omniauth-provider
diff --git a/arvbox/bin/arvbox b/arvbox/bin/arvbox
index 2e23a98..83a09b5 100755
--- a/arvbox/bin/arvbox
+++ b/arvbox/bin/arvbox
@@ -39,6 +39,24 @@ VAR_DATA="$ARVBOX_DATA/var"
 PASSENGER="$ARVBOX_DATA/passenger"
 GEMS="$ARVBOX_DATA/gems"
 
+getip() {
+    docker inspect $ARVBOX_CONTAINER | grep \"IPAddress\" | head -n1 | tr -d ' ":,\n' | cut -c10-
+}
+
+updateconf() {
+    if test -f ~/.config/arvados/$ARVBOX_CONTAINER.conf ; then
+        sed "s/ARVADOS_API_HOST=.*/ARVADOS_API_HOST=$(getip):8000/" <$HOME/.config/arvados/$ARVBOX_CONTAINER.conf >$HOME/.config/arvados/$ARVBOX_CONTAINER.conf.tmp
+        mv ~/.config/arvados/$ARVBOX_CONTAINER.conf.tmp ~/.config/arvados/$ARVBOX_CONTAINER.conf
+    else
+        mkdir -p $HOME/.config/arvados
+        cat >$HOME/.config/arvados/$ARVBOX_CONTAINER.conf <<EOF
+ARVADOS_API_HOST=$(getip):8000
+ARVADOS_API_TOKEN=
+ARVADOS_API_HOST_INSECURE=true
+EOF
+    fi
+}
+
 run() {
     if docker ps -a | grep -E "$ARVBOX_CONTAINER$" -q ; then
         echo "Container $ARVBOX_CONTAINER is already running, use stop, restart or reboot"
@@ -60,6 +78,7 @@ run() {
                --privileged \
                --volumes-from $ARVBOX_CONTAINER-data \
                arvados/arvbox-demo
+        updateconf
     else
         mkdir -p "$PG_DATA" "$VAR_DATA" "$PASSENGER" "$GEMS"
 
@@ -91,12 +110,10 @@ run() {
                    arvados/arvbox-dev \
                    /usr/local/bin/runsvinit -svdir=/etc/test-service
 
-            while ! docker exec -ti \
+            docker exec -ti \
                     $ARVBOX_CONTAINER \
                     /usr/local/lib/arvbox/runsu.sh \
-                    psql -c'\du' ; do
-                sleep 1
-            done
+                    /usr/local/lib/arvbox/waitforpostgres.sh
 
             docker exec -ti \
                    $ARVBOX_CONTAINER \
@@ -132,6 +149,7 @@ run() {
                    "--volume=$PASSENGER:/var/lib/passenger:rw" \
                    "--volume=$GEMS:/var/lib/gems:rw" \
                    arvados/arvbox-dev
+            updateconf
             FF=/tmp/arvbox-fifo-$$
             mkfifo $FF
             docker logs -f $ARVBOX_CONTAINER > $FF &
@@ -144,6 +162,7 @@ run() {
             done < $FF
             rm $FF
             echo
+            echo "export ARVADOS_API_HOST="
             echo "The Arvados source code is checked out at: $ARVADOS_ROOT"
         fi
     fi
@@ -215,11 +234,10 @@ case "$subcmd" in
         ;;
 
     ip|open)
-        IP=$(docker inspect $ARVBOX_CONTAINER | grep \"IPAddress\" | head -n1 | tr -d ' ":,\n' | cut -c10-)
         if test "$subcmd" = 'ip' ; then
-            echo $IP
+            echo $(getip)
         else
-            xdg-open http://$IP
+            xdg-open http://$(getip)
         fi
         ;;
 
diff --git a/arvbox/lib/arvbox/docker/Dockerfile.base b/arvbox/lib/arvbox/docker/Dockerfile.base
index e9b90ac..23fca74 100644
--- a/arvbox/lib/arvbox/docker/Dockerfile.base
+++ b/arvbox/lib/arvbox/docker/Dockerfile.base
@@ -21,7 +21,8 @@ RUN cd /root && \
 ADD fuse.conf /etc/
 
 ADD crunch-setup.sh gitolite.rc \
-    keep-setup.sh common.sh createusers.sh logger runsu.sh \
+    keep-setup.sh common.sh createusers.sh \
+    logger runsu.sh waitforpostgres.sh \
     /usr/local/lib/arvbox/
 ADD service/ /usr/local/lib/arvbox/service
 RUN rmdir /etc/service && ln -sf /usr/local/lib/arvbox/service /etc
diff --git a/arvbox/lib/arvbox/docker/waitforpostgres.sh b/arvbox/lib/arvbox/docker/waitforpostgres.sh
new file mode 100755
index 0000000..a07fa8c
--- /dev/null
+++ b/arvbox/lib/arvbox/docker/waitforpostgres.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+while ! psql -c\\du >/dev/null 2>/dev/null ; do
+    sleep 1
+done

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list