diff --git a/cmd/init.go b/cmd/init.go index e3b5c0d6e..8738459e1 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -220,7 +220,7 @@ func init() { InitCmd.Flags().String("network", "", "The Docker network on which to deploy the Dapr runtime") InitCmd.Flags().StringVarP(&fromDir, "from-dir", "", "", "Use Dapr artifacts from local directory for self-hosted installation") InitCmd.Flags().StringVarP(&imageVariant, "image-variant", "", "", "The image variant to use for the Dapr runtime, for example: mariner") - InitCmd.Flags().StringVarP(&schedulerVolume, "scheduler-volume", "", "dapr_scheduler", "Self-hosted only. Specify a volume for the scheduler service data directory.") + InitCmd.Flags().StringVarP(&schedulerVolume, "scheduler-volume", "", "", "Self-hosted only. Specify a volume for the scheduler service data directory.") InitCmd.Flags().BoolP("help", "h", false, "Print this help message") InitCmd.Flags().StringArrayVar(&values, "set", []string{}, "set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)") InitCmd.Flags().String("image-registry", "", "Custom/private docker image repository URL") diff --git a/pkg/standalone/standalone.go b/pkg/standalone/standalone.go index ac9e7ae97..dd648a0f3 100644 --- a/pkg/standalone/standalone.go +++ b/pkg/standalone/standalone.go @@ -642,8 +642,23 @@ func runSchedulerService(wg *sync.WaitGroup, errorChan chan<- error, info initIn "-d", "--entrypoint", "./scheduler", } + if info.schedulerVolume != nil { - args = append(args, "--volume", *info.schedulerVolume+":/var/lib/dapr/scheduler") + if *info.schedulerVolume == "" { + schedulerDataDir := path_filepath.Join(info.installDir, "data/scheduler") + if err = os.MkdirAll(schedulerDataDir, 0o755); err != nil { + errorChan <- err + return + } + // if dir exists, change the permissions. + if err = os.Chmod(schedulerDataDir, 0o777); err != nil { + errorChan <- err + return + } + args = append(args, "--volume", schedulerDataDir+":/var/lib/dapr/scheduler") + } else { + args = append(args, "--volume", *info.schedulerVolume+":/var/lib/dapr/scheduler") + } } if info.dockerNetwork != "" {