Files
dokku-postgres/pre-restore
Jose Diaz-Gonzalez f1d60d6f4b fix: start linked datastores when an app is started or restored
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
2021-09-13 04:54:58 -04:00

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 "$@"