36ff49db51b3b011dc6dea0346c530cb27cb6dd9
[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 export HOME=$(getent passwd arvbox | cut -d: -f6)
13
14 if test -s /var/run/localip_override ; then
15     localip=$(cat /var/run/localip_override)
16 else
17     defaultdev=$(/sbin/ip route|awk '/default/ { print $5 }')
18     localip=$(ip addr show $defaultdev | grep 'inet ' | sed 's/ *inet \(.*\)\/.*/\1/')
19 fi
20
21 declare -A services
22 services=(
23   [workbench]=443
24   [workbench2]=3000
25   [workbench2-ssl]=3001
26   [api]=8004
27   [controller]=8003
28   [controller-ssl]=8000
29   [sso]=8900
30   [composer]=4200
31   [arv-git-httpd]=9001
32   [keep-web]=9003
33   [keep-web-ssl]=9002
34   [keepproxy]=25100
35   [keepstore0]=25107
36   [keepstore1]=25108
37   [ssh]=22
38   [doc]=8001
39   [websockets]=8005
40   [websockets-ssl]=8002
41 )
42
43 if test "$(id arvbox -u 2>/dev/null)" = 0 ; then
44     PGUSER=postgres
45     PGGROUP=postgres
46 else
47     PGUSER=arvbox
48     PGGROUP=arvbox
49 fi
50
51 run_bundler() {
52     if test -f Gemfile.lock ; then
53         frozen=--frozen
54     else
55         frozen=""
56     fi
57     if ! test -x /var/lib/gems/bin/bundler ; then
58         bundlergem=$(ls -r $GEM_HOME/cache/bundler-*.gem 2>/dev/null | head -n1 || true)
59         if test -n "$bundlergem" ; then
60             flock /var/lib/gems/gems.lock gem install --local --no-document $bundlergem
61         else
62             flock /var/lib/gems/gems.lock gem install --no-document bundler
63         fi
64     fi
65     if ! flock /var/lib/gems/gems.lock bundler install --path $GEM_HOME --local --no-deployment $frozen "$@" ; then
66         flock /var/lib/gems/gems.lock bundler install --path $GEM_HOME --no-deployment $frozen "$@"
67     fi
68 }
69
70 PYCMD=""
71 pip_install() {
72     pushd /var/lib/pip
73     for p in $(ls http*.tar.gz) $(ls http*.tar.bz2) $(ls http*.whl) $(ls http*.zip) ; do
74         if test -f $p ; then
75             ln -sf $p $(echo $p | sed 's/.*%2F\(.*\)/\1/')
76         fi
77     done
78     popd
79
80     if [ "$PYCMD" = "python3" ]; then
81         if ! pip3 install --no-index --find-links /var/lib/pip $1 ; then
82             pip3 install $1
83         fi
84     else
85         if ! pip install --no-index --find-links /var/lib/pip $1 ; then
86             pip install $1
87         fi
88     fi
89 }