forked from grapesfrog/JbossEAPDockerFile
-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathdocker-entrypoint.sh
executable file
·132 lines (103 loc) · 3.03 KB
/
docker-entrypoint.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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
#
# Default usage: docker-entrypoint.sh start-jboss
#
# Default value of environment variables:
# JBOSS_USER=jbossadmin
# JBOSS_PASSWORD=jboss@min1
#
# JBOSS_MODE=standalone
# JBOSS_CONFIG=standalone.xml
#
# set -e
export JBOSS_HOME=$HOME/EAP-6.4.0/jboss-eap-6.4
export JBOSS_CLI=$JBOSS_HOME/bin/jboss-cli.sh
export PATH=/home/jboss/EAP-6.4.0/jboss-eap-6.4/bin:$PATH
#
# Determine JBoss configuration (parse environment variables)
#
if [ -z "$JBOSS_USER" ]; then
JBOSS_USER=jbossadmin
fi
if [ -z "$JBOSS_PASSWORD" ]; then
JBOSS_PASSWORD=jboss@min1
fi
if [ -z "$JBOSS_MODE" ]; then
JBOSS_MODE=standalone
fi
if [ -z "$JBOSS_CONFIG" ]; then
JBOSS_CONFIG=$JBOSS_MODE.xml
fi
echo "Using JBOSS_MODE=$JBOSS_MODE and JBOSS_CONFIG=$JBOSS_CONFIG"
if [ $JBOSS_MODE != "domain" ] && [ $JBOSS_MODE != "standalone" ]; then
echo "JBOSS_MODE should be domain or standalone"
exit 1
fi
function wait_for_server() {
STARTUP_WAIT=30
count=0
until `$JBOSS_CLI -c "ls /deployment" &> /dev/null`; do
sleep 1
let count=$count+1;
if [ $count -gt $STARTUP_WAIT ] ; then
break
fi
done
if [ $count -gt $STARTUP_WAIT ] ; then
echo "JBoss startup timed out"
cat /var/log/jboss/console.log
exit 1
fi
}
#
# Set JBoss admin user / password
#
gosu jboss $JBOSS_HOME/bin/add-user.sh -s -u $JBOSS_USER -p $JBOSS_PASSWORD
#
# Copy any modules to EAP module dir
#
JBOSS_MODULES=$HOME/EAP-6.4.0/modules
if [ -d $JBOSS_MODULES ]; then
echo "=> Copying customization modules to EAP module dir"
gosu jboss cp -R $JBOSS_MODULES/* $JBOSS_HOME/modules
fi
#
# Start JBoss EAP server
#
echo "=> Starting JBoss EAP server"
exec gosu jboss nohup $JBOSS_HOME/bin/$JBOSS_MODE.sh -b 0.0.0.0 -bmanagement 0.0.0.0 -c $JBOSS_CONFIG > /var/log/jboss/console.log 2>&1 &
echo "=> Waiting for the server to boot"
wait_for_server
#
# Run entrypoint scripts of dependent docker containers
#
if [ -d /docker-entrypoint-initdb.d ]; then
for f in /docker-entrypoint-initdb.d/*.sh; do
[ -f "$f" ] && . "$f"
done
fi
#
# Restart JBoss EAP server
#
echo "=> Shutting down JBoss EAP server"
if [ "$JBOSS_MODE" = "standalone" ]; then
gosu jboss $JBOSS_CLI -c ":shutdown"
else
gosu jboss $JBOSS_CLI -c "/host=master:shutdown"
fi
echo "=> Restarting JBoss EAP server"
if [ "$JBOSS_DEBUG_SUSPEND" = "TRUE" ] || [ "$JBOSS_DEBUG_SUSPEND" = "true" ]; then
JBOSS_DEBUG_CONFIG="--debug 8787"
echo "Using debug configuration $JBOSS_DEBUG_CONFIG"
else
JBOSS_DEBUG_CONFIG=""
echo "Default mode (no suspend / debug)"
fi
if [ "$1" = 'start-jboss' ]; then
exec gosu jboss $JBOSS_HOME/bin/$JBOSS_MODE.sh -b 0.0.0.0 -bmanagement 0.0.0.0 -c $JBOSS_CONFIG $JBOSS_DEBUG_CONFIG 2>&1 | tee /var/log/jboss/console.log
else
exec gosu jboss nohup $JBOSS_HOME/bin/$JBOSS_MODE.sh -b 0.0.0.0 -bmanagement 0.0.0.0 -c $JBOSS_CONFIG $JBOSS_DEBUG_CONFIG > /var/log/jboss/console.log 2>&1 &
wait_for_server
echo "=> JBoss EAP server startup complete"
exec gosu jboss "$@"
fi