18657: What if we get rid of setting GEM_HOME entirely
authorPeter Amstutz <peter.amstutz@curii.com>
Mon, 7 Feb 2022 15:41:06 +0000 (10:41 -0500)
committerPeter Amstutz <peter.amstutz@curii.com>
Mon, 7 Feb 2022 15:41:06 +0000 (10:41 -0500)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

tools/arvbox/bin/arvbox
tools/arvbox/lib/arvbox/docker/Dockerfile.base
tools/arvbox/lib/arvbox/docker/api-setup.sh
tools/arvbox/lib/arvbox/docker/common.sh
tools/arvbox/lib/arvbox/docker/createusers.sh
tools/arvbox/lib/arvbox/docker/service/api/run-service
tools/arvbox/lib/arvbox/docker/service/doc/run-service
tools/arvbox/lib/arvbox/docker/service/gitolite/run-service
tools/arvbox/lib/arvbox/docker/service/ready/run-service
tools/arvbox/lib/arvbox/docker/service/workbench/run-service

index ca98ff63f1492a55e7b4d03ad3442f3fd37b8665..dd53d89c0f8ac8a6b0438ea2daa883d2c0199b60 100755 (executable)
@@ -72,7 +72,6 @@ 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.7.0"
 
 getip() {
     docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $ARVBOX_CONTAINER
@@ -144,7 +143,6 @@ docker_run_dev() {
            "--volume=$PG_DATA:/var/lib/postgresql:rw" \
            "--volume=$VAR_DATA:$ARVADOS_CONTAINER_PATH:rw" \
            "--volume=$PASSENGER:/var/lib/passenger:rw" \
-           "--volume=$GEMS:$GEM_HOME:rw" \
            "--volume=$PIPCACHE:/var/lib/pip:rw" \
            "--volume=$NPMCACHE:/var/lib/npm:rw" \
            "--volume=$GOSTUFF:/var/lib/gopath:rw" \
@@ -295,7 +293,6 @@ run() {
                    -e COLUMNS=$(tput cols) \
                    -e TERM=$TERM \
                    -e WORKSPACE=/usr/src/arvados \
-                   -e GEM_HOME=$GEM_HOME \
                    -e CONFIGSRC=$ARVADOS_CONTAINER_PATH/run_tests \
                    $ARVBOX_CONTAINER \
                    /usr/local/lib/arvbox/runsu.sh \
@@ -469,7 +466,6 @@ case "$subcmd" in
                -e LINES=$(tput lines) \
                -e COLUMNS=$(tput cols) \
                -e TERM=$TERM \
-               -e GEM_HOME=$GEM_HOME \
                $ARVBOX_CONTAINER /bin/bash
         ;;
 
@@ -478,14 +474,13 @@ case "$subcmd" in
                -e LINES=$(tput lines) \
                -e COLUMNS=$(tput cols) \
                -e TERM=$TERM \
-               -e GEM_HOME=$GEM_HOME \
                -u arvbox \
                -w /usr/src/arvados \
                $ARVBOX_CONTAINER /bin/bash --login
         ;;
 
     pipe)
-        exec docker exec -i $ARVBOX_CONTAINER /usr/bin/env GEM_HOME=$GEM_HOME /bin/bash -
+        exec docker exec -i $ARVBOX_CONTAINER /usr/bin/env /bin/bash -
         ;;
 
     stop)
@@ -650,7 +645,7 @@ case "$subcmd" in
         ;;
 
     hotreset)
-        exec docker exec -i $ARVBOX_CONTAINER /usr/bin/env GEM_HOME=$GEM_HOME /bin/bash - <<EOF
+        exec docker exec -i $ARVBOX_CONTAINER /usr/bin/env /bin/bash - <<EOF
 sv stop api
 sv stop controller
 sv stop websockets
@@ -660,7 +655,7 @@ sv stop keepproxy
 cd /usr/src/arvados/services/api
 export DISABLE_DATABASE_ENVIRONMENT_CHECK=1
 export RAILS_ENV=development
-flock $GEM_HOME/gems.lock bin/bundle exec rake db:drop
+bin/bundle exec rake db:drop
 rm $ARVADOS_CONTAINER_PATH/api_database_setup
 rm $ARVADOS_CONTAINER_PATH/superuser_token
 sv start api
index 822eda0ad0d88b219571d737a3b0e9761328697f..b984aeb7f5fd78568ae5fea7799a867288ad1511 100644 (file)
@@ -98,9 +98,6 @@ RUN /etc/init.d/postgresql start && \
     su postgres -c 'createuser -s arvbox' && \
     /etc/init.d/postgresql stop
 
-ENV GEM_HOME /var/lib/arvados/lib/ruby/gems/2.7.0
-ENV PATH $PATH:$GEM_HOME/bin
-
 VOLUME /var/lib/docker
 VOLUME /var/log/nginx
 VOLUME /etc/ssl/private
index 6e455b8297fe2bc9c18e76a44b6fba27733d5f16..9bc8ac076d89cf60bb777af7206f329bf52273f6 100755 (executable)
@@ -56,16 +56,16 @@ EOF
 fi
 
 if ! test -f $ARVADOS_CONTAINER_PATH/api_database_setup ; then
-   flock $GEM_HOME/gems.lock bin/rake db:setup
+   bin/rake db:setup
    touch $ARVADOS_CONTAINER_PATH/api_database_setup
 fi
 
 if ! test -s $ARVADOS_CONTAINER_PATH/superuser_token ; then
-    superuser_tok=$(flock $GEM_HOME/gems.lock bin/bundle exec ./script/create_superuser_token.rb)
+    superuser_tok=$(bin/bundle exec ./script/create_superuser_token.rb)
     echo "$superuser_tok" > $ARVADOS_CONTAINER_PATH/superuser_token
 fi
 
 rm -rf tmp
 mkdir -p tmp/cache
 
-flock $GEM_HOME/gems.lock bin/rake db:migrate
+bin/rake db:migrate
index 14e850ed3d493259e922a83cdb038dc2abc67704..54379a5ed3dc49fc8c2cb5456e4ddf44e4acb74f 100644 (file)
@@ -6,8 +6,7 @@ export RUBY_VERSION=2.7.0
 export BUNDLER_VERSION=2.2.19
 
 export DEBIAN_FRONTEND=noninteractive
-export GEM_HOME=/var/lib/arvados/lib/ruby/gems/$RUBY_VERSION
-export PATH=${PATH}:/usr/local/go/bin:$GEM_HOME/bin:/var/lib/arvados/bin
+export PATH=${PATH}:/usr/local/go/bin:/var/lib/arvados/bin
 export npm_config_cache=/var/lib/npm
 export npm_config_cache_min=Infinity
 export R_LIBS=/var/lib/Rlibs
@@ -74,8 +73,8 @@ run_bundler() {
        # If present, use the one associated with rails workbench or API
        BUNDLER=$PWD/bin/bundle
     fi
-    if ! flock $GEM_HOME/gems.lock $BUNDLER install --verbose --local --no-deployment $frozen "$@" ; then
-        flock $GEM_HOME/gems.lock $BUNDLER install --verbose --no-deployment $frozen "$@"
+    if ! $BUNDLER install --verbose --local --no-deployment $frozen "$@" ; then
+        $BUNDLER install --verbose --no-deployment $frozen "$@"
     fi
 }
 
index 6aeea1f076e3ded89ed8420aed9e8084d84ccf08..f5cbc72e0dcaa92c127f29af7fba3500b1f50748 100755 (executable)
@@ -5,14 +5,13 @@
 
 set -e -o pipefail
 
-export GEM_HOME=/var/lib/arvados/lib/ruby/gems/2.7.0
 export ARVADOS_CONTAINER_PATH=/var/lib/arvados-arvbox
 
 if ! grep "^arvbox:" /etc/passwd >/dev/null 2>/dev/null ; then
     HOSTUID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f4)
     HOSTGID=$(ls -nd /usr/src/arvados | sed 's/ */ /' | cut -d' ' -f5)
 
-    mkdir -p $ARVADOS_CONTAINER_PATH/git $GEM_HOME \
+    mkdir -p $ARVADOS_CONTAINER_PATH/git \
           /var/lib/passenger /var/lib/gopath \
           /var/lib/pip /var/lib/npm
 
@@ -32,7 +31,7 @@ if ! grep "^arvbox:" /etc/passwd >/dev/null 2>/dev/null ; then
     useradd --groups docker crunch
 
     if [[ "$1" != --no-chown ]] ; then
-        chown arvbox:arvbox -R /usr/local $ARVADOS_CONTAINER_PATH $GEM_HOME \
+        chown arvbox:arvbox -R /usr/local $ARVADOS_CONTAINER_PATH \
               /var/lib/passenger /var/lib/postgresql \
               /var/lib/nginx /var/log/nginx /etc/ssl/private \
               /var/lib/gopath /var/lib/pip /var/lib/npm \
@@ -53,7 +52,6 @@ if ! grep "^arvbox:" /etc/passwd >/dev/null 2>/dev/null ; then
 
     cat <<EOF > /etc/profile.d/paths.sh
 export PATH=/var/lib/arvados/bin:/usr/local/bin:/usr/bin:/bin
-export GEM_HOME=/var/lib/arvados/lib/ruby/gems/2.7.0
 export npm_config_cache=/var/lib/npm
 export npm_config_cache_min=Infinity
 export R_LIBS=/var/lib/Rlibs
index e93dfec9bf0cf4d305a686728053a4bc8cd89b4e..974ac9865217fb1ff2197b9cc767d8802ecf45cc 100755 (executable)
@@ -17,8 +17,8 @@ else
 fi
 
 run_bundler --without=development --binstubs
-flock $GEM_HOME/gems.lock bin/passenger-config build-native-support
-flock $GEM_HOME/gems.lock bin/passenger-config install-standalone-runtime
+bin/passenger-config build-native-support
+bin/passenger-config install-standalone-runtime
 
 if test "$1" = "--only-deps" ; then
     exit
index 36566c9d9b5ac1b95dd3c85c40f148ed123125b0..aa7e0822e2bb67480cef6a405ddac86086c60ab6 100755 (executable)
@@ -29,4 +29,4 @@ if test "$1" = "--only-deps" ; then
 fi
 
 cd /usr/src/arvados/doc
-flock $GEM_HOME/gems.lock bundle exec rake generate baseurl=http://$localip:${services[doc]} arvados_api_host=$localip:${services[controller-ssl]} arvados_workbench_host=http://$localip
+bundle exec rake generate baseurl=http://$localip:${services[doc]} arvados_api_host=$localip:${services[controller-ssl]} arvados_workbench_host=http://$localip
index 698367b8a6766d399b976c8632c7cc80c3b3a6bc..55aff375fc73ea0f72469433727fda9f226b6996 100755 (executable)
@@ -125,6 +125,6 @@ $RAILS_ENV:
 EOF
 
 while true ; do
-    flock $GEM_HOME/gems.lock bundle exec script/arvados-git-sync.rb $RAILS_ENV
+    bundle exec script/arvados-git-sync.rb $RAILS_ENV
     sleep 120
 done
index f49e9ea26fdc3e2294217d58d3d614b6784d1bb9..6aab2950059ea6ccc3fc76c6de45d81aeb9090f4 100755 (executable)
@@ -63,7 +63,7 @@ fi
 
 if ! [[ -z "$waiting" ]] ; then
     if ps x | grep -v grep | grep "bundle install" > /dev/null; then
-        gemcount=$(ls $GEM_HOME/gems 2>/dev/null | wc -l)
+        gemcount=0  # $(ls $GEM_HOME/gems 2>/dev/null | wc -l)
 
         gemlockcount=0
         for l in /usr/src/arvados/services/api/Gemfile.lock \
index dde101e6306a7bf6574d17f7fb8f6bc6376ff39e..84d3017defea2984186611a821c8216247b1aacc 100755 (executable)
@@ -23,8 +23,8 @@ else
 fi
 
 run_bundler --without=development --binstubs
-flock $GEM_HOME/gems.lock bin/passenger-config build-native-support
-flock $GEM_HOME/gems.lock bin/passenger-config install-standalone-runtime
+bin/passenger-config build-native-support
+bin/passenger-config install-standalone-runtime
 mkdir -p /usr/src/arvados/apps/workbench/tmp
 
 if test "$1" = "--only-deps" ; then
@@ -34,7 +34,7 @@ cat >config/application.yml <<EOF
 $RAILS_ENV:
   keep_web_url: https://example.com/c=%{uuid_or_pdh}
 EOF
-   RAILS_GROUPS=assets flock $GEM_HOME/gems.lock bin/rake npm:install
+   RAILS_GROUPS=assets bin/rake npm:install
    rm config/application.yml
    exit
 fi
@@ -43,5 +43,5 @@ set -u
 
 secret_token=$(cat $ARVADOS_CONTAINER_PATH/workbench_secret_token)
 
-RAILS_GROUPS=assets flock $GEM_HOME/gems.lock bin/rake npm:install
-flock $GEM_HOME/gems.lock bin/rake assets:precompile
+RAILS_GROUPS=assets bin/rake npm:install
+bin/rake assets:precompile