I am trying to set up Miniflux with postgres and consul for service discovery, but for whatever reason I can’t get the environment variable for the database address (NOMAD_UPSTREAM_ADDR_postgres) to interpolate, because when I look at the error logs for miniflux I see it complaining it can’t parse ${NOMAD_UPSTREAM_ADDR_postgres}. Here is my job declaration:
job "miniflux" {
datacenters = ["dc1"]
update {
stagger = "10s"
max_parallel = 1
}
group "postgres" {
network {
port "db" {
to = 5432
}
}
task "postgres" {
driver = "docker"
config {
image = "postgres"
ports = ["db"]
volumes = [
"miniflux-db:/var/lib/postgresql/data"
]
}
resources {
cpu = 256
memory = 256
}
env {
POSTGRES_USERNAME = "postgres"
POSTGRES_PASSWORD = "postgres"
}
service {
name = "postgres"
port = "db"
check {
name = "alive"
type = "tcp"
interval = "10s"
timeout = "2s"
}
}
}
restart {
attempts = 10
interval = "5m"
delay = "25s"
mode = "delay"
}
}
group "miniflux" {
network {
port "app" {
to = 80
}
}
restart {
attempts = 10
interval = "5m"
delay = "25s"
mode = "delay"
}
task "miniflux" {
env {
DATABASE_URL = "postgres://postgres:postgres@${NOMAD_UPSTREAM_ADDR_postgres}/miniflux?sslmode=disable"
RUN_MIGRATIONS = "1"
CREATE_ADMIN = "1"
ADMIN_USERNAME = "pta2002"
ADMIN_PASSWORD = "password"
}
service {
name = "miniflux"
port = "app"
check {
name = "alive"
type = "tcp"
port = "app"
interval = "10s"
timeout = "2s"
}
tags = [
"traefik.enable=true",
"traefik.http.routers.miniflux.rule=PathPrefix(`/miniflux`)"
]
}
driver = "docker"
config {
image = "miniflux/miniflux"
ports = ["app"]
}
}
}
}