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