Compare commits

..

2 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
5c21b534d4 Release 1.15.0 2021-10-07 17:59:48 -04:00
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
3 changed files with 69 additions and 1 deletions

View File

@@ -1,4 +1,4 @@
[plugin] [plugin]
description = "dokku postgres service plugin" description = "dokku postgres service plugin"
version = "1.14.1" version = "1.15.0"
[plugin.config] [plugin.config]

36
pre-restore Executable file
View 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
View 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 "$@"