Traefik 容器因文件规则而失败

Traefik container fails with file rules

我正在尝试 运行 一个带有 yml 配置的简单 Traefik 容器来进行一些测试,但我无法启动它。

docker-compose.yml

version: '3.7'

services:
  proxy:
    image: traefik:v2.0.1
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${PWD}/traefik.yml:/etc/traefik/traefik.yml
    command:
      - --providers.docker=true
      - --providers.file.filename=/etc/traefik/traefik.yml
      - --entryPoints.web.address=:7000
      # - --providers.docker.swarmMode=true
      - --log.level=DEBUG
    ports:
      - "9999:8080"
      - "7000:80"

traefik.yml

http:
  routers:
    to-reg:
      entryPoints:
        - web
      rule: Path(`/reg`)
      service: srv-reg

  services:
    srv-reg:
      loadBalancer:
        servers:
          - url: http://192.168.226.141:9900

当我运行docker-compose up时,我得到:

proxy_1  | 2019/10/02 11:29:33 command traefik error: invalid node traefik: no child

我很确定我犯了一个愚蠢的错误,但我无法从日志中理解是哪一个。

我终于发现了我的错误(正如预期的那样是一个愚蠢的错误):我没有理解静态和动态配置之间的区别,我在 traefik 期望静态配置的地方安装了动态配置。这导致了那个奇怪的错误。

dyn-traefik.yml 中重命名 traefik.yml 后,我就能够在 /etc/traefik 中挂载并使用预期的路由配置启动代理。