在运行docker-compose时退出错误代码0

时间:2020-09-04 10:43:22

标签: docker docker-compose

docker-compose.yml

version: "3.3"

services:

  sonarqube:
    container_name: sonarqube
    image: sonarqube:7.9.2-community
    ports:
      - "9000:9000"
    environment:
      - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
      - SONARQUBE_JDBC_USERNAME=sonar
      - SONARQUBE_JDBC_PASSWORD=sonar
    networks:
      - sonarnet
    volumes:
      - sonarqube_conf:/opt/sonarqube/conf
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_logs:/opt/sonarqube/logs
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins

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

  sonarscanner:
    container_name: sonarscanner
    image: newtmitch/sonar-scanner
    networks:
      - sonarnet
    volumes:
      - sonarvol:/usr/src

networks:
  sonarnet:

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

1 个答案:

答案 0 :(得分:0)

有两个正在退出的容器,每个都有其自身的原因:

  • sonarqube 最初失败,因为最大虚拟内存区域vm.max_map_count [65530]太低,至少增加到[262144] 。要解决此问题,请在主机上运行以下命令:
sysctl -w vm.max_map_count=262144

一旦解决,就会出现第二个问题:

  • sonarscanner 容器在 sonarqube 运行之前启动,导致此错误: ERROR:无法访问SonarQube服务器[http://sonarqube:9000] < / em>。要解决此问题,请在撰写文件中的扫描仪下方添加有关失败的重启策略:
  sonarscanner:
    [...]
    restart: on-failure

此问题一经解决,扫描仪将退出0(成功),因此在打印后执行成功完成(这似乎是正常现象):

INFO: ANALYSIS SUCCESSFUL, you can browse http://sonarqube:9000/dashboard?id=MyProjectKey
INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report