From 6e3609564462321132aee7047abc6d3f0adf1f30 Mon Sep 17 00:00:00 2001 From: Colin Hebert Date: Mon, 4 Jan 2016 20:58:54 +0100 Subject: [PATCH] Add the networks entry --- builtin/providers/docker/resource_docker_container.go | 6 ++++++ .../providers/docker/resource_docker_container_funcs.go | 8 ++++++++ .../docs/providers/docker/r/container.html.markdown | 1 + 3 files changed, 15 insertions(+) diff --git a/builtin/providers/docker/resource_docker_container.go b/builtin/providers/docker/resource_docker_container.go index 323850499a..f20ff43f08 100644 --- a/builtin/providers/docker/resource_docker_container.go +++ b/builtin/providers/docker/resource_docker_container.go @@ -238,6 +238,12 @@ func resourceDockerContainer() *schema.Resource { Optional: true, ForceNew: true, }, + + "networks": &schema.Schema{ + Type: schema.TypeSet, + Optional: true, + ForceNew: true, + }, }, } } diff --git a/builtin/providers/docker/resource_docker_container_funcs.go b/builtin/providers/docker/resource_docker_container_funcs.go index 814941bba3..605db710ce 100644 --- a/builtin/providers/docker/resource_docker_container_funcs.go +++ b/builtin/providers/docker/resource_docker_container_funcs.go @@ -148,6 +148,14 @@ func resourceDockerContainerCreate(d *schema.ResourceData, meta interface{}) err d.SetId(retContainer.ID) + if v, ok := d.GetOk("networks"); ok { + connectionOpts := &dc.NetworkConnectionOptions{Container: retContainer.ID} + + for _, network := range v.(*schema.Set).List() { + client.ConnectNetwork(network.(string), connectionOpts) + } + } + creationTime = time.Now() if err := client.StartContainer(retContainer.ID, hostConfig); err != nil { return fmt.Errorf("Unable to start container: %s", err) diff --git a/website/source/docs/providers/docker/r/container.html.markdown b/website/source/docs/providers/docker/r/container.html.markdown index 920288eb25..e8ae91c153 100644 --- a/website/source/docs/providers/docker/r/container.html.markdown +++ b/website/source/docs/providers/docker/r/container.html.markdown @@ -68,6 +68,7 @@ The following arguments are supported: Defaults to "json-file". * `log_opts` - (Optional) Key/value pairs to use as options for the logging driver. +* `networks` - (Optional, set of strings) Id of the networks in which the container is. ## Ports