after a long search i have found a solution here:
https://serverfault.com/questions/1150277/traefik-routing-to-two-ports-in-one-docker-container
long story short the services should be named explicitly in case you need multiple ports for a container. in my case i neede to add two strings:
- "traefik.http.routers.keycloak.service=keycloak"
- "traefik.http.routers.keycloak-health.service=keycloak-health"