Skip to content

Unable to access 2 different services on same container. #3764

@ulm0

Description

@ulm0

Do you want to request a feature or report a bug?

Bug

What did you do?

I've been using traefik on Swarm for serving gitlab registry and gitlab git service be on the same container for a while, but as of 1.6.5 i'm unable to access either service or wrong redirection to a specfic service, reason i'm staying in 1.6.0 for now.

What did you expect to see?

Be able to access both services gitlab.domain.com and registry.domain.com

What did you see instead?

Unable to access either service, or access Git service at registry.domain.com and Registry at gitlab.domain.com

Output of traefik version: (What version of Traefik are you using?)

Version:      v1.6.5
Codename:     tetedemoine
Go version:   go1.10.3
Built:        2018-07-10_03:54:03PM
OS/Arch:      linux/arm

What is your environment & configuration (arguments, toml, provider, platform, ...)?

  • Docker v17.12.1

  • GitLab image is a monolithic with all the services into it, both of the services (Registry and Git) need to be served in the same container, following is the docker compose file definition i use for it.

...
labels:
        - "traefik.backend.loadbalancer.stickiness=true"
        - "traefik.backend.loadbalancer.swarm=true"
        - "traefik.backend=gitlab"
        - "traefik.docker.network=the-force"
        - "traefik.frontend.entrypoints=https"
        - "traefik.frontend.headers.SSLProxyHeaders=X-Forwarded-For:https"
        - "traefik.frontend.headers.STSSeconds=315360000"
        - "traefik.frontend.headers.browserXSSFilter=true"
        - "traefik.frontend.headers.contentTypeNosniff=true"
        - "traefik.frontend.headers.customrequestheaders=X-Forwarded-Ssl:on"
        - "traefik.frontend.passHostHeader=true"
        - "traefik.frontend.passTLSCert=false"
        - "traefik.lab.frontend.rule=Host:gitlab.domain.com"
        - "traefik.lab.port=80"
        - "traefik.reg.frontend.rule=Host:registry.domain.com"
        - "traefik.reg.port=5001"
...
  • Traefik config
logLevel = "DEBUG"
debug = true
checkNewVersion = true
ProvidersThrottleDuration = "5s"
MaxIdleConnsPerHost = 200
defaultEntryPoints = ["http", "https"]
[lifeCycle]
requestAcceptGraceTimeout = "10s"
graceTimeOut = "10s"
[traefikLog]
filePath = "log/traefik.log"
format = "json"
[accessLog]
filePath = "log/access.log"
format = "json"
[retry]
attempts = 3
[healthcheck]
interval = "30s"
[entryPoints]
  [entryPoints.http]
  address = ":80"
  compress = true
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]
  [entryPoints.api]
    address=":8080"
    [entryPoints.api.auth]
      [entryPoints.api.auth.basic]
      users = ["USER:HASH"]
[api]
  entryPoint = "api"
  dashboard = true
  debug = true
[api.statistics]
  RecentErrors = 10
[metrics]
  [metrics.statistics]
    recentErrors = 10
  [metrics.prometheus]
    entryPoint = "api"
    buckets = [0.1,0.3,1.2,5.0]
[rest]
  entryPoint = "api"
[ping]
  entryPoint = "api"
[acme]
email = "user@mail.com"
storage = "acme/acme.json"
entryPoint = "https"
OnHostRule = true
acmeLogging = true
  [acme.dnsChallenge]
  provider = "dnsimple"
  delayDontCheckDNS = 0
  [acme.httpChallenge]
  entryPoint = "http"
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "proxy.domain.com"
watch = true
swarmmode = true

Screenshots

If this is useful, when using traefik 1.6.5, it only creates a single backend for both services

image

But 1.6.0 creates one for each of them

image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions