diff --git a/plugins/scheduler-docker-local/functions.go b/plugins/scheduler-docker-local/functions.go index e6ec71eea..adf576314 100644 --- a/plugins/scheduler-docker-local/functions.go +++ b/plugins/scheduler-docker-local/functions.go @@ -115,7 +115,12 @@ func generateCronEntries() ([]cron.TemplateCommand, error) { return commands, nil } -func writeCronEntries() error { +func writeCronEntries(scheduler string) error { + // allow empty scheduler, which means all apps (used by letsencrypt) + if scheduler != "docker-local" && scheduler != "" { + return nil + } + commands, err := generateCronEntries() if err != nil { return err diff --git a/plugins/scheduler-docker-local/post-delete b/plugins/scheduler-docker-local/post-delete index 703343f15..cd8480f80 100755 --- a/plugins/scheduler-docker-local/post-delete +++ b/plugins/scheduler-docker-local/post-delete @@ -15,7 +15,8 @@ trigger-scheduler-docker-local-post-delete() { # remove all application containers "$DOCKER_BIN" container ls --filter "label=com.dokku.app-name=${APP}" -q | xargs -n1 -I {} "$DOCKER_BIN" container rm --force {} &>/dev/null || true - plugn trigger scheduler-cron-write + local DOKKU_SCHEDULER="$(get_app_scheduler "$APP")" + plugn trigger scheduler-cron-write "$DOKKU_SCHEDULER" "$APP" } trigger-scheduler-docker-local-post-delete "$@" diff --git a/plugins/scheduler-docker-local/post-deploy b/plugins/scheduler-docker-local/post-deploy index 9541385ce..325b1bd52 100755 --- a/plugins/scheduler-docker-local/post-deploy +++ b/plugins/scheduler-docker-local/post-deploy @@ -7,7 +7,8 @@ trigger-scheduler-docker-local-post-deploy() { declare trigger="post-deploy" declare APP="$1" - plugn trigger scheduler-cron-write + local DOKKU_SCHEDULER="$(get_app_scheduler "$APP")" + plugn trigger scheduler-cron-write "$DOKKU_SCHEDULER" "$APP" } trigger-scheduler-docker-local-post-deploy "$@" diff --git a/plugins/scheduler-docker-local/scheduler-stop b/plugins/scheduler-docker-local/scheduler-stop index aaea1299e..12fcb5400 100755 --- a/plugins/scheduler-docker-local/scheduler-stop +++ b/plugins/scheduler-docker-local/scheduler-stop @@ -50,6 +50,8 @@ trigger-scheduler-docker-local-scheduler-stop() { "$DOCKER_BIN" container rm --force $DOKKU_APP_CIDS &>/dev/null || true fi fi + + plugn trigger scheduler-cron-write "$DOKKU_SCHEDULER" "$APP" } trigger-scheduler-docker-local-scheduler-stop "$@" diff --git a/plugins/scheduler-docker-local/src/triggers/triggers.go b/plugins/scheduler-docker-local/src/triggers/triggers.go index d3ce7aa11..4d11721ca 100644 --- a/plugins/scheduler-docker-local/src/triggers/triggers.go +++ b/plugins/scheduler-docker-local/src/triggers/triggers.go @@ -19,7 +19,8 @@ func main() { var err error switch trigger { case "scheduler-cron-write": - err = schedulerdockerlocal.TriggerCronWrite() + scheduler := flag.Arg(0) + err = schedulerdockerlocal.TriggerCronWrite(scheduler) default: err = fmt.Errorf("Invalid plugin trigger call: %s", trigger) } diff --git a/plugins/scheduler-docker-local/triggers.go b/plugins/scheduler-docker-local/triggers.go index 018ff411e..785fc9f31 100644 --- a/plugins/scheduler-docker-local/triggers.go +++ b/plugins/scheduler-docker-local/triggers.go @@ -1,6 +1,6 @@ package schedulerdockerlocal // TriggerCronWrite force updates the cron file for all apps -func TriggerCronWrite() error { - return writeCronEntries() +func TriggerCronWrite(scheduler string) error { + return writeCronEntries(scheduler) }