我解决了:
对于postgres,我创建了一个网络,并在网络中运行容器
docker network create testnet
docker run --name ${container} \
-p 5432:5432 -e POSTGRES_PASSWORD=sonar \
-d --network testnet ${image}:latest
对于sonar,我在创建的网络中运行容器,并在url中使用postgres容器的名称:
docker run -it -d --name ${container} \
-p 9000:9000 -p 9092:9092 \
-e SONARQUBE_JDBC_USERNAME=sonar \
-e SONARQUBE_JDBC_PASSWORD=sonar \
-e SONARQUBE_JDBC_URL=jdbc:postgresql://test-psql:5432/sonar \
--net testnet \
${image}
如果从7.0开始使用声纳,则必须增加主机的vm.max_map_计数。
sudo sysctl -w vm.max_map_count=350000