diff --git a/docker.go b/docker.go index 5ce9f7a..a75738b 100644 --- a/docker.go +++ b/docker.go @@ -124,7 +124,7 @@ func (d *Docker) Run(ctx context.Context, image, imageurl string, labels map[str } hostconfig := &container.HostConfig{ - RestartPolicy: container.RestartPolicy{MaximumRetryCount: 0}, + RestartPolicy: container.RestartPolicy{Name: "always"}, Mounts: mm, } @@ -202,7 +202,7 @@ func (d *Docker) Run(ctx context.Context, image, imageurl string, labels map[str &cfg, hostconfig, nc, - imagename+"_"+strconv.FormatInt(time.Now().UTC().Unix(), 32)) + imagename+"_"+strconv.FormatInt(time.Now().UTC().UnixNano(), 32)) E(err) err = d.cli.ContainerStart(ctx, cont.ID, types.ContainerStartOptions{}) E(err) diff --git a/main.go b/main.go index 3423298..54ace85 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "fmt" "log" "os" + "strconv" "strings" "sync" "time" @@ -108,7 +109,16 @@ func main() { name, err := d.BuildDockerImage(ctx, conf) E(err) - d.Run(ctx, name, "", labelconf, dockerconf) + ii := 1 + if conf["instances"] != "" { + ii, err = strconv.Atoi(conf["instances"]) + if err != nil { + log.Printf("instances must be an integer, defaulting to 1") + } + } + for i := 0; i < ii; i++ { + d.Run(ctx, name, "", labelconf, dockerconf) + } time.Sleep(2 * time.Second)