在使用docker部署sonarqube的时候发现明明容器是启动的,可是web访问不到,端口也是正常的。docker restart 重启容器也无法发现错误,报错信息是
sonarqube | 2022.10.26 06:33:04 WARN web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [I/O dispatcher 64] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:\n java.base@11.0.11/sun.nio.ch.EPoll.wait(Native Method)\n java.base@11.0.11/sun.nio.ch.EPollSelectorImpl.doSelect(Unknown Source)\n java.base@11.0.11/sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)\n java.base@11.0.11/sun.nio.ch.SelectorImpl.select(Unknown Source)\n app//org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:255)\n app//org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)\n app//org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591)\n java.base@11.0.11/java.lang.Thread.run(Unknown Source)
sonarqube | 2022.10.26 06:33:04 INFO web[][o.s.s.a.EmbeddedTomcat] HTTP connector enabled on port 9000
sonarqube | 2022.10.26 06:33:04 INFO web[][o.s.p.ProcessEntryPoint] Hard stopping process
使用docker ps -a 查看容器,发现伴生数据库已经挂了
docker start ID 起不来
这个时候只需要把两个容器都干掉在重启就行,干掉任意一个都不行,问就是玄学。
docker stop ID
docker rm ID
cd /usr/local/docker/sonarqube
docker-compose up -d #启动容器
docker-compose logs -f #查看日志
在测试一下web,已经正常。
在附上一个博主在用的配置。
version: "3.1"
services:
db:
image: postgres
container_name: db
ports:
- 5432:5432
networks:
- sonarnet
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
sonarqube:
image: sonarqube:8.9.3-community
container_name: sonarqube
depends_on:
- db
ports:
- "9000:9000"
networks:
- sonarnet
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
networks:
sonarnet:
driver: bridge
~
~