mirror of
https://github.com/semaphoreui/semaphore.git
synced 2024-11-25 06:15:56 +01:00
5b68136b63
Improve the Dockerfile build speed and space by flattening all to one layer Added env var in Dockerfile for version and arch of semaphore Show error message when the playbook path can't be created
59 lines
2.0 KiB
Bash
Executable File
59 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
echoerr() { printf "%s\n" "$*" >&2; }
|
|
|
|
SEMAPHORE_PLAYBOOK_PATH="${SEMAPHORE_PLAYBOOK_PATH:-/semaphore}"
|
|
# Semaphore database env config
|
|
SEMAPHORE_DB_HOST="${SEMAPHORE_DB_HOST:-127.0.0.1}"
|
|
SEMAPHORE_DB_PORT="${SEMAPHORE_DB_PORT:-3306}"
|
|
SEMAPHORE_DB="${SEMAPHORE_DB:-semaphore}"
|
|
SEMAPHORE_DB_USER="${SEMAPHORE_DB_USER:-semaphore}"
|
|
SEMAPHORE_DB_PASS="${SEMAPHORE_DB_PASS:-semaphore}"
|
|
# Semaphore Admin env config
|
|
SEMAPHORE_ADMIN="${SEMAPHORE_ADMIN:-admin}"
|
|
SEMAPHORE_ADMIN_EMAIL="${SEMAPHORE_ADMIN_EMAIL:-admin@localhost}"
|
|
SEMAPHORE_ADMIN_NAME="${SEMAPHORE_ADMIN_NAME:-Semaphore Admin}"
|
|
SEMAPHORE_ADMIN_PASSWORD="${SEMAPHORE_ADMIN_PASSWORD:-semaphorepassword}"
|
|
|
|
# create semaphore playbook directory
|
|
mkdir -p "${SEMAPHORE_PLAYBOOK_PATH}" || {
|
|
echo "Can't create Semaphore playbook path '$SEMAPHORE_PLAYBOOK_PATH'."
|
|
exit 1
|
|
}
|
|
|
|
# wait on db to be up
|
|
echoerr "Attempting to connect to database ${SEMAPHORE_DB} on ${SEMAPHORE_DB_HOST}:${SEMAPHORE_DB_PORT} with user ${SEMAPHORE_DB_USER} ..."
|
|
TIMEOUT=30
|
|
while ! mysqladmin ping -h"$SEMAPHORE_DB_HOST" -P "$SEMAPHORE_DB_PORT" -u "$SEMAPHORE_DB_USER" --password="$SEMAPHORE_DB_PASS" --silent >/dev/null 2>&1; do
|
|
TIMEOUT=$(expr $TIMEOUT - 1)
|
|
if [ $TIMEOUT -eq 0 ]; then
|
|
echoerr "Could not connect to database server. Exiting."
|
|
exit 1
|
|
fi
|
|
echo -n "."
|
|
sleep 1
|
|
done
|
|
|
|
if [ -f "${SEMAPHORE_PLAYBOOK_PATH}/semaphore_config.json" ]; then
|
|
ln -s "${SEMAPHORE_PLAYBOOK_PATH}/semaphore_config.json" /etc/semaphore/semaphore_config.json
|
|
fi
|
|
if [ ! -f /etc/semaphore/semaphore_config.json ]; then
|
|
echoerr "Generating ${SEMAPHORE_PLAYBOOK_PATH}/config.stdin ..."
|
|
cat << EOF > "${SEMAPHORE_PLAYBOOK_PATH}/config.stdin"
|
|
${SEMAPHORE_DB_HOST}:${SEMAPHORE_DB_PORT}
|
|
${SEMAPHORE_DB_USER}
|
|
${SEMAPHORE_DB_PASS}
|
|
${SEMAPHORE_DB}
|
|
${SEMAPHORE_PLAYBOOK_PATH}
|
|
yes
|
|
${SEMAPHORE_ADMIN}
|
|
${SEMAPHORE_ADMIN_EMAIL}
|
|
${SEMAPHORE_ADMIN_NAME}
|
|
${SEMAPHORE_ADMIN_PASSWORD}
|
|
EOF
|
|
/usr/bin/semaphore -setup < "${SEMAPHORE_PLAYBOOK_PATH}/config.stdin"
|
|
fi
|
|
|
|
# run our command
|
|
exec "$@"
|