hi,
using SonarQube community on IPv6 only network with NAT64.
SonarQube version is Community Build v25.6.0.109173 MQR Mode
Deployed as docker container.
If open in my webbrowser https://sonarqube/admin/system:
sonarqube | 2025.06.03 10:12:59 ERROR web[4bb32d1d-2c9f-4b9c-a03c-06ce72367665][o.s.s.w.WebServiceEngine] Fail to process request http://127.0.0.1:9000/api/system/info
sonarqube | java.lang.IllegalStateException: Failed to call HTTP server of process COMPUTE_ENGINE
sonarqube | at org.sonar.server.ce.http.CeHttpClientImpl.call(CeHttpClientImpl.java:133)
sonarqube | at org.sonar.server.ce.http.CeHttpClientImpl.retrieveSystemInfo(CeHttpClientImpl.java:60)
sonarqube | at org.sonar.server.platform.StandaloneSystemInfoWriter.write(StandaloneSystemInfoWriter.java:52)
sonarqube | at org.sonar.server.platform.ws.InfoAction.handle(InfoAction.java:64)
sonarqube | at org.sonar.server.ws.WebServiceEngine.execute(WebServiceEngine.java:114)
sonarqube | at org.sonar.server.platform.web.WebServiceFilter.doFilter(WebServiceFilter.java:84)
sonarqube | at org.sonar.server.platform.web.MasterServletFilter$JavaxFilterAdapter.doFilter(MasterServletFilter.java:194)
sonarqube | at org.sonar.server.platform.web.MasterServletFilter$GodFilterChain.doFilter(MasterServletFilter.java:165)
sonarqube | at org.sonar.server.platform.web.MasterServletFilter$HttpFilterChainAdapter.doFilter(MasterServletFilter.java:208)
sonarqube | at org.sonar.server.platform.web.SonarQubeIdeConnectionFilter.doFilter(SonarQubeIdeConnectionFilter.java:62)
sonarqube | at org.sonar.server.platform.web.MasterServletFilter$JavaxFilterAdapter.doFilter(MasterServletFilter.java:194)
sonarqube | at org.sonar.server.platform.web.MasterServletFilter$GodFilterChain.doFilter(MasterServletFilter.java:165)
sonarqube | at org.sonar.server.platform.web.MasterServletFilter.doFilter(MasterServletFilter.java:126)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.sonar.server.platform.web.UserSessionFilter.doFilter(UserSessionFilter.java:83)
sonarqube | at org.sonar.server.platform.web.UserSessionFilter.doFilter(UserSessionFilter.java:70)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.sonar.server.platform.web.CspFilter.doFilter(CspFilter.java:67)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.sonar.server.platform.web.CacheControlFilter.doFilter(CacheControlFilter.java:76)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.sonar.server.platform.web.SecurityServletFilter.doHttpFilter(SecurityServletFilter.java:60)
sonarqube | at org.sonar.server.platform.web.SecurityServletFilter.doFilter(SecurityServletFilter.java:47)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.sonar.server.platform.web.RedirectFilter.doFilter(RedirectFilter.java:56)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.sonar.server.platform.web.EndpointPathFilter.doFilter(EndpointPathFilter.java:47)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.sonar.server.platform.web.RequestIdFilter.doFilter(RequestIdFilter.java:66)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:65)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:115)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
sonarqube | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
sonarqube | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
sonarqube | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
sonarqube | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
sonarqube | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
sonarqube | at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:268)
sonarqube | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
sonarqube | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
sonarqube | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
sonarqube | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
sonarqube | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
sonarqube | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905)
sonarqube | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
sonarqube | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
sonarqube | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
sonarqube | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
sonarqube | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
sonarqube | at java.base/java.lang.Thread.run(Unknown Source)
sonarqube | Caused by: java.net.MalformedURLException: Error at index 1 in: "0:0:0:0:0:0:1:37085"
sonarqube | at java.base/java.net.URL.<init>(Unknown Source)
sonarqube | at java.base/java.net.URL.of(Unknown Source)
sonarqube | at java.base/java.net.URI.toURL(Unknown Source)
sonarqube | at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:2892)
sonarqube | at org.sonar.server.ce.http.CeHttpClientImpl$SystemInfoActionClient.call(CeHttpClientImpl.java:78)
sonarqube | at org.sonar.server.ce.http.CeHttpClientImpl$SystemInfoActionClient.call(CeHttpClientImpl.java:63)
sonarqube | at org.sonar.server.ce.http.CeHttpClientImpl.call(CeHttpClientImpl.java:129)
sonarqube | ... 60 common frames omitted
sonarqube | Caused by: java.lang.NumberFormatException: Error at index 1 in: "0:0:0:0:0:0:1:37085"
sonarqube | at java.base/java.lang.NumberFormatException.forCharSequence(Unknown Source)
sonarqube | at java.base/java.lang.Integer.parseInt(Unknown Source)
sonarqube | at java.base/java.net.URLStreamHandler.parseURL(Unknown Source)
sonarqube | ... 67 common frames omitted
Looks for me that there is a problem that an IPv6 Adress is given to an http client without square brackets.
compose file:
services:
sonarqube:
restart: unless-stopped
networks:
- sonarnet
image: sonarqube:community
hostname: sonarqube
container_name: sonarqube
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
SONAR_SECURITY_REALM: LDAP
SONAR_SEARCH_HOST: "0.0.0.0"
SONAR_ES_BOOTSTRAP_CHECKS_DISABLE: "true"
SONAR_SEARCH_JAVAADDITIONALOPTS: "-Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true -Xmx1024m -Xms1024m"
SONAR_WEB_JAVAADDITIONALOPTS: "-Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true -Xmx1024m -Xms512m"
SONAR_CE_JAVAOPTS: "-Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true -Xmx1024m -Xms512m"
SONAR_SECURITY_SAVEPASSWORD: "false"
SONAR_AUTHENTICATOR_CREATEUSERS: "true"
SONAR_AUTHENTICATOR_DOWNCASE: "false"
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/opt/sonarqube/logs
- /etc/pki/ca-trust/extracted/java/cacerts:/opt/java/openjdk/lib/security/cacerts
ports:
- "9000:9000"
ulimits:
nofile:
soft: 65536
hard: 65536
db:
image: postgres:15
restart: unless-stopped
networks:
- sonarnet
hostname: postgresql
container_name: postgresql
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
volumes:
- postgresql:/var/lib/postgresql
- postgresql_data:/var/lib/postgresql/data
networks:
sonarnet:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 64:ff9b:100::/64
gateway: 64:ff9b:100::1
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql:
postgresql_data:
Docker config:
{
"ip6tables": true,
"experimental": true,
"ipv6": true,
"fixed-cidr-v6": "64:ff9b:99::/64"
}
In front nginx as reverse proxy:
location / {
expires -1;
add_header Cache-Control "public";
proxy_hide_header "X-Powered-By";
proxy_pass http://127.0.0.1:9000;
server_name_in_redirect off;
proxy_http_version 1.1;
keepalive_requests 500;
proxy_ignore_client_abort on;
proxy_redirect http:// https://;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 64k;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto https;
proxy_cache STATIC;
proxy_cache_convert_head off;
proxy_cache_key $server_name$request_uri$request_method;
}