mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-16 03:15:23 +02:00
fix(signoz): fix ClickHouse hostname resolution and IPv6 binding
- Override the ClickHouse image's config.d/docker_related_config.xml, which listens on the IPv6 wildcard address ([::]) first and fails to bind on hosts without IPv6 support; listen on 0.0.0.0 (IPv4) only and disable the internal DNS cache so transient startup DNS failures for zookeeper-1/clickhouse are not cached (issue #534). - Set hostname: clickhouse (instead of container_name) so the server identifies itself as the cluster host declared in cluster.xml. - Remove the explicit signoz-net network: Dokploy attaches its own networks automatically and the repo validator rejects explicit networks; a fixed-name shared network also breaks service DNS across deployments. - Fix mount mismatch: template.toml created files/signoz/prometheus.xml while the compose mounts ../files/signoz/prometheus.yml, so Docker silently mounted a directory as the signoz prometheus config. - Give the otel-collector domain its own generated host: both domains previously shared the same host and path "/", creating two conflicting Traefik routers where one service randomly won. Closes #534 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,4 @@
|
||||
x-common: &common
|
||||
networks:
|
||||
- signoz-net
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
options:
|
||||
@@ -89,11 +87,12 @@ services:
|
||||
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||
clickhouse:
|
||||
!!merge <<: *clickhouse-defaults
|
||||
container_name: signoz-clickhouse
|
||||
hostname: clickhouse
|
||||
volumes:
|
||||
- ../files/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||
- ../files/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ../files/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||
- ../files/clickhouse/docker_related_config.xml:/etc/clickhouse-server/config.d/docker_related_config.xml
|
||||
- clickhouse:/var/lib/clickhouse/
|
||||
signoz:
|
||||
!!merge <<: *db-depend
|
||||
@@ -156,9 +155,6 @@ services:
|
||||
- --dsn=tcp://clickhouse:9000
|
||||
- --up=
|
||||
restart: on-failure
|
||||
networks:
|
||||
signoz-net:
|
||||
name: signoz-net
|
||||
volumes:
|
||||
clickhouse:
|
||||
name: signoz-clickhouse
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
otel_domain = "${domain}"
|
||||
jwt_secret = "${password:64}"
|
||||
|
||||
[config]
|
||||
@@ -12,7 +13,7 @@ path = "/"
|
||||
[[config.domains]]
|
||||
serviceName = "otel-collector"
|
||||
port = 4318
|
||||
host = "${main_domain}"
|
||||
host = "${otel_domain}"
|
||||
path = "/"
|
||||
|
||||
[config.env]
|
||||
@@ -1246,7 +1247,23 @@ content = """
|
||||
"""
|
||||
|
||||
[[config.mounts]]
|
||||
filePath = "/signoz/prometheus.xml"
|
||||
filePath = "/clickhouse/docker_related_config.xml"
|
||||
content = """
|
||||
<?xml version="1.0"?>
|
||||
<clickhouse>
|
||||
<!-- Overrides the docker image's default config.d/docker_related_config.xml,
|
||||
which listens on the IPv6 wildcard address ([::]) first. On hosts without
|
||||
IPv6 support the bind fails, so listen on IPv4 only. -->
|
||||
<listen_host>0.0.0.0</listen_host>
|
||||
<listen_try>1</listen_try>
|
||||
<!-- Container IPs can change and DNS records (zookeeper-1, clickhouse) may not
|
||||
be ready the moment ClickHouse starts. Do not cache DNS lookup failures. -->
|
||||
<disable_internal_dns_cache>1</disable_internal_dns_cache>
|
||||
</clickhouse>
|
||||
"""
|
||||
|
||||
[[config.mounts]]
|
||||
filePath = "/signoz/prometheus.yml"
|
||||
content = """
|
||||
# my global config
|
||||
global:
|
||||
|
||||
Reference in New Issue
Block a user