X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3aaefcb3c76ff470b475d950398d01255e87712a..40aff12f447f1d4c314972e85531b4a9bb835d95:/tools/arvbox/lib/arvbox/docker/common.sh diff --git a/tools/arvbox/lib/arvbox/docker/common.sh b/tools/arvbox/lib/arvbox/docker/common.sh index eb53e19049..54379a5ed3 100644 --- a/tools/arvbox/lib/arvbox/docker/common.sh +++ b/tools/arvbox/lib/arvbox/docker/common.sh @@ -2,9 +2,11 @@ # # SPDX-License-Identifier: AGPL-3.0 +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/2.5.0 -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 @@ -60,28 +62,19 @@ else fi run_bundler() { + /var/lib/arvados/bin/gem install --no-document bundler:$BUNDLER_VERSION if test -f Gemfile.lock ; then - # The 'gem install bundler line below' is cf. - # https://bundler.io/blog/2019/05/14/solutions-for-cant-find-gem-bundler-with-executable-bundle.html, - # until we get bundler 2.7.10/3.0.0 or higher - flock $GEM_HOME/gems.lock gem install bundler --no-document -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | tail -n 1|tr -d ' ')" frozen=--frozen else frozen="" fi - # if ! test -x $GEM_HOME/bin/bundler ; then - # bundleversion=2.0.2 - # bundlergem=$(ls -r $GEM_HOME/cache/bundler-${bundleversion}.gem 2>/dev/null | head -n1 || true) - # if test -n "$bundlergem" ; then - # flock $GEM_HOME/gems.lock gem install --verbose --local --no-document $bundlergem - # else - # flock $GEM_HOME/gems.lock gem install --verbose --no-document bundler --version ${bundleversion} - # fi - # fi - # Make sure to put the gem binaries in the right place - flock /var/lib/arvados/lib/ruby/gems/2.5.0/gems.lock bundler config bin $GEM_HOME/bin - 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 "$@" + BUNDLER=bundle + if test -x $PWD/bin/bundle ; then + # If present, use the one associated with rails workbench or API + BUNDLER=$PWD/bin/bundle + fi + if ! $BUNDLER install --verbose --local --no-deployment $frozen "$@" ; then + $BUNDLER install --verbose --no-deployment $frozen "$@" fi }