docker - Traefik中间件无法与docker compose一起使用

标签 docker docker-compose middleware traefik api-gateway

我正在尝试使用traefik中间件,但是以下traefik中间件都无法用于已部署的服务,以下是docker-compose文件和toml文件。我正在用toml文件初始化traefik有人可以发现任何错误吗?

version: '3'

services:
  traefik:
    image: traefik
    command: -c /traefik.toml --logLevel=DEBUG
    ports:
      - "80:80"
      - "8086:8080"
    networks:
      - traefik
    volumes:
      - ./traefik.toml:/traefik.toml
      - /var/run/docker.sock:/var/run/docker.sock

  whoami:
    image: emilevauge/whoami
    networks:
      - traefik
    labels:
      - traefik.enable=true
      - "traefik.frontend.rule=Host:link.docker.localhost"

  authservice:
    image: authservice
    networks:
      - traefik
    ports:
      - "7000:80"
    labels:
      - traefik.enable=true
      - "traefik.frontend.rule=Host:authservice.docker.localhost"
      - "traefik.http.middlewares.test-replacepath.replacepath.path=/swagger"

networks:
  traefik:


---------toml file
defaultEntryPoints = ["http", "https"]

[entryPoints]
    [entryPoints.http]
    address = ":80"
    compress = true


[web]
address = ":8080"

[docker]
endpoint = "unix:///var/run/docker.sock"

最佳答案

您正在混合使用Traefik v1和Traefik v2配置。

  • traefik.frontend.rule-> Traefik v1
  • traefik.http.middlewares.test-replacepath.replacepath.path-> Traefik v2

  • Traefik v1和Traefik v2配置不兼容。

    文档:
  • https://docs.traefik.io/v1.7/configuration/backends/docker/
  • https://docs.traefik.io/v2.0/
  • 关于docker - Traefik中间件无法与docker compose一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56191328/

    相关文章:

    bash - OCI 运行时创建失败 : container_linux. go:380

    javascript - 修改中间件-Node.JS中的请求对象

    docker - CoreDNS 无法在 Kubernetes 集群中运行

    docker - Docker撰写镜像重建

    node.js - 在 NodeJs 中使用 Docker-compose 热重载

    http - 从中间件获取 gorilla/mux 路由器当前路由名称

    Python/Django - 异常值 : 'WSGIRequest' object has no attribute 'Meta'

    docker - 如何将我的Docker IP转发到网络的其余部分?

    docker - 如何限制Docker容器仅监听来自localhost的连接?

    node.js - 如何使用永久 sqlite 数据库运行我的 node.js 进程?