Sonarqube service is up but unreachable

Hello!

I try to set up Sonarqube server behind Traefik using docker-compose. All logs are clean, but service returns 504 error (Gateway Timeout).

  1. Sonarqube version: latest (9.3.0)
  2. Postgres version: latest (14.2)
  3. Traefik: latest (2.6.1)
docker-compose

version: “3”

services:
postgres:
image: postgres:latest
container_name: postgres
volumes:
- ./sonarqube-postgres:/var/lib/postgresql
- ./sonarqube-postgres-data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USER: ${POSTGRES_USER}
restart: unless-stopped
ports:
- 5432:5432
healthcheck:
test: [“CMD-SHELL”, “pg_isready -U $POSTGRES_USER”]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
labels:
- traefik.enable=false
networks:
sonar-net:

sonarqube:
image: sonarqube:latest
container_name: sonarqube
volumes:
- ./sonarqube-data:/opt/sonarqube/data
- ./sonarqube-extensions:/opt/sonarqube/extensions
- ./sonarqube-logs:/opt/sonarqube/logs
- ./sonarqube-temp:/opt/sonarqube/temp
environment:
SONAR_JDBC_URL: jdbc:postgresql://postgres:5432/${POSTGRES_USER}
SONAR_JDBC_USERNAME: ${POSTGRES_USER}
SONAR_JDBC_PASSWORD: ${POSTGRES_PASSWORD}
labels:
- traefik.enable=true
- traefik.http.routers.sonarqube.rule=Host(${SONAR_HOST}) || Host(www.${SONAR_HOST})
- traefik.http.routers.sonarqube.service=sonarqube
- traefik.http.routers.sonarqube.entrypoints=secure
- traefik.http.services.sonarqube.loadbalancer.server.port=9000
- traefik.http.routers.sonarqube.tls=true
- traefik.http.routers.sonarqube.tls.certresolver=myresolver
- traefik.http.routers.sonarqube.middlewares=redirect-www,gzip-compress,auth
- traefik.http.services.sonarqube.loadbalancer.passhostheader=true
restart: unless-stopped
ports:
- 9000:9000
depends_on:
postgres:
condition: service_healthy
networks:
traefik:
sonar-net:

networks:
traefik:
name: traefik
sonar-net:
name: sonar-net
external: false

Sonarqube logs: attached
sonarqube-logs.zip (10.2 KB)

Something interesting: if i try to use H2 default database, the service is avaialble behind traefik

I’m sorry, the reason was in labels. I forgot to set docker network:

  • traefik.docker.network=traefik

So it all works correctly

2 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.