нельзя использовать traefik с динамическим файлом конфигурации - PullRequest
1 голос
/ 30 октября 2019

Я пытаюсь учиться и использовать traefik. вот мой docker-compose.yaml:

version: "3"

services:

  traefik:
    image: "traefik:v2.0"
    container_name: "traefik"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - ./traefik:/etc/traefik
      - ./docker:/etc/docker

  whoami:
    image: "containous/whoami"
    container_name: "whoami"

, а вот мой traefik.toml:


[entryPoints]
  [entryPoints.web]
    address = ":80"

[providers]
  [providers.file]
    filename = "/etc/docker/dynamic_conf.toml"
  [providers.docker]
    exposedByDefault = false

[api]
  insecure = true

, а это мой dynamic_conf.toml:

[http]
    [http.routers]
        [http.routers.whoami]
            rule = "Host(`whoami.localhost`)"
            entrypoints = "web"
            service = "whoami"

но когда я собираю образ и запускаю его, я получаю сообщение об ошибке:

Cannot start the provider *file.Provider: toml: cannot load TOML value of type string into a Go slice

Снимок экрана: ошибки traefik

Я не смог выяснить причинуЯ искал и изменил

filename = "/etc/docker/dynamic_conf.toml"

на

filename = ["/etc/docker/dynamic_conf.toml"]

1 Ответ

0 голосов
/ 30 октября 2019

entryPoints - это фрагмент, а не строка.

Я не уверен, что вам нужно изменить заглавные буквы, но вам определенно нужно изменить его на фрагмент, например:

entryPoints = ["web"]

Пример этого можно найти на этой странице в разделе Приоритет> Установить приоритеты - с помощью поставщика файлов.

Кроме того, свойство имени файла является строкой, поэтомуоставь как было раньше. Смотрите эту ссылку :

filename = "/etc/docker/dynamic_conf.toml"
...