【发布时间】:2017-10-11 10:36:58
【问题描述】:
按照official Docker image 中提到的步骤,我似乎无法让 Traefik 读取我的traefik.toml 文件。
这行得通
来自docker-compose.yml:
version: '3'
services:
proxy:
image: traefik:1.3.5
command: --docker --docker.domain=docker.localhost --logLevel=DEBUG
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock
#- ./traefik.toml:/traefik.toml
whoami:
image: emilevauge/whoami
labels:
- "traefik.backend=whoami"
- "traefik.frontend.rule=PathPrefix:/whoami"
请注意,没有挂载配置文件,所有配置都作为参数传递。
现在,如果我运行 docker-compose up,我会看到来自 Traefik 的一堆调试语句。如果我测试应用程序,它可以工作(是的,我正在运行 Windows 7):
$ curl 'http://192.168.99.100:80/whoami'
Hostname: c94bec5d0e3e
IP: 127.0.0.1
IP: 172.19.0.3
GET /whoami HTTP/1.1
Host: 192.168.99.100
User-Agent: curl/7.50.1
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 192.168.99.1
X-Forwarded-Host: 192.168.99.100
X-Forwarded-Proto: http
X-Forwarded-Server: b8946b1c34a1
这不起作用
来自docker-compose.yml:
version: '3'
services:
proxy:
image: traefik:1.3.5
#command: --docker --docker.domain=docker.localhost --logLevel=DEBUG
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.toml:/etc/traefik/traefik.toml
whoami:
image: emilevauge/whoami
labels:
- "traefik.backend=whoami"
- "traefik.frontend.rule=PathPrefix:/whoami"
请注意,没有参数被传递到 Traefik,只有配置文件。
现在,如果我运行 docker-compose up,则不会出现任何日志语句。如果我测试应用程序,我会得到 404:
$ curl 'http://192.168.99.100:80/whoami'
404 page not found
当然,没有任何调试语句,很难知道哪里出了问题。
这是我的traefik.toml 文件:
debug = true
logLevel = "DEBUG"
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "docker.localhost"
watch = true
exposedbydefault = false
我尝试将文件挂载到/etc/traefik/traefik.toml 和/traefik.toml,结果相同。
我也尝试运行official example 中提到的示例,结果相似。
我在 Windows 7 上运行它,但我不确定这是否相关。我可以成功地将文件挂载到其他图像中而不会出现问题。
那我做错了什么?
【问题讨论】:
-
也可以发布您的 Traefik.toml,哦应该睁开我的眼睛.. sry