fix: ensure tmp files are cleaned up when commands exit

This commit is contained in:
Jose Diaz-Gonzalez
2023-08-19 23:00:49 -04:00
parent 3d6fa3a2e0
commit 200e46b08e
4 changed files with 16 additions and 8 deletions

View File

@@ -200,7 +200,7 @@ Avoid copying files from running containers as these files may change over time.
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
local TMP_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")
trap "rm -rf '$TMP_FILE' >/dev/null" RETURN INT TERM
trap "rm -rf '$TMP_FILE' >/dev/null" RETURN INT TERM EXIT
local IMAGE_TAG="$(get_running_image_tag "$APP")"
local IMAGE=$(get_deploying_app_image_name "$APP" "$IMAGE_TAG")

View File

@@ -5,7 +5,7 @@ source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
source "$PLUGIN_AVAILABLE_PATH/checks/functions"
main() {
fn-scheduler-deploy-process() {
declare APP="$1" IMAGE_SOURCE_TYPE="$2" IMAGE="$3" IMAGE_TAG="$4" PROC_TYPE="$5" PROC_COUNT="$6"
local CONTAINER_INDEX=1
local image_vendor
@@ -29,7 +29,7 @@ main() {
fi
local PROCESS_TMP_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")
trap "rm -rf '$PROCESS_TMP_FILE' >/dev/null" RETURN INT TERM
trap "rm -rf '$PROCESS_TMP_FILE' >/dev/null" RETURN INT TERM EXIT
while [[ $CONTAINER_INDEX -le $PROC_COUNT ]]; do
echo "$PLUGIN_AVAILABLE_PATH/scheduler-docker-local/bin/scheduler-deploy-process-container $APP $IMAGE_SOURCE_TYPE $IMAGE $IMAGE_TAG $PROC_TYPE $PROC_COUNT $CONTAINER_INDEX" >>"$PROCESS_TMP_FILE"
@@ -65,4 +65,10 @@ main() {
done
}
main() {
declare desc="wrapper function to ensure tmp files are properly annotated"
fn-scheduler-deploy-process "$@"
}
main "$@"

View File

@@ -109,15 +109,17 @@ trigger-scheduler-docker-local-check-deploy() {
checks_check_deploy_cleanup() {
declare desc="print container output"
local id="$1"
declare CID="$1" TMP_FILE="$1"
if [[ $id ]]; then
if [[ $CID ]]; then
dokku_log_info2_quiet "Start of $APP container output ($DOKKU_APP_CONTAINER_TYPE.$CONTAINER_INDEX)"
dokku_container_log_verbose_quiet "$id"
dokku_container_log_verbose_quiet "$CID"
dokku_log_info2_quiet "End of $APP container output ($DOKKU_APP_CONTAINER_TYPE.$CONTAINER_INDEX)"
fi
rm -rf "$TMP_FILE" >/dev/null
}
trap "checks_check_deploy_cleanup $DOKKU_APP_CONTAINER_ID" RETURN INT TERM EXIT
trap "checks_check_deploy_cleanup $DOKKU_APP_CONTAINER_ID $TMP_APP_JSON_OUTPUT" RETURN INT TERM EXIT
local DOKKU_DEFAULT_CHECKS_WAIT="${DOKKU_DEFAULT_CHECKS_WAIT:-10}"
content="$(docker-container-healthchecker add "$DOKKU_APP_CONTAINER_TYPE" --app-json "$TMP_APP_JSON_OUTPUT" --if-empty --pretty --uptime "$DOKKU_DEFAULT_CHECKS_WAIT")"

View File

@@ -46,7 +46,7 @@ trigger-scheduler-docker-local-scheduler-deploy() {
export DOKKU_WAIT_TO_RETIRE
local TMP_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")
trap "rm -rf '$TMP_FILE' >/dev/null" RETURN INT TERM
trap "rm -rf '$TMP_FILE' >/dev/null" RETURN INT TERM EXIT
local line
local PROC_TYPE