2018-07-28 14:33:43 +00:00
|
|
|
data "docker_registry_image" "image" {
|
|
|
|
name = "${var.image}"
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "docker_image" "image" {
|
|
|
|
name = "${data.docker_registry_image.image.name}"
|
|
|
|
pull_triggers = ["${data.docker_registry_image.image.sha256_digest}"]
|
|
|
|
}
|
|
|
|
|
2018-08-23 19:36:27 +00:00
|
|
|
data "docker_network" "traefik" {
|
|
|
|
name = "traefik"
|
|
|
|
}
|
|
|
|
|
2018-07-28 14:33:43 +00:00
|
|
|
resource "docker_container" "container" {
|
2018-07-30 06:42:58 +00:00
|
|
|
name = "${var.name}"
|
|
|
|
image = "${docker_image.image.latest}"
|
|
|
|
ports = "${var.ports}"
|
|
|
|
restart = "${var.restart}"
|
|
|
|
env = "${var.env}"
|
|
|
|
command = "${var.command}"
|
|
|
|
entrypoint = "${var.entrypoint}"
|
|
|
|
user = "${var.user}"
|
2018-08-23 19:36:27 +00:00
|
|
|
|
|
|
|
// Only attach the traefik network if
|
|
|
|
// service is exposed to the web
|
2018-10-13 15:25:20 +00:00
|
|
|
networks = ["${concat(var.networks,split(",",lookup(var.web, "expose", "false") == "false" ? "" :"${data.docker_network.traefik.id}"))}"]
|
2018-07-30 06:42:58 +00:00
|
|
|
|
2018-08-06 21:25:46 +00:00
|
|
|
memory = "${local.resource["memory"]}"
|
2018-08-02 18:29:39 +00:00
|
|
|
|
2018-10-13 15:25:20 +00:00
|
|
|
volumes = ["${var.volumes}"]
|
2018-08-21 03:00:17 +00:00
|
|
|
|
2018-08-02 18:29:39 +00:00
|
|
|
# Look at this monstrosity
|
|
|
|
# And then https://github.com/hashicorp/terraform/issues/12453#issuecomment-365569618
|
|
|
|
# for why this is needed
|
|
|
|
|
|
|
|
labels = "${merge(local.default_labels,
|
|
|
|
zipmap(
|
|
|
|
concat(
|
2018-08-06 21:25:46 +00:00
|
|
|
keys(local.default_labels),
|
|
|
|
split("~",
|
2018-08-02 18:29:39 +00:00
|
|
|
lookup(var.web, "expose", "false") == "false" ?
|
|
|
|
"" :
|
2018-08-06 21:25:46 +00:00
|
|
|
join("~", keys(local.traefik_common_labels))
|
2018-08-02 18:29:39 +00:00
|
|
|
)
|
2018-08-06 21:25:46 +00:00
|
|
|
),
|
|
|
|
concat(
|
|
|
|
values(local.default_labels),
|
|
|
|
split("~",
|
2018-08-02 18:29:39 +00:00
|
|
|
lookup(var.web, "expose", "false") == "false" ?
|
|
|
|
"" :
|
2018-08-06 21:25:46 +00:00
|
|
|
join("~", values(local.traefik_common_labels))
|
2018-08-02 18:29:39 +00:00
|
|
|
)
|
|
|
|
)
|
|
|
|
),
|
|
|
|
zipmap(
|
|
|
|
concat(
|
2018-08-06 21:25:46 +00:00
|
|
|
keys(local.default_labels),
|
|
|
|
split("~",
|
2018-08-02 18:29:39 +00:00
|
|
|
lookup(var.web, "expose", "false") == "false" ?
|
|
|
|
"" :
|
2018-08-06 21:25:46 +00:00
|
|
|
join("~", keys(local.web))
|
2018-08-02 18:29:39 +00:00
|
|
|
)
|
2018-08-06 21:25:46 +00:00
|
|
|
),
|
|
|
|
concat(
|
|
|
|
values(local.default_labels),
|
|
|
|
split("~",
|
2018-08-02 18:29:39 +00:00
|
|
|
lookup(var.web, "expose", "false") == "false" ?
|
|
|
|
"" :
|
2018-08-06 21:25:46 +00:00
|
|
|
join("~", values(local.web))
|
2018-08-02 18:29:39 +00:00
|
|
|
)
|
|
|
|
)
|
|
|
|
),
|
|
|
|
|
2018-08-06 21:25:46 +00:00
|
|
|
|
2018-08-02 18:29:39 +00:00
|
|
|
zipmap(
|
|
|
|
concat(
|
2018-08-06 21:25:46 +00:00
|
|
|
keys(local.default_labels),
|
|
|
|
split("~",
|
2018-08-02 18:29:39 +00:00
|
|
|
lookup(var.web, "expose", "false") == "false" ?
|
|
|
|
"" :
|
2018-08-06 21:25:46 +00:00
|
|
|
join("~", keys(local.traefik_common_labels))
|
2018-08-02 18:29:39 +00:00
|
|
|
)
|
2018-08-06 21:25:46 +00:00
|
|
|
),
|
|
|
|
concat(
|
|
|
|
values(local.default_labels),
|
|
|
|
split("~",
|
2018-08-02 18:29:39 +00:00
|
|
|
lookup(var.web, "expose", "false") == "false" ?
|
|
|
|
"" :
|
2018-08-06 21:25:46 +00:00
|
|
|
join("~", values(local.traefik_common_labels))
|
2018-08-02 18:29:39 +00:00
|
|
|
)
|
|
|
|
)
|
|
|
|
),
|
|
|
|
zipmap(
|
|
|
|
concat(
|
2018-08-06 21:25:46 +00:00
|
|
|
keys(local.default_labels),
|
|
|
|
split("~",
|
2018-08-02 18:29:39 +00:00
|
|
|
lookup(var.web, "auth", "false") == "false" ?
|
|
|
|
"" :
|
2018-08-06 21:25:46 +00:00
|
|
|
join("~", keys(local.traefik_auth_labels))
|
2018-08-02 18:29:39 +00:00
|
|
|
)
|
2018-08-06 21:25:46 +00:00
|
|
|
),
|
|
|
|
concat(
|
|
|
|
values(local.default_labels),
|
|
|
|
split("~",
|
2018-08-02 18:29:39 +00:00
|
|
|
lookup(var.web, "auth", "false") == "false" ?
|
|
|
|
"" :
|
2018-08-06 21:25:46 +00:00
|
|
|
join("~", values(local.traefik_auth_labels))
|
2018-08-02 18:29:39 +00:00
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)}"
|
2018-07-28 14:33:43 +00:00
|
|
|
destroy_grace_seconds = "${var.destroy_grace_seconds}"
|
|
|
|
must_run = "${var.must_run}"
|
|
|
|
}
|