provider/docker: #5298 Add support for docker run --user option

This commit is contained in:
VERDOÏA Laurent 2016-04-05 11:43:59 +09:00 committed by Paul Stack
parent 9487e38812
commit a24207b9b7
4 changed files with 19 additions and 0 deletions

View File

@ -80,6 +80,13 @@ func resourceDockerContainer() *schema.Resource {
Elem: &schema.Schema{Type: schema.TypeString},
},
"user": &schema.Schema{
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"dns": &schema.Schema{
Type: schema.TypeSet,
Optional: true,

View File

@ -57,6 +57,10 @@ func resourceDockerContainerCreate(d *schema.ResourceData, meta interface{}) err
createOpts.Config.Entrypoint = stringListToStringSlice(v.([]interface{}))
}
if v, ok := d.GetOk("user"); ok {
createOpts.Config.User = v.(string)
}
exposedPorts := map[dc.Port]struct{}{}
portBindings := map[dc.Port][]dc.PortBinding{}

View File

@ -78,6 +78,10 @@ func TestAccDockerContainer_customized(t *testing.T) {
return fmt.Errorf("Container wrong entrypoint: %s", c.Config.Entrypoint)
}
if c.Config.User != "root:root" {
return fmt.Errorf("Container wrong user: %s", c.Config.User)
}
if c.HostConfig.RestartPolicy.Name == "on-failure" {
if c.HostConfig.RestartPolicy.MaximumRetryCount != 5 {
return fmt.Errorf("Container has wrong restart policy max retry count: %d", c.HostConfig.RestartPolicy.MaximumRetryCount)
@ -217,6 +221,7 @@ resource "docker_container" "foo" {
name = "tf-test"
image = "${docker_image.foo.latest}"
entrypoint = ["/bin/bash", "-c", "ping localhost"]
user = "root:root"
restart = "on-failure"
max_retry_count = 5
memory = 512

View File

@ -42,6 +42,9 @@ The following arguments are supported:
container to run as an executable. For example, to run `/usr/bin/myprogram`
when starting a container, set the entrypoint to be
`["/usr/bin/myprogram"]`.
* `user` - (Optional, string) User used for run the first process. Format is
`user` or `user:group` which user and group can be passed literraly or
by name.
* `dns` - (Optional, set of strings) Set of DNS servers.
* `env` - (Optional, set of strings) Environmental variables to set.
* `labels` - (Optional, map of strings) Key/value pairs to set as labels on the