variable "app_ini" { type = string } job "gitea" { region = "global" datacenters = ["dc1"] type = "service" group "gitea" { network { mode = "bridge" port "web" { host_network = "loopback" to = 3000 } port "ssh" { host_network = "loopback" to = 22 } } volume "gitea-data" { type = "host" read_only = false source = "gitea-data" } service { name = "gitea-web" port = "web" connect { sidecar_service { proxy { local_service_port = 514 upstreams { destination_name = "mysql-server" local_bind_port = 6060 } } } sidecar_task { resources { cpu = 50 memory = 50 } } } tags = [ "traefik.enable=true", "traefik.http.routers.gitea.entryPoints=websecure", ] } service { name = "gitea-ssh" port = "ssh" connect { sidecar_service { proxy { local_service_port = 22 } } sidecar_task { resources { cpu = 50 memory = 50 } } } tags = [ "traefik.enable=true", "traefik.tcp.routers.gitea-ssh.rule=HostSNI(`*`)", "traefik.tcp.routers.gitea-ssh.entryPoints=gitssh", ] } task "gitea-bootstrap" { driver = "docker" lifecycle { hook = "prestart" sidecar = false } config { image = "mysql:8" args = [ "/bin/bash", "-c", "/usr/bin/mysql --defaults-extra-file=/task/my.cnf < /task/bootstrap.sql", ] mount { type = "bind" source = "local/" target = "/task/" } } vault { policies = [ "access-tables", "nomad-task", ] } template { data = <