47 lines
1.2 KiB
Bash
47 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
if [[ -z "$CONTAINER_UID" ]]; then
|
|
export CONTAINER_UID="application"
|
|
fi
|
|
|
|
set -o pipefail # trace ERR through pipes
|
|
set -o errtrace # trace ERR through 'time command' and other functions
|
|
set -o nounset ## set -u : exit the script if you try to use an uninitialised variable
|
|
set -o errexit ## set -e : exit the script if any statement returns a non-true return value
|
|
|
|
# auto elevate privileges (if container is not started as root)
|
|
if [[ "$UID" -ne 0 ]]; then
|
|
export CONTAINER_UID="$UID"
|
|
exec gosu root "$0" "$@"
|
|
fi
|
|
# remove suid bit on gosu
|
|
chmod -s /sbin/gosu
|
|
|
|
trap 'echo sigterm ; exit' SIGTERM
|
|
trap 'echo sigkill ; exit' SIGKILL
|
|
|
|
# sanitize input and set task
|
|
TASK="$(echo $1| sed 's/[^-_a-zA-Z0-9]*//g')"
|
|
|
|
source /opt/docker/bin/config.sh
|
|
|
|
createDockerStdoutStderr
|
|
|
|
if [[ "$UID" -eq 0 ]]; then
|
|
# Only run provision if user is root
|
|
|
|
if [ "$TASK" == "supervisord" -o "$TASK" == "noop" ]; then
|
|
# Visible provisioning
|
|
runProvisionEntrypoint
|
|
else
|
|
# Hidden provisioning
|
|
runProvisionEntrypoint > /dev/null
|
|
fi
|
|
fi
|
|
|
|
#############################
|
|
## COMMAND
|
|
#############################
|
|
|
|
runEntrypoints "$@"
|