使用traefik转到烧瓶和Vue容器

时间:2020-03-23 21:30:34

标签: docker docker-compose traefik

我正在尝试改编this以使用traefik v2,但是我失败了。所有服务都可以互相通信,并且可以正常工作,但是我无法获得为dev env工作的路线。我不明白为什么。

docker-compose.dev.command.yml:

version: '3.3'
services:
  proxy:
    command:
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker.endpoint=unix:///var/run/docker.sock"
      - "--providers.docker.swarmMode=false"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.traefik.address=:8080"

  # backend:
  #   command: bash -c "while true; do sleep 1; done"  # Infinite loop to keep container live doing nothing

  backend:
    command: /start-reload.sh

docker-compose.dev.labels.yml:

version: '3.3'
services:
  proxy:
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.rule=Host(`localhost`)"
      - "traefik.http.routers.traefik.rule=PathPrefix(`/dashboard/`)"
      - "traefik.http.routers.traefik.entrypoints=traefik"

  backend:
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.backend.entrypoints=web"
      - "traefik.http.routers.backend.rule=Host(`localhost`) && PathPrefix(`/redoc`) || PathPrefix(`/api`) || PathPrefix(`/docs`)"

  frontend:
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.frontend.entrypoints=web"
      - "traefik.http.routers.frontend.rule=Host(`localhost`) && PathPrefix(`/`)"

docker-compose.dev.networks.yml:

version: '3.3'
services:
  backend:
    networks:
      default:
        aliases:
          - ${DOMAIN}

我尝试了几乎所有我能想到的东西,但我无法使它起作用。如果我检查traefik仪表板,则路由器以正确的IP:s引用了正确的服务,并且我可以手动尝试以确保它们正常工作,但路由将无法工作。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您缺少定义的服务标签,您的后端服务至少需要以下标签

        - traefik.enable=true
        - traefik.http.routers.backend.entrypoints=web
        - traefik.http.services.backend.loadbalancer.server.port=${rplace with service port}
        - traefik.http.routers.backend.rule=Host(`localhost`) && PathPrefix(`/redoc`) || PathPrefix(`/api`) || PathPrefix(`/docs`)
        - traefik.http.routers.backend.service=backend
        - traefik.docker.network=traefik

与服务重置相同,您可以阅读有关此here

的更多信息
相关问题