From: Peter Amstutz Date: Fri, 18 Feb 2022 01:36:11 +0000 (-0500) Subject: Readjust arvbox GEM_HOME to ~/.gem to avoid stepping on base image gems X-Git-Tag: 2.4.0~81 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/3d7125ec931701fa7367234f480da5a9fd81ca78 Readjust arvbox GEM_HOME to ~/.gem to avoid stepping on base image gems Instead of replacing the entire /var/lib/arvados/lib/ruby/gems directory, mount it in the place of the default user directory that 'gem' already looks for. refs #18789 Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/tools/arvbox/bin/arvbox b/tools/arvbox/bin/arvbox index e7d03677ea..e021b442f1 100755 --- a/tools/arvbox/bin/arvbox +++ b/tools/arvbox/bin/arvbox @@ -143,7 +143,7 @@ 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:/var/lib/arvados/lib/ruby/gems:rw" \ + "--volume=$GEMS:/var/lib/arvados-arvbox/.gem:rw" \ "--volume=$PIPCACHE:/var/lib/pip:rw" \ "--volume=$NPMCACHE:/var/lib/npm:rw" \ "--volume=$GOSTUFF:/var/lib/gopath:rw" \ diff --git a/tools/arvbox/lib/arvbox/docker/common.sh b/tools/arvbox/lib/arvbox/docker/common.sh index c44e7c4101..5e16264c8a 100644 --- a/tools/arvbox/lib/arvbox/docker/common.sh +++ b/tools/arvbox/lib/arvbox/docker/common.sh @@ -12,7 +12,8 @@ export npm_config_cache_min=Infinity export R_LIBS=/var/lib/Rlibs export HOME=$(getent passwd arvbox | cut -d: -f6) export ARVADOS_CONTAINER_PATH=/var/lib/arvados-arvbox -GEMLOCK=/var/lib/arvados/lib/ruby/gems/gems.lock +export GEM_HOME=$HOME/.gem +GEMLOCK=$GEM_HOME/gems.lock defaultdev=$(/sbin/ip route|awk '/default/ { print $5 }') dockerip=$(/sbin/ip route | grep default | awk '{ print $3 }') @@ -63,7 +64,7 @@ else fi run_bundler() { - flock $GEMLOCK /var/lib/arvados/bin/gem install --no-document bundler:$BUNDLER_VERSION + flock $GEMLOCK /var/lib/arvados/bin/gem install --no-document --user bundler:$BUNDLER_VERSION if test -f Gemfile.lock ; then frozen=--frozen else diff --git a/tools/arvbox/lib/arvbox/docker/service/ready/run-service b/tools/arvbox/lib/arvbox/docker/service/ready/run-service index 6ec788589f..5007fe0be3 100755 --- a/tools/arvbox/lib/arvbox/docker/service/ready/run-service +++ b/tools/arvbox/lib/arvbox/docker/service/ready/run-service @@ -63,7 +63,7 @@ fi if ! [[ -z "$waiting" ]] ; then if ps x | grep -v grep | grep "bundle install" > /dev/null; then - gemcount=$(ls /var/lib/arvados/lib/ruby/gems/*/gems 2>/dev/null | wc -l) + gemcount=$(ls /var/lib/arvados/lib/ruby/gems/*/gems /var/lib/arvados-arvbox/.gem/ruby/*/gems 2>/dev/null | wc -l) gemlockcount=0 for l in /usr/src/arvados/services/api/Gemfile.lock \