Sonarqube DCE is deployed using docker-compose version 9.5.0. Kindly help to fix this behaviour. FYI - I have already tested the setup by disabling the LDAP related configs and it works fine.
Sharing docker-compose snippet for reference.
---
version: "3"
services:
sonarqube:
image: sonarqube-dc:9.5.0-datacenter-app
container_name: "sonarqube-app"
network_mode: host
environment:
SONAR_JDBC_URL: jdbc:postgresql://xxxx
SONAR_JDBC_USERNAME: xx
SONAR_JDBC_PASSWORD: xxx
SONAR_CLUSTER_NAME: sonarqube-dev
SONAR_WEB_PORT: 9000
SONAR_CLUSTER_SEARCH_HOSTS: "listofips"
SONAR_CLUSTER_HOSTS: "listofips"
SONAR_AUTH_JWTBASE64HS256SECRET: xxx
SONAR_LOG_LEVEL: DEBUG
SONAR_WEB_ACCESSLOGS_PATTERN: '%i{X-Forwarded-For} %l %u [%t] "%r" %s %b "%i{Referer}" "%i{User-Agent}" "%reqAttribute{ID}"'
SONAR_WEB_ACCESSLOGS_ENABLE: 'true'
SONAR_LOG_MAXFILES: '1'
http_proxy: proxy.com
https_proxy: proxy.com
HTTP_PROXYHOST: proxy.com
HTTP_PROXYPORT: port#
HTTPS_PROXYHOST: proxy.com
HTTPS_PROXYPORT: port#
SONAR_SECURITY_REALM: LDAP
LDAP_URL: ldap://ldap.com:1234
LDAP_BINDDN: CN=xx,OU=xx,OU=xx,OU=xx,DC=xx,DC=xx,DC=net
LDAP_BINDPASSWORD: xxxxxxy
LDAP_USER_BASEDN: dc=xx,dc=net
LDAP_USER_REQUEST: (&(sAMAccountName={0})(|(memberOf=CN=xx,OU=Users,OU=PH,OU=xx,DC=EU,DC=xx,DC=net)))
LDAP_GROUP_BASEDN: dc=xx,dc=net
LDAP_GROUP_REQUEST: (&(objectClass=group)(member={dn}))
LDAP_GROUP_IDATTRIBUTE: sAMAccountName
LDAP_USER_REALNAMEATTRIBUTE: displayName
ulimits:
nofile:
soft: 262144
hard: 262144
volumes:
- /opt/tools/sonarqube/extensions/plugins:/opt/sonarqube/extensions/plugins
- /opt/tools/sonarqube/logs:/opt/sonarqube/logs
- /opt/tools/sonarqube/data:/opt/sonarqube/data
- /opt/tools/sonarqube/conf/sonar.properties:/opt/sonarqube/conf/sonar.properties```
Error Details -
2023.03.08 12:17:48 ERROR sonarqube-d80c5682-723a-4cf2-b2c1-24c9b2b82310 web[][o.s.s.p.Platform] Background initialization failed. Stopping SonarQube
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.ws.WebServiceEngine': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.authentication.ws.AuthenticationWs': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.authentication.ws.LoginAction': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.authentication.CredentialsAuthentication': Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.authentication.CredentialsExternalAuthentication': Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@5c29bfd-org.sonar.server.user.SecurityRealmFactory': Initialization of bean failed; nested exception is org.sonar.api.utils.SonarException: Security realm fails to start: Unable to open LDAP connection
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229)
Caused by: org.sonar.api.utils.SonarException: Security realm fails to start: Unable to open LDAP connection
at org.sonar.server.user.SecurityRealmFactory.start(SecurityRealmFactory.java:98)
at org.sonar.core.platform.StartableBeanPostProcessor.postProcessBeforeInitialization(StartableBeanPostProcessor.java:33)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
... 94 common frames omitted
Caused by: org.sonar.auth.ldap.LdapException: Unable to open LDAP connection
at org.sonar.auth.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:214)
at org.sonar.auth.ldap.LdapRealm.init(LdapRealm.java:63)
at org.sonar.server.user.SecurityRealmFactory.start(SecurityRealmFactory.java:92)
... 98 common frames omitted
Caused by: javax.naming.CommunicationException: ldap.server.net:3268
at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:252)
at java.naming/com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:137)
at java.naming/com.sun.jndi.ldap.LdapClientFactory.createPooledConnection(LdapClientFactory.java:64)
at java.naming/com.sun.jndi.ldap.pool.Connections.<init>(Connections.java:114)
at java.naming/com.sun.jndi.ldap.pool.Pool.getPooledConnection(Pool.java:136)
at java.naming/com.sun.jndi.ldap.LdapPoolManager.getLdapClient(LdapPoolManager.java:340)
at java.naming/com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1608)
at java.naming/com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2847)
at java.naming/com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:348)
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxFromUrl(LdapCtxFactory.java:262)
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:226)
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:280)
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:185)
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:115)
at java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:730)
at java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
at java.naming/javax.naming.InitialContext.init(InitialContext.java:236)
at java.naming/javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
at org.sonar.auth.ldap.LdapContextFactory.createInitialDirContext(LdapContextFactory.java:137)
at org.sonar.auth.ldap.LdapContextFactory.createBindContext(LdapContextFactory.java:95)
at org.sonar.auth.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:210)
... 100 common frames omitted
Caused by: java.net.UnknownHostException: ldap.server.net
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:229)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/java.net.Socket.connect(Socket.java:558)
at java.base/java.net.Socket.<init>(Socket.java:454)
at java.base/java.net.Socket.<init>(Socket.java:231)
at java.naming/com.sun.jndi.ldap.Connection.createSocket(Connection.java:345)