diff options
Diffstat (limited to 'app/traefik/deploy/traefik.hcl')
-rw-r--r-- | app/traefik/deploy/traefik.hcl | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/app/traefik/deploy/traefik.hcl b/app/traefik/deploy/traefik.hcl new file mode 100644 index 0000000..bcfa95b --- /dev/null +++ b/app/traefik/deploy/traefik.hcl @@ -0,0 +1,72 @@ +job "frontend" { + datacenters = ["dc1"] + type = "service" + priority = 80 + + group "traefik" { + + network { + port "http_port" { static = 80 } + port "https_port" { static = 443 } + port "admin_port" { static = 8082 } + } + + task "server" { + driver = "docker" + + config { + image = "amd64/traefik:1.7.20" + readonly_rootfs = true + network_mode = "host" + volumes = [ + "secrets/traefik.toml:/etc/traefik/traefik.toml", + ] + ports = [ "http_port", "https_port", "admin_port" ] + } + + resources { + memory = 265 + } + + template { + data = file("../config/traefik.toml") + destination = "secrets/traefik.toml" + } + + service { + name = "traefik-http" + port = "http_port" + tags = [ "(diplonat (tcp_port 80))" ] + address_mode = "host" + } + + service { + name = "traefik-https" + port = "https_port" + tags = [ "(diplonat (tcp_port 443))" ] + address_mode = "host" + } + + service { + name = "traefik-admin" + port = "admin_port" + address_mode = "host" + check { + type = "http" + protocol = "http" + port = 8082 + address_mode = "driver" + path = "/ping" + interval = "60s" + timeout = "5s" + check_restart { + limit = 3 + grace = "90s" + ignore_warnings = false + } + } + } + } + } +} + |