mirror of
https://github.com/ledgersmb/ledgersmb-docker.git
synced 2025-04-19 14:47:12 -04:00
starting point for a "quickstart" script
This commit is contained in:
parent
a53dd55ecf
commit
0627a33477
105
start-lsmb-and-postgres-containers.sh
Executable file
105
start-lsmb-and-postgres-containers.sh
Executable file
@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
|
||||
clear
|
||||
|
||||
PGuser='postgres'
|
||||
PGpass='password'
|
||||
|
||||
PGcontainerName='lsmb-postgres'
|
||||
LSMBcontainerName='myledger'
|
||||
|
||||
|
||||
export POSTGRES_HOST='postgres'
|
||||
export POSTGRES_PORT='5432'
|
||||
export DEFAULT_DB='lsmb'
|
||||
|
||||
CheckWhatIsRunning() {
|
||||
isrunning_pg=false;
|
||||
isrunning_lsmb=false;
|
||||
while read -t10 line || { echo; false; } do
|
||||
if [[ $line =~ $PGcontainerName ]]; then isrunning_pg=true; fi
|
||||
if [[ $line =~ $LSMBcontainerName ]]; then isrunning_lsmb=true; fi
|
||||
done < <( docker ps )
|
||||
}
|
||||
|
||||
StartPostgres() {
|
||||
if $isrunning_pg; then
|
||||
echo "Postgres container $PGcontainerName is already running";
|
||||
else
|
||||
echo "Starting Postgres container $PGcontainerName"
|
||||
if docker inspect $PGcontainerName &>/dev/null; then # container exists so start it
|
||||
docker start $PGcontainerName
|
||||
else # container doesn't exist so run it
|
||||
docker run --name $PGcontainerName -e POSTGRES_PASSWORD="$PGpass" -d postgres
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
StartLedgerSMB() {
|
||||
if $isrunning_lsmb; then
|
||||
echo "LedgerSMB container $LSMBcontainerName is already running";
|
||||
else
|
||||
echo "Starting LedgerSMB container $LSMBcontainerName"
|
||||
if docker inspect $LSMBcontainerName &>/dev/null; then # container exists so start it
|
||||
docker start $LSMBcontainerName >/dev/null
|
||||
else # container doesn't exist so run it
|
||||
docker run --name $LSMBcontainerName --link lsmb-postgres:postgres -d ledgersmb/ledgersmb
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
GetIPs() {
|
||||
containerIPlsmbPostgres=`docker inspect -f '{{ .NetworkSettings.IPAddress }}' lsmb-postgres`
|
||||
containerIPlsmb=`docker inspect -f '{{ .NetworkSettings.IPAddress }}' myledger`
|
||||
}
|
||||
|
||||
PrintInfo() {
|
||||
printf " %32s: IP %s\n" "$PGcontainerName" "$containerIPlsmbPostgres"
|
||||
printf " %32s: IP %s\n" "$LSMBcontainerName" "$containerIPlsmb"
|
||||
|
||||
echo
|
||||
}
|
||||
|
||||
TestLSMB() { # If any arg is passed then don't echo anything
|
||||
if wget --tries=1 --timeout=2 -O /dev/null -q http://$containerIPlsmb:5762/setup.pl; then
|
||||
[[ -z $1 ]] && echo "LSMB server accessible"
|
||||
return 0
|
||||
else
|
||||
[[ -z $1 ]] && echo "Failed to connect to LSMB server"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
timestamp() {
|
||||
date "+%s"
|
||||
}
|
||||
|
||||
WaitForContainers() {
|
||||
timer=60
|
||||
read -st10 timeoutAt < <( timestamp )
|
||||
(( timeoutAt = timeoutAt + timer ))
|
||||
(( now = `timestamp` ))
|
||||
(( lasttimestamp = now ))
|
||||
echo
|
||||
echo "wait at least $timer seconds for containers to start"
|
||||
echo -en "\r$(( timeoutAt - now )) "
|
||||
while { now=`timestamp`; (( now < timeoutAt )); } do
|
||||
echo -en "\r$(( timeoutAt - now )) "
|
||||
if (( now <= lasttimestamp )); then continue; fi
|
||||
(( lasttimestamp = now ))
|
||||
if [[ -z $containerIPlsmb ]]; then GetIPs &>/dev/null; fi
|
||||
echo -en "\r$(( timeoutAt - now )) "
|
||||
TestLSMB -s
|
||||
if (( $? == 0 )); then echo; break; fi
|
||||
echo -en "\r$(( timeoutAt - now )) "
|
||||
done
|
||||
echo
|
||||
}
|
||||
|
||||
CheckWhatIsRunning
|
||||
StartPostgres
|
||||
StartLedgerSMB
|
||||
WaitForContainers
|
||||
TestLSMB
|
||||
|
||||
PrintInfo
|
Loading…
Reference in New Issue
Block a user