job "myservice" { datacenters = ["dc1"] type = "service" update { max_parallel = 1 min_healthy_time = "2m" healthy_deadline = "6m" auto_revert = false canary = 0 } group "myservice-shard1" { count = 1 restart { attempts = 1 interval = "5m" delay = "10s" mode = "fail" } task "myservice" { driver = "docker" config { image = "services/myservice:0.3" force_pull = true network_mode = "host" } env { shards = "1,2" } resources { cpu = 500 # 500 MHz memory = 256 # 256MB network { mbits = 10 port "psrv" { static = 8085 } } } service { name = "myservice" tags = ["shards=1,2"] port = "psrv" check { name = "alive" type = "tcp" interval = "10s" timeout = "3s" } } } } group "myservice-shard2" { count = 1 restart { attempts = 1 interval = "5m" delay = "10s" mode = "fail" } task "myservice" { driver = "docker" config { image = "services/myservice:0.3" force_pull = true network_mode = "host" } env { shards = "1,3" } resources { cpu = 500 # 500 MHz memory = 256 # 256MB network { mbits = 10 port "psrv" { static = 8085 } } } service { name = "myservice" tags = ["shards=1,3"] port = "psrv" check { name = "alive" type = "tcp" interval = "10s" timeout = "3s" } } } } group "myservice-shard3" { count = 1 restart { attempts = 1 interval = "5m" delay = "10s" mode = "fail" } task "myservice" { driver = "docker" config { image = "services/myservice:0.3" force_pull = true network_mode = "host" } env { shards = "2,3" } resources { cpu = 500 # 500 MHz memory = 256 # 256MB network { mbits = 10 port "psrv" { static = 8085 } } } service { name = "myservice" tags = ["shards=2,3"] port = "psrv" check { name = "alive" type = "tcp" interval = "10s" timeout = "3s" } } } } }