add
This commit is contained in:
134
docker-entrypoint-debug.sh
Executable file
134
docker-entrypoint-debug.sh
Executable file
@@ -0,0 +1,134 @@
|
||||
#!/bin/bash
|
||||
# bash is required to pass ENV vars with dots as sh cannot
|
||||
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
set -o nounset
|
||||
|
||||
pid=0 # Initialize pid to 0
|
||||
|
||||
echoerr() { echo "$@" 1>&2; }
|
||||
|
||||
echoerr "Entrypoint PID $$"
|
||||
|
||||
## Pre execution handler
|
||||
pre_execution_handler() {
|
||||
export CA_ENABLED=true # Force CA_ENABLED to true
|
||||
if [ -d /docker-custom-entrypoint.d/ ]; then
|
||||
if [ -d /docker-custom-entrypoint.d/pre-default/ ]; then
|
||||
find /docker-custom-entrypoint.d/pre-default/ -type f -name "*.sh" \
|
||||
-exec chmod +x {} \;
|
||||
sync
|
||||
for f in /docker-custom-entrypoint.d/pre-default/*.sh; do
|
||||
if [[ -f "$f" && -x $(realpath "$f") ]]; then
|
||||
echo "Running $f"
|
||||
"$f"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Removed 'set -x' as it was only for pre-execution scripts
|
||||
# set -x # Enable debug output for pre-execution scripts
|
||||
echo "CA_ENABLED is: $CA_ENABLED"
|
||||
for f in /docker-entrypoint.d/*.sh; do
|
||||
echo "Running $f"
|
||||
"$f"
|
||||
done
|
||||
|
||||
if [ -d /docker-custom-entrypoint.d/ ]; then
|
||||
find /docker-custom-entrypoint.d/ -type f -name "*.sh" \
|
||||
-exec chmod +x {} \;
|
||||
sync
|
||||
for f in /docker-custom-entrypoint.d/*.sh; do
|
||||
if [[ -f "$f" && -x $(realpath "$f") ]]; then
|
||||
echo "Running $f"
|
||||
"$f"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
## Post startup handler
|
||||
post_startup_handler() {
|
||||
if [ -d /docker-custom-entrypoint.d/ ]; then
|
||||
if [ -d /docker-custom-entrypoint.d/post-startup/ ]; then
|
||||
find /docker-custom-entrypoint.d/post-startup/ -type f -name "*.sh" \
|
||||
-exec chmod +x {} \;
|
||||
sync
|
||||
for f in /docker-custom-entrypoint.d/post-startup/*.sh; do
|
||||
if [[ -f "$f" && -x $(realpath "$f") ]]; then
|
||||
echo "Running $f"
|
||||
"$f"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Post execution handler
|
||||
post_execution_handler() {
|
||||
if [ -d /docker-custom-entrypoint.d/ ]; then
|
||||
if [ -d /docker-custom-entrypoint.d/post-execution/ ]; then
|
||||
find /docker-custom-entrypoint.d/post-execution/ -type f -name "*.sh" \
|
||||
-exec chmod +x {} \;
|
||||
sync
|
||||
for f in /docker-custom-entrypoint.d/post-execution/*.sh; do
|
||||
if [[ -f "$f" && -x $(realpath "$f") ]]; then
|
||||
echo "Running $f"
|
||||
"$f"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
## Sigterm Handler
|
||||
sigterm_handler() {
|
||||
echoerr "Catching SIGTERM"
|
||||
if [ $pid -ne 0 ]; then
|
||||
echoerr "sigterm_handler for PID '${pid}' triggered"
|
||||
if [ -d /docker-custom-entrypoint.d/ ]; then
|
||||
if [ -d /docker-custom-entrypoint.d/sigterm-handler/ ]; then
|
||||
find /docker-custom-entrypoint.d/sigterm-handler/ -type f -name "*.sh" \
|
||||
-exec chmod +x {} \;
|
||||
sync
|
||||
for f in /docker-custom-entrypoint.d/sigterm-handler/*.sh; do
|
||||
if [[ -f "$f" && -x $(realpath "$f") ]]; then
|
||||
echo "Running $f"
|
||||
"$f"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
kill -15 "$pid"
|
||||
wait "$pid"
|
||||
post_execution_handler
|
||||
fi
|
||||
exit 143; # 128 + 15 -- SIGTERM
|
||||
}
|
||||
|
||||
## Setup signal trap
|
||||
trap sigterm_handler SIGTERM
|
||||
|
||||
## Initialization
|
||||
pre_execution_handler
|
||||
|
||||
## Start Process
|
||||
echoerr "DEBUG: Attempting to start Puppetserver in foreground."
|
||||
# run process in foreground
|
||||
# set -x # Enable debug output - moved to be after pid capture
|
||||
/opt/puppetlabs/bin/puppetserver foreground "$@" &
|
||||
pid=$! # Capture the PID of the background process
|
||||
echoerr "DEBUG: Puppetserver started with PID $pid."
|
||||
set -x # Enable debug output after pid capture
|
||||
|
||||
wait "$pid" # Wait for the puppetserver process to finish
|
||||
return_code=$?
|
||||
echoerr "DEBUG: Puppetserver exited with code $return_code."
|
||||
exit $return_code
|
||||
|
||||
# The following lines will not be reached if exec is successful
|
||||
# If exec fails, the script will continue here, which indicates an issue
|
||||
# echoerr "ERROR: Puppetserver failed to start in foreground."
|
||||
# exit 1
|
||||
Reference in New Issue
Block a user