Fix "wrong bundler" error starting API server in arvbox
[arvados.git] / tools / arvbox / lib / arvbox / docker / service / workbench / run-service
1 #!/bin/bash
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 exec 2>&1
7 set -ex -o pipefail
8
9 .  /usr/local/lib/arvbox/common.sh
10
11 if test "$1" != "--only-deps" ; then
12   while [ ! -f $ARVADOS_CONTAINER_PATH/api.ready ]; do
13     sleep 1
14   done
15 fi
16
17 cd /usr/src/arvados/apps/workbench
18
19 if test -s $ARVADOS_CONTAINER_PATH/workbench_rails_env ; then
20   export RAILS_ENV=$(cat $ARVADOS_CONTAINER_PATH/workbench_rails_env)
21 else
22   export RAILS_ENV=development
23 fi
24
25 run_bundler --without=development
26 flock $GEM_HOME/gems.lock bin/bundle exec passenger-config build-native-support
27 flock $GEM_HOME/gems.lock bin/bundle exec passenger-config install-standalone-runtime
28 mkdir -p /usr/src/arvados/apps/workbench/tmp
29
30 if test "$1" = "--only-deps" ; then
31    # Workaround for validation that asserts there's a download URL
32    # configured, which breaks rake if it is missing.
33 cat >config/application.yml <<EOF
34 $RAILS_ENV:
35   keep_web_url: https://example.com/c=%{uuid_or_pdh}
36 EOF
37    RAILS_GROUPS=assets flock $GEM_HOME/gems.lock bin/bundle exec rake npm:install
38    rm config/application.yml
39    exit
40 fi
41
42 set -u
43
44 secret_token=$(cat $ARVADOS_CONTAINER_PATH/workbench_secret_token)
45
46 RAILS_GROUPS=assets flock $GEM_HOME/gems.lock bin/bundle exec rake npm:install
47 flock $GEM_HOME/gems.lock bin/bundle exec rake assets:precompile