From 32ce8fbcb403745679804f4980632946b3542239 Mon Sep 17 00:00:00 2001 From: Colin Hebert Date: Fri, 1 Jan 2016 09:57:21 +0100 Subject: [PATCH 1/2] Add network_mode support to docker --- builtin/providers/docker/resource_docker_container.go | 6 ++++++ builtin/providers/docker/resource_docker_container_funcs.go | 4 ++++ builtin/providers/docker/resource_docker_container_test.go | 1 + .../source/docs/providers/docker/r/container.html.markdown | 1 + 4 files changed, 12 insertions(+) diff --git a/builtin/providers/docker/resource_docker_container.go b/builtin/providers/docker/resource_docker_container.go index 323850499a39..ea73ca4f5738 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, }, + + "network_mode": &schema.Schema{ + Type: schema.TypeString, + 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 814941bba3d4..110d5cc8506c 100644 --- a/builtin/providers/docker/resource_docker_container_funcs.go +++ b/builtin/providers/docker/resource_docker_container_funcs.go @@ -136,6 +136,10 @@ func resourceDockerContainerCreate(d *schema.ResourceData, meta interface{}) err hostConfig.LogConfig.Config = mapTypeMapValsToString(v.(map[string]interface{})) } + if v, ok := d.GetOk("network_mode"); ok { + hostConfig.NetworkMode = v + } + createOpts.HostConfig = hostConfig var retContainer *dc.Container diff --git a/builtin/providers/docker/resource_docker_container_test.go b/builtin/providers/docker/resource_docker_container_test.go index df8ba0cb8adc..a5c36a5c2b95 100644 --- a/builtin/providers/docker/resource_docker_container_test.go +++ b/builtin/providers/docker/resource_docker_container_test.go @@ -155,5 +155,6 @@ resource "docker_container" "foo" { max-size = "10m" max-file = 20 } + network_mode = "bridge" } ` diff --git a/website/source/docs/providers/docker/r/container.html.markdown b/website/source/docs/providers/docker/r/container.html.markdown index 920288eb25b0..8ea796813500 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. +* `network_mode` - (Optional) Network mode of the container. ## Ports From ad0a76366101d79ba19f8e944120c91342d8ba5c Mon Sep 17 00:00:00 2001 From: Colin Hebert Date: Fri, 1 Jan 2016 10:12:43 +0100 Subject: [PATCH 2/2] Convert v to string --- builtin/providers/docker/resource_docker_container_funcs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/providers/docker/resource_docker_container_funcs.go b/builtin/providers/docker/resource_docker_container_funcs.go index 110d5cc8506c..5be5091e4608 100644 --- a/builtin/providers/docker/resource_docker_container_funcs.go +++ b/builtin/providers/docker/resource_docker_container_funcs.go @@ -137,7 +137,7 @@ func resourceDockerContainerCreate(d *schema.ResourceData, meta interface{}) err } if v, ok := d.GetOk("network_mode"); ok { - hostConfig.NetworkMode = v + hostConfig.NetworkMode = v.(string) } createOpts.HostConfig = hostConfig