From e9b728793599ccb2bcb62e3401e3db0107eb81fd Mon Sep 17 00:00:00 2001 From: Chris Bednarski Date: Wed, 23 Sep 2015 23:45:34 -0700 Subject: [PATCH] Added static / reserved port allocations to docker --- client/driver/docker.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/client/driver/docker.go b/client/driver/docker.go index 73fd1e688..c1bc206ea 100644 --- a/client/driver/docker.go +++ b/client/driver/docker.go @@ -109,6 +109,12 @@ func containerOptionsForTask(ctx *ExecContext, task *structs.Task, logger *log.L network := task.Resources.Networks[0] dockerPorts := map[docker.Port][]docker.PortBinding{} + for _, port := range network.ListStaticPorts() { + dockerPorts[docker.Port(strconv.Itoa(port)+"/tcp")] = []docker.PortBinding{docker.PortBinding{HostIP: network.IP, HostPort: strconv.Itoa(port)}} + dockerPorts[docker.Port(strconv.Itoa(port)+"/udp")] = []docker.PortBinding{docker.PortBinding{HostIP: network.IP, HostPort: strconv.Itoa(port)}} + logger.Printf("[DEBUG] driver.docker: allocated port %s:%d -> %d (static) %s\n", network.IP, port, port) + } + for label, port := range network.MapDynamicPorts() { // If the label is numeric we expect that there is a service // listening on that port inside the container. In this case we'll