X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/bcb16d1825fd2e3105a51a2a2f9a119d71f33c8d..f57467be5f17a0894b213f632af9af53b6e57bdc:/tools/arvbox/bin/arvbox diff --git a/tools/arvbox/bin/arvbox b/tools/arvbox/bin/arvbox index 29f25daf8c..516ea35341 100755 --- a/tools/arvbox/bin/arvbox +++ b/tools/arvbox/bin/arvbox @@ -52,6 +52,17 @@ if test -z "$WORKBENCH2_ROOT" ; then WORKBENCH2_ROOT="$ARVBOX_DATA/workbench2" fi +if test -z "$ARVADOS_BRANCH" ; then + ARVADOS_BRANCH=main +fi + +if test -z "$WORKBENCH2_BRANCH" ; then + WORKBENCH2_BRANCH=main +fi + +# Update this to the docker tag for the version on releases. +DEFAULT_TAG= + PG_DATA="$ARVBOX_DATA/postgres" VAR_DATA="$ARVBOX_DATA/var" PASSENGER="$ARVBOX_DATA/passenger" @@ -61,7 +72,7 @@ NPMCACHE="$ARVBOX_DATA/npm" GOSTUFF="$ARVBOX_DATA/gopath" RLIBS="$ARVBOX_DATA/Rlibs" ARVADOS_CONTAINER_PATH="/var/lib/arvados-arvbox" -GEM_HOME="/var/lib/arvados/lib/ruby/gems/2.5.0" +GEM_HOME="/var/lib/arvados/lib/ruby/gems/2.7.0" getip() { docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $ARVBOX_CONTAINER @@ -187,6 +198,10 @@ run() { fi fi + if test -z "$TAG" -a -n "$DEFAULT_TAG"; then + TAG=":$DEFAULT_TAG" + fi + if [[ "$CONFIG" =~ ^public ]] ; then if test -n "$ARVBOX_PUBLISH_IP" ; then localip=$ARVBOX_PUBLISH_IP @@ -205,6 +220,7 @@ run() { --publish=8900:8900 --publish=9000:9000 --publish=9002:9002 + --publish=9004:9004 --publish=25101:25101 --publish=8001:8001 --publish=8002:8002 @@ -240,14 +256,15 @@ run() { if ! test -d "$ARVADOS_ROOT" ; then git clone https://git.arvados.org/arvados.git "$ARVADOS_ROOT" + git -C "$ARVADOS_ROOT" checkout $ARVADOS_BRANCH fi if ! test -d "$COMPOSER_ROOT" ; then git clone https://github.com/arvados/composer.git "$COMPOSER_ROOT" git -C "$COMPOSER_ROOT" checkout arvados-fork - git -C "$COMPOSER_ROOT" pull fi if ! test -d "$WORKBENCH2_ROOT" ; then git clone https://git.arvados.org/arvados-workbench2.git "$WORKBENCH2_ROOT" + git -C "$ARVADOS_ROOT" checkout $WORKBENCH2_BRANCH fi if [[ "$CONFIG" = test ]] ; then @@ -389,9 +406,24 @@ build() { BUILDTYPE=dev fi - docker build --build-arg=BUILDTYPE=$BUILDTYPE $NO_CACHE --build-arg=arvados_version=$GITHEAD --build-arg=workdir=/tools/arvbox/lib/arvbox/docker -t arvados/arvbox-base:$GITHEAD -f "$ARVBOX_DOCKER/Dockerfile.base" "$LOCAL_ARVADOS_ROOT" + if test "$ARVADOS_BRANCH" = "main" ; then + ARVADOS_BRANCH=$GITHEAD + fi + + docker build --build-arg=BUILDTYPE=$BUILDTYPE $NO_CACHE \ + --build-arg=arvados_version=$ARVADOS_BRANCH \ + --build-arg=workbench2_version=$WORKBENCH2_BRANCH \ + --build-arg=workdir=/tools/arvbox/lib/arvbox/docker \ + -t arvados/arvbox-base:$GITHEAD \ + -f "$ARVBOX_DOCKER/Dockerfile.base" \ + "$LOCAL_ARVADOS_ROOT" docker tag $FORCE arvados/arvbox-base:$GITHEAD arvados/arvbox-base:latest - docker build $NO_CACHE -t arvados/arvbox-$BUILDTYPE:$GITHEAD -f "$ARVBOX_DOCKER/Dockerfile.$BUILDTYPE" "$ARVBOX_DOCKER" + docker build $NO_CACHE \ + --build-arg=arvados_version=$ARVADOS_BRANCH \ + --build-arg=workbench2_version=$WORKBENCH2_BRANCH \ + -t arvados/arvbox-$BUILDTYPE:$GITHEAD \ + -f "$ARVBOX_DOCKER/Dockerfile.$BUILDTYPE" \ + "$ARVBOX_DOCKER" docker tag $FORCE arvados/arvbox-$BUILDTYPE:$GITHEAD arvados/arvbox-$BUILDTYPE:latest } @@ -565,7 +597,7 @@ case "$subcmd" in else echo "Usage: $0 $subcmd " echo "Available services:" - exec docker execa $ARVBOX_CONTAINER ls /etc/service + exec docker exec $ARVBOX_CONTAINER ls /etc/service fi ;; @@ -622,12 +654,9 @@ sv stop keepproxy cd /usr/src/arvados/services/api export DISABLE_DATABASE_ENVIRONMENT_CHECK=1 export RAILS_ENV=development -bundle exec rake db:drop +flock $GEM_HOME/gems.lock bin/bundle exec rake db:drop rm $ARVADOS_CONTAINER_PATH/api_database_setup rm $ARVADOS_CONTAINER_PATH/superuser_token -rm $ARVADOS_CONTAINER_PATH/keep0-uuid -rm $ARVADOS_CONTAINER_PATH/keep1-uuid -rm $ARVADOS_CONTAINER_PATH/keepproxy-uuid sv start api sv start controller sv start websockets @@ -638,13 +667,21 @@ EOF ;; adduser) - docker exec -ti $ARVBOX_CONTAINER /usr/local/lib/arvbox/edit_users.py $ARVADOS_CONTAINER_PATH/cluster_config.yml.override $(getclusterid) add $@ - docker exec $ARVBOX_CONTAINER sv restart controller +if [[ -n "$2" ]] ; then + docker exec -ti $ARVBOX_CONTAINER /usr/local/lib/arvbox/edit_users.py $ARVADOS_CONTAINER_PATH/cluster_config.yml.override $(getclusterid) add $@ + docker exec $ARVBOX_CONTAINER sv restart controller + else + echo "Usage: adduser [password]" + fi ;; removeuser) - docker exec -ti $ARVBOX_CONTAINER /usr/local/lib/arvbox/edit_users.py $ARVADOS_CONTAINER_PATH/cluster_config.yml.override $(getclusterid) remove $@ - docker exec $ARVBOX_CONTAINER sv restart controller + if [[ -n "$1" ]] ; then + docker exec -ti $ARVBOX_CONTAINER /usr/local/lib/arvbox/edit_users.py $ARVADOS_CONTAINER_PATH/cluster_config.yml.override $(getclusterid) remove $@ + docker exec $ARVBOX_CONTAINER sv restart controller + else + echo "Usage: removeuser " + fi ;; listusers) @@ -681,7 +718,7 @@ EOF echo "sv " echo " change state of service inside arvbox" echo "clone clone dev arvbox" - echo "adduser " + echo "adduser [password]" echo " add a user login" echo "removeuser " echo " remove user login"