forked from openfrontier/ci
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathstart.sh
executable file
·86 lines (66 loc) · 2.15 KB
/
start.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/bash
BASEDIR=$(readlink -f $(dirname $0))
set -e
source ${BASEDIR}/config
source ${BASEDIR}/config.default
# Start OpenLDAP
if [ -n "$(docker ps -a | grep ${LDAP_NAME})" ]; then
docker start ${LDAP_NAME}
fi
# Start Gerrit.
docker start ${PG_GERRIT_NAME}
while [ -z "$(docker logs ${PG_GERRIT_NAME} 2>&1 | tail -n 4 | grep 'autovacuum launcher started')" ]; do
echo "Waiting postgres ready."
sleep 1
done
docker start ${GERRIT_NAME}
while [ -z "$(docker logs ${GERRIT_NAME} 2>&1 | tail -n 4 | grep "Gerrit Code Review [0-9..]* ready")" ]; do
echo "Waiting gerrit ready."
sleep 1
done
# Start Jenkins.
docker start ${JENKINS_NAME}
while [ -z "$(docker logs ${JENKINS_NAME} 2>&1 | tail -n 15 | grep "Jenkins is fully up and running")" ]; do
echo "Waiting jenkins ready."
sleep 1
done
# Start Redmine.
docker start ${PG_REDMINE_NAME}
while [ -z "$(docker logs ${PG_REDMINE_NAME} 2>&1 | tail -n 4 | grep 'autovacuum launcher started')" ]; do
echo "Waiting postgres ready."
sleep 1
done
docker start ${REDMINE_NAME}
while [ -z "$(docker logs ${REDMINE_NAME} 2>&1 | tail -n 5 | grep 'INFO success: nginx entered RUNNING state')" ]; do
echo "Waiting redmine ready."
sleep 1
done
# Start Nexus.
if [ -n "$(docker ps -a | grep ${NEXUS_NAME})" ]; then
docker start ${NEXUS_NAME}
fi
# start phpldapadmin
if [ -n "$(docker ps -a | grep ${PHPLDAPADMIN_NAME})" ]; then
docker start ${PHPLDAPADMIN_NAME}
fi
# start dokuwiki
if [ -n "$(docker ps -a | grep ${DOKUWIKI_NAME})" ]; then
docker start ${DOKUWIKI_NAME}
fi
# Start proxy
docker start ${NGINX_NAME}
# Ensure redmine is running
COUNTER=0
while [ "$(curl -I http://${REDMINE_ADMIN_USER}:${REDMINE_ADMIN_PASSWD}@localhost/redmine 2>/dev/null | head -n1 | cut -d$' ' -f2)" \
!= "200" ]; do
# Max timeout
if [ $COUNTER -eq "90" ]; then
exit 1
fi
echo "Waiting redmine service"
echo "Status Code from redmine: $(curl -I http://${REDMINE_ADMIN_USER}:\${REDMINE_ADMIN_PASSWD}@localhost/redmine 2>/dev/null | head -n1 | cut -d$' ' -f2)"
sleep 1
let COUNTER=COUNTER+1
done
echo "Redmine service running"
echo ">>>> Everything is ready."