与Dockernetworking的Traefik

我真的没有得到如何使用dockernetworkingtraefik。

我尝试运行“wekan”看板。 如果我将端口绑定到主机上,它就可以完美工作,所以它真的是通过traefik来实现的。 这是我的dockerconfiguration:

version: '2' services: wekandb: image: mongo:3.2.14 container_name: wekan-db command: mongod --smallfiles --oplogSize 128 networks: - wekan-tier expose: - 27017 volumes: - wekan-db:/data/db - wekan-db-dump:/dump wekan: image: wekanteam/wekan:latest container_name: wekan-app networks: - wekan-tier # ports: # - 8081:80 environment: - MONGO_URL=mongodb://wekandb:27017/wekan - ROOT_URL=https://wekan.domain.com depends_on: - wekandb labels: - "traefik.port=80" - "traefik.backend=wekan" - "traefik.frontend.rule=Host:wekan.domain.com" - "traefik.docker.network=wekan_wekan-tier" volumes: wekan-db: driver: local wekan-db-dump: driver: local networks: wekan-tier: driver: bridge 

我似乎无法find一种方法来访问该死的东西…您的答案将不胜感激,不仅将允许我运行Wekan,而且还更新我使用链接的旧服务:链接,而不是Dockernetworking – 链接已被弃用。

我相信你在这里有不止一个问题。

首先,在你的撰写中,你没有Traefik服务,没关系,Traefik将能够从这里的服务中看到容器,但是Traefik将无法发送请求给它,因为Traefik服务和wekan服务不会共享相同的networking。

所以要解决这个问题,你需要创build一个特定的networking给Traefik,并将其设置在你的撰写文件中。

例:

 $ docker network create traefik-net $ docker service --name traefik --network traefik-net .... traefik .... 

其次,您需要定义Traefik将用于连接您的服务的networking,该networking必须是与Traefik服务共享的networking。

所以你的服务需要像这样:

  wekan: image: wekanteam/wekan:latest container_name: wekan-app networks: - wekan-tier - traefik-net environment: - MONGO_URL=mongodb://wekandb:27017/wekan - ROOT_URL=https://wekan.domain.com depends_on: - wekandb labels: - "traefik.port=80" - "traefik.backend=wekan" - "traefik.frontend.rule=Host:wekan.domain.com" - "traefik.docker.network=traefik-net"