feat: handle case where old, renamed containers may still be running during ps:restore

This commit is contained in:
Jose Diaz-Gonzalez
2018-04-03 01:36:51 -04:00
parent 867e3317aa
commit 78503ed178
2 changed files with 22 additions and 0 deletions

View File

@@ -9,6 +9,9 @@ ps_restore_cmd() {
local cmd="ps:restore"
local APP="$2"
local DOKKU_SCHEDULER=$(config_get "$APP" DOKKU_SCHEDULER || echo "docker-local")
plugn trigger pre-restore "$DOKKU_SCHEDULER"
if [[ -n "$APP" ]]; then
if ! (is_deployed "$APP"); then
dokku_log_warn "App $APP has not been deployed"

View File

@@ -0,0 +1,19 @@
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
scheduler-docker-local-pre-restore() {
declare desc="scheduler-docker-local pre-restore plugin trigger"
declare trigger="scheduler-docker-local pre-restore"
declare DOKKU_SCHEDULER="$1"
if [[ "$DOKKU_SCHEDULER" != "docker-local" ]]; then
return
fi
# delete all "old" containers
# shellcheck disable=SC2046
docker rm $(docker ps --format "{{.Names}}" -a -f "label=$DOKKU_CONTAINER_LABEL" -q | grep -E '(.+\..+\.[0-9]+\.[0-9]+$)') &> /dev/null || true
}
scheduler-docker-local-pre-restore "$@"