使用 docker-compose 文件启动 3 个 docker 容器,即 nginx、sonarqube 和 postgres
docker-compose 文件如下:
版本:“3.3”
服务:
sonarqube:
container_name: sonarqube_9
image: sonarqube:9-community
restart: always
ports:
- "9000"
networks:
- sonarnet
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- /data/docker-volumes/sonarqube/conf:/opt/sonarqube/conf
- /data/docker-volumes/sonarqube/data:/opt/sonarqube/data
- /data/docker-volumes/sonarqube/extensions:/opt/sonarqube/extensions
- /data/docker-volumes/sonarqube/bundled-plugins:/opt/sonarqube/lib/bundled-plugins
db:
image: postgres:14
restart: always
ports:
- 5432:5432
networks:
- sonarnet
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
volumes:
- /data/docker-volumes/postgresql:/var/lib/postgresql
- /data/docker-volumes/postgresql/data:/var/lib/postgresql/data
reverse_proxy:
container_name: reverse_proxy
depends_on:
- sonarqube
image: nginx:latest
networks:
- sonarnet
ports:
- 80:80
- 443:443
restart: always
volumes:
- /data/docker-volumes/nginx/conf:/etc/nginx/conf.d/
networks:
sonarnet:
name: sonarnet
driver: bridge
......................................
在反向代理的 default.config 文件内的 nginx 容器内
服务器 {
listen 80;
server_name localhost:9000;
location / {
proxy_pass http://127.0.0.1:9000;
}
}
当在浏览器上尝试访问 http://localhost:80 时 我们在屏幕上看到错误 500
在我们得到的日志中
User_Client:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/98.0.4758.102 Safari/537.36" “请求:GET/HTTP/1.1 状态:502 请求_URI:/ 主机:本地主机
localhost
指的是nginx本身。您需要使用容器名称作为 proxy_pass,例如proxy_pass http://sonarqube_9:9000;
。