13025: Merge branch 'master' into 13025-keepstore-metrics
[arvados.git] / tools / arvbox / lib / arvbox / docker / common.sh
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5
6 export PATH=${PATH}:/usr/local/go/bin:/var/lib/gems/bin
7 export GEM_HOME=/var/lib/gems
8 export GEM_PATH=/var/lib/gems
9 export npm_config_cache=/var/lib/npm
10 export npm_config_cache_min=Infinity
11 export R_LIBS=/var/lib/Rlibs
12
13 if test -s /var/run/localip_override ; then
14     localip=$(cat /var/run/localip_override)
15 else
16     defaultdev=$(/sbin/ip route|awk '/default/ { print $5 }')
17     localip=$(ip addr show $defaultdev | grep 'inet ' | sed 's/ *inet \(.*\)\/.*/\1/')
18 fi
19
20 declare -A services
21 services=(
22   [workbench]=80
23   [api]=8000
24   [sso]=8900
25   [composer]=4200
26   [arv-git-httpd]=9001
27   [keep-web]=9002
28   [keepproxy]=25100
29   [keepstore0]=25107
30   [keepstore1]=25108
31   [ssh]=22
32   [doc]=8001
33   [websockets]=8002
34 )
35
36 if test "$(id arvbox -u 2>/dev/null)" = 0 ; then
37     PGUSER=postgres
38     PGGROUP=postgres
39 else
40     PGUSER=arvbox
41     PGGROUP=arvbox
42 fi
43
44 run_bundler() {
45     if test -f Gemfile.lock ; then
46         frozen=--frozen
47     else
48         frozen=""
49     fi
50     if ! test -x /var/lib/gems/bin/bundler ; then
51         bundlergem=$(ls -r $GEM_HOME/cache/bundler-*.gem 2>/dev/null | head -n1 || true)
52         if test -n "$bundlergem" ; then
53             flock /var/lib/gems/gems.lock gem install --local --no-document $bundlergem
54         else
55             flock /var/lib/gems/gems.lock gem install --no-document bundler
56         fi
57     fi
58     if ! flock /var/lib/gems/gems.lock bundler install --path $GEM_HOME --local --no-deployment $frozen "$@" ; then
59         flock /var/lib/gems/gems.lock bundler install --path $GEM_HOME --no-deployment $frozen "$@"
60     fi
61 }
62
63 pip_install() {
64     pushd /var/lib/pip
65     for p in $(ls http*.tar.gz) $(ls http*.tar.bz2) $(ls http*.whl) $(ls http*.zip) ; do
66         if test -f $p ; then
67             ln -sf $p $(echo $p | sed 's/.*%2F\(.*\)/\1/')
68         fi
69     done
70     popd
71
72     if ! pip install --no-index --find-links /var/lib/pip $1 ; then
73         pip install $1
74     fi
75 }