|
1 | 1 | #!/bin/sh
|
2 | 2 |
|
| 3 | +PID="$$" |
| 4 | +LOGPATH=/tmp/log-entrypoint-"$PID" |
| 5 | + |
| 6 | +function logtime() { |
| 7 | + echo "$(date --iso-8601=ns)" | tee -a $LOGPATH |
| 8 | +} |
| 9 | + |
| 10 | +logtime |
3 | 11 | source /clowder_init.sh
|
| 12 | +logtime |
4 | 13 |
|
5 | 14 | set -e
|
6 | 15 |
|
7 | 16 | function check_svc_status() {
|
8 | 17 | local SVC_NAME=$1 SVC_PORT=$2
|
9 | 18 |
|
10 |
| - [[ $# -lt 2 ]] && echo "Error: Usage: check_svc_status svc_name svc_port" && exit 1 |
| 19 | + [[ $# -lt 2 ]] && echo "Error: Usage: check_svc_status svc_name svc_port" | tee -a $LOGPATH && exit 1 |
11 | 20 |
|
12 | 21 | while true; do
|
13 |
| - echo "${LOGPREFIX} Checking ${SVC_NAME}:$SVC_PORT status ..." |
| 22 | + logtime |
| 23 | + echo "${LOGPREFIX} Checking ${SVC_NAME}:$SVC_PORT status ..." | tee -a $LOGPATH |
14 | 24 | ncat ${SVC_NAME} ${SVC_PORT} < /dev/null && break
|
15 |
| - sleep 5 |
| 25 | + logtime |
| 26 | + echo "not ready yet" | tee -a $LOGPATH |
| 27 | + sleep 1 |
16 | 28 | done
|
| 29 | + logtime |
17 | 30 | echo "${LOGPREFIX} ${SVC_NAME}:${SVC_PORT} - accepting connections"
|
18 | 31 | }
|
19 | 32 |
|
| 33 | + |
20 | 34 | if [[ -n "${ACG_CONFIG}" ]]; then
|
21 | 35 | export LOGPREFIX="Clowder Init:"
|
22 |
| - echo "${LOGPREFIX} Running in a clowder environment" |
| 36 | + echo "${LOGPREFIX} Running in a clowder environment" | tee -a $LOGPATH |
23 | 37 |
|
24 |
| - echo "${LOGPREFIX} Database name: ${DB_NAME}" |
25 |
| - echo "${LOGPREFIX} Database host: ${DB_HOST}" |
26 |
| - echo "${LOGPREFIX} Database port: ${DB_PORT}" |
27 |
| - echo "${LOGPREFIX} PG Bouncer port: ${PG_BOUNCER_LISTEN_PORT}" |
| 38 | + echo "${LOGPREFIX} Database name: ${DB_NAME}" | tee -a $LOGPATH |
| 39 | + echo "${LOGPREFIX} Database host: ${DB_HOST}" | tee -a $LOGPATH |
| 40 | + echo "${LOGPREFIX} Database port: ${DB_PORT}" | tee -a $LOGPATH |
| 41 | + echo "${LOGPREFIX} PG Bouncer port: ${PG_BOUNCER_LISTEN_PORT}" | tee -a $LOGPATH |
28 | 42 | if [[ -n "${DB_SSLMODE}" ]]; then
|
29 |
| - echo "${LOGPREFIX} Database SSL Mode: ${DB_SSLMODE}" |
| 43 | + echo "${LOGPREFIX} Database SSL Mode: ${DB_SSLMODE}" | tee -a $LOGPATH |
30 | 44 | fi
|
31 | 45 | if [[ -s "${DB_CAFILE}" ]]; then
|
32 |
| - echo "${LOGPREFIX} Database CA File: ${DB_CAFILE}" |
| 46 | + echo "${LOGPREFIX} Database CA File: ${DB_CAFILE}" | tee -a $LOGPATH |
33 | 47 | fi
|
34 | 48 |
|
35 |
| - [[ -z "${DB_HOST}" ]] && echo "${LOGPREFIX} Error: Missing Database configuration" && exit 1 |
| 49 | + [[ -z "${DB_HOST}" ]] && echo "${LOGPREFIX} Error: Missing Database configuration" | tee -a $LOGPATH && exit 1 |
36 | 50 |
|
37 | 51 | # Wait for the database to be ready
|
38 |
| - echo "${LOGPREFIX} Waiting for database readiness ..." |
| 52 | + echo "${LOGPREFIX} Waiting for database readiness ..." | tee -a $LOGPATH |
39 | 53 | check_svc_status $DB_HOST $DB_PORT
|
40 | 54 | fi
|
41 | 55 |
|
42 | 56 | PG_CONFIG_DIR=/etc/pgbouncer
|
43 | 57 |
|
| 58 | +logtime |
44 | 59 | # md5 and write the password
|
45 | 60 | pass="md5$(echo -n "$DB_PASSWORD$DB_USER" | md5sum | cut -f 1 -d ' ')"
|
46 | 61 | echo "\"$DB_USER\" \"$pass\"" >> ${PG_CONFIG_DIR}/userlist.txt
|
47 |
| -echo "Wrote authentication credentials to ${PG_CONFIG_DIR}/userlist.txt" |
| 62 | +logtime |
| 63 | +echo "Wrote authentication credentials to ${PG_CONFIG_DIR}/userlist.txt" | tee -a $LOGPATH |
48 | 64 |
|
49 | 65 | # pgbouncer config
|
50 | 66 | printf "\
|
@@ -72,7 +88,8 @@ if [[ -s "${DB_CAFILE}" ]]; then
|
72 | 88 | echo "server_tls_ca_file=${DB_CAFILE}" >> ${PG_CONFIG_DIR}/pgbouncer.ini
|
73 | 89 | fi
|
74 | 90 |
|
75 |
| -echo "Wrote pgbouncer config to ${PG_CONFIG_DIR}/pgbouncer.ini" |
| 91 | +logtime |
| 92 | +echo "Wrote pgbouncer config to ${PG_CONFIG_DIR}/pgbouncer.ini" | tee -a $LOGPATH |
76 | 93 |
|
77 |
| -echo "Starting $*..." |
| 94 | +echo "Starting $*..." | tee -a $LOGPATH |
78 | 95 | exec "$@"
|
0 commit comments