使用 docker-compose 的 SonarQube

SonarQube with docker-compose

我使用下面的 docker-compose 文件来启动 sonarQube 服务器 https://derryberni.medium.com/how-to-setup-sonar-cube-sonar-scanner-with-docker-compose-simple-15c9d84966dc

并且在日志中发现一切正常 运行

2021.01.31 19:16:54 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory 
/opt/sonarqube/temp
2021.01.31 19:16:54 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 
127.0.0.1:9001, TCP: 127.0.0.1:46495]
2021.01.31 19:16:55 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, 
logFilenamePrefix=es]] from [/opt/sonarqube/elasticsearch]: 
/opt/sonarqube/elasticsearch/bin/elasticsearch
2021.01.31 19:16:55 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2021.01.31 19:17:26 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2021.01.31 19:17:26 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, 
logFilenamePrefix=web]] from [/opt/sonarqube]: /opt/java/openjdk/bin/java -Djava.awt.headless=true - 
Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -XX:-OmitStackTraceInFastThrow --add- 
opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add- 
opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -Xmx512m - 
Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp 
./lib/common/*:/opt/sonarqube/lib/jdbc/postgresql/postgresql-42.2.17.jar 
org.sonar.server.app.WebServer /opt/sonarqube/temp/sq-process9044442147466534697properties
2021.01.31 19:19:42 INFO  app[][o.s.a.SchedulerImpl] Process[web] is up
2021.01.31 19:19:42 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[[key='ce', ipcIndex=3, 
logFilenamePrefix=ce]] from [/opt/sonarqube]: /opt/java/openjdk/bin/java -Djava.awt.headless=true - 
Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -XX:-OmitStackTraceInFastThrow --add- 
opens=java.base/java.util=ALL-UNNAMED -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError - 
Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp 
./lib/common/*:/opt/sonarqube/lib/jdbc/postgresql/postgresql-42.2.17.jar org.sonar.ce.app.CeServer 
 /opt/sonarqube/temp/sq-process10127776924284503599properties
2021.01.31 19:20:00 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
2021.01.31 19:20:00 INFO  app[][o.s.a.SchedulerImpl] SonarQube is up

并且在尝试点击 localhost:9001 时没有显示任何响应

错误:

This page isn’t workinglocalhost didn’t send any data.
ERR_EMPTY_RESPONSE

docker ps result

Docker Compose file

version: "3"

services:
  sonarqube:
    image: sonarqube
    expose:
      - 9001
    ports:
      - "127.0.0.1:9001:9001"
    networks:
      - sonarnet
    environment:
      - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
      - SONARQUBE_JDBC_USERNAME=sonar
      - SONARQUBE_JDBC_PASSWORD=sonar
    volumes:
      - sonarqube_conf:/opt/sonarqube/conf
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins

  db:
    image: postgres
    networks:
      - sonarnet
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

networks:
  sonarnet:

volumes:
  sonarqube_conf:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_bundled-plugins:
  postgresql:
  postgresql_data:

任何想法是什么问题?

expose 和端口映射没有用,因为 Sonarqube 在端口 9000 上侦听。如果您希望它在主机的端口 9001 上可用,请更新您的映射以读取 127.0.0.1:9001:9000 - 这将使您的主机响应端口 9001 并将其转发到容器到 Sonarqube 监听的端口 9000。