From 2dae2ac3ca7b0167355980bc8eb05d188e1d669e Mon Sep 17 00:00:00 2001 From: notplants <@notplants> Date: Tue, 23 Jun 2026 16:46:20 +0000 Subject: [PATCH] fix(app): use stack-prefixed hostnames for redis and db MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The app service was missing DISCOURSE_REDIS_HOST entirely, so the bitnami image defaulted to the bare hostname 'redis', which does not resolve when the service is attached to multiple overlay networks (proxy + internal) — causing a restart loop. sidekiq had the same problem worse: both DISCOURSE_DATABASE_HOST=db and DISCOURSE_REDIS_HOST=redis used bare hostnames instead of the stack-prefixed service names. On a swarm stack the reliable DNS name is ${STACK_NAME}_db / ${STACK_NAME}_redis. --- compose.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compose.yml b/compose.yml index 3365c28..dfc775c 100644 --- a/compose.yml +++ b/compose.yml @@ -16,6 +16,8 @@ services: - DISCOURSE_DATABASE_USER=discourse - DISCOURSE_HOST=${DOMAIN} - DISCOURSE_NOTIFICATION_EMAIL + # bare "redis" doesn't resolve when app is on multiple networks; use stack-prefixed name + - DISCOURSE_REDIS_HOST=${STACK_NAME}_redis - DISCOURSE_SMTP_AUTH - DISCOURSE_SMTP_HOST - DISCOURSE_SMTP_PORT @@ -100,13 +102,13 @@ services: - db_password environment: - ALLOW_EMPTY_PASSWORD=yes - - DISCOURSE_DATABASE_HOST=db + - DISCOURSE_DATABASE_HOST=${STACK_NAME}_db - DISCOURSE_DATABASE_NAME=discourse - DISCOURSE_DATABASE_PASSWORD_FILE=/run/secrets/db_password - DISCOURSE_DATABASE_PORT_NUMBER=5432 - DISCOURSE_DATABASE_USER=discourse - DISCOURSE_HOST=${DOMAIN} - - DISCOURSE_REDIS_HOST=redis + - DISCOURSE_REDIS_HOST=${STACK_NAME}_redis - DISCOURSE_REDIS_PORT_NUMBER=6379 - DISCOURSE_SMTP_HOST - DISCOURSE_SMTP_PORT