This won't _also_ fix issues when an app is deployed as there isn't an exposed hook for it, but it should fix many other issues. For the app deployment problem, we'll need a new hook upstream. Refs dokku/dokku-redis#138
37 lines
993 B
Bash
Executable File
37 lines
993 B
Bash
Executable File
#!/usr/bin/env bash
|
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/config"
|
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common-functions"
|
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/functions"
|
|
set -eo pipefail
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
|
|
plugin-pre-restore() {
|
|
declare SCHEDULER="$1" APP="$2"
|
|
|
|
if [[ "$SCHEDULER" != "docker-local" ]]; then
|
|
return
|
|
fi
|
|
|
|
local SERVICES=$(ls "$PLUGIN_DATA_ROOT" 2>/dev/null)
|
|
for SERVICE in $SERVICES; do
|
|
if ! in_links_file "$SERVICE" "$APP"; then
|
|
continue
|
|
fi
|
|
|
|
local status="$(service_status "$SERVICE")"
|
|
if [[ "$status" == "running" ]]; then
|
|
continue
|
|
fi
|
|
|
|
if [[ "$status" == "restarting" ]]; then
|
|
dokku_log_warn "$PLUGIN_SERVICE service $SERVICE is restarting and may cause issues with linked app $APP"
|
|
continue
|
|
fi
|
|
|
|
dokku_log_warn "$PLUGIN_SERVICE service $SERVICE is not running, issuing service start"
|
|
service_start "$SERVICE"
|
|
done
|
|
}
|
|
|
|
plugin-pre-restore "$@"
|