diff --git a/plugins/scheduler-docker-local/check-deploy b/plugins/scheduler-docker-local/check-deploy index 49daaca64..be127dfbb 100755 --- a/plugins/scheduler-docker-local/check-deploy +++ b/plugins/scheduler-docker-local/check-deploy @@ -205,6 +205,7 @@ scheduler-docker-local-check-deploy() { [[ $DOKKU_TRACE ]] && dokku_log_verbose "$ curl $CURL_ARGS" local ATTEMPT=0 + local SUCCESS=0 until [[ $SUCCESS == 1 || $ATTEMPT -ge $ATTEMPTS ]]; do local ATTEMPT=$((ATTEMPT + 1)) dokku_log_verbose "Attempt $ATTEMPT/$ATTEMPTS. Waiting for $WAIT seconds ..." @@ -214,23 +215,22 @@ scheduler-docker-local-check-deploy() { # shellcheck disable=SC2086 if OUTPUT=$(curl -# $CURL_ARGS 2>&1); then # OUTPUT contains the HTTP response - if [[ ! "$OUTPUT" =~ $EXPECTED ]]; then - dokku_log_warn "$LOG_URL: expected to but did not find: \"$EXPECTED\"" - local FAILEDCHECKS=$((FAILEDCHECKS + 1)) + if [[ "$OUTPUT" =~ $EXPECTED ]]; then + SUCCESS=1 + break fi + dokku_log_warn "$LOG_URL: expected to but did not find: \"$EXPECTED\"" else # Failed to connect/no response, OUTPUT contains error message dokku_log_warn "$OUTPUT" - local FAILEDCHECKS=$((FAILEDCHECKS + 1)) fi - if [[ $FAILEDCHECKS -gt 0 ]]; then - dokku_log_warn "Check attempt $ATTEMPT/$ATTEMPTS failed." - local SUCCESS=0 - else - local SUCCESS=1 - fi + dokku_log_warn "Check attempt $ATTEMPT/$ATTEMPTS failed." done + + if [[ $SUCCESS -ne 1 ]]; then + FAILEDCHECKS=$((FAILEDCHECKS + 1)) + fi done if [[ $FAILEDCHECKS -gt 0 ]]; then diff --git a/plugins/scheduler-docker-local/pre-deploy b/plugins/scheduler-docker-local/pre-deploy index 160c9c4b2..e3b2f64dd 100755 --- a/plugins/scheduler-docker-local/pre-deploy +++ b/plugins/scheduler-docker-local/pre-deploy @@ -60,10 +60,10 @@ scheduler-docker-local-pre-deploy-precheck() { local IMAGE=$(get_deploying_app_image_name "$APP" "$IMAGE_TAG") local CHECKS_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX") trap "rm -rf '$CHECKS_FILE' >/dev/null" RETURN INT TERM - copy_from_image "$IMAGE" "CHECKS" "$CHECKS_FILENAME" 2>/dev/null || true + copy_from_image "$IMAGE" "CHECKS" "$CHECKS_FILE" 2>/dev/null || true dokku_log_info2 "Processing deployment checks" - if [[ ! -s "${CHECKS_FILENAME}" ]]; then + if [[ ! -s "${CHECKS_FILE}" ]]; then local CHECKS_URL="${DOKKU_CHECKS_URL:-http://dokku.viewdocs.io/dokku/deployment/zero-downtime-deploys/}" dokku_log_verbose "No CHECKS file found. Simple container checks will be performed." dokku_log_verbose "For more efficient zero downtime deployments, create a CHECKS file. See ${CHECKS_URL} for examples"