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
This commit is contained in:
36
pre-restore
Executable file
36
pre-restore
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/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 "$@"
|
||||||
32
pre-start
Executable file
32
pre-start
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/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-start() {
|
||||||
|
declare APP="$1"
|
||||||
|
|
||||||
|
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-start "$@"
|
||||||
Reference in New Issue
Block a user