Skip to content

Commit

Permalink
Implement restart policy support in Docker provider.
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Wilkie committed Oct 15, 2015
1 parent 6762a97 commit 9e0097a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
6 changes: 6 additions & 0 deletions builtin/providers/docker/resource_docker_container.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,12 @@ func resourceDockerContainer() *schema.Resource {
Optional: true,
ForceNew: true,
},

"restart_policy": &schema.Schema{
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
},
}
}
Expand Down
21 changes: 21 additions & 0 deletions builtin/providers/docker/resource_docker_container_funcs.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,27 @@ func resourceDockerContainerCreate(d *schema.ResourceData, meta interface{}) err
PublishAllPorts: d.Get("publish_all_ports").(bool),
}

if v, ok := d.GetOk("restart_policy"); ok {
restartPolicy := v.(string)
switch {
case restartPolicy == "no" || restartPolicy == "always" || restartPolicy == "on-failure":
hostConfig.RestartPolicy = dc.RestartPolicy{
Name: restartPolicy,
}
case strings.HasPrefix(restartPolicy, "on-failure:"):
count, err := strconv.Atoi(strings.SplitN(restartPolicy, ":", 2)[1])
if err != nil {
return fmt.Errorf("Invalid restart_policy: %s", restartPolicy)
}
hostConfig.RestartPolicy = dc.RestartPolicy{
Name: "on-failure",
MaximumRetryCount: count,
}
default:
return fmt.Errorf("Invalid restart_policy: %s", restartPolicy)
}
}

if len(portBindings) != 0 {
hostConfig.PortBindings = portBindings
}
Expand Down

0 comments on commit 9e0097a

Please sign in to comment.