From 61d2276fad954a49083b51fdd354a74b75779a1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Mon, 17 Nov 2025 09:12:30 +0100 Subject: [PATCH] fix: Docker healthcheck IPv6 connection refused MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changed healthcheck from localhost to 127.0.0.1 to force IPv4 connection. The issue occurred because 'localhost' resolves to IPv6 (::1) but nginx only listens on IPv4 by default, causing healthchecks to fail. Error before fix: Connecting to localhost ([::1]:80) wget: can't connect to remote host: Connection refused Updated both Dockerfile and docker-compose.yml for consistency. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Dockerfile | 4 ++-- docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1425dea..c18410c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -48,9 +48,9 @@ RUN chown -R nginx:nginx /usr/share/nginx/html && \ # Expose port 80 EXPOSE 80 -# Health check +# Health check (use 127.0.0.1 to force IPv4) HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ - CMD wget --no-verbose --tries=1 --spider http://localhost/ || exit 1 + CMD wget --no-verbose --tries=1 --spider http://127.0.0.1/ || exit 1 # Run nginx CMD ["nginx", "-g", "daemon off;"] diff --git a/docker-compose.yml b/docker-compose.yml index 65bd193..6f0f8a4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,7 +11,7 @@ services: - "80:80" restart: unless-stopped healthcheck: - test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/"] + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1/"] interval: 30s timeout: 10s retries: 3