2017-07-19 3 views
0

Ich bekomme wirklich nicht, wie man Traefik mit Docker-Netzwerken verwendet.Traefik mit Docker Networks

Ich versuche, "Wekan" Kanban laufen. Wenn ich Ports an Host binde, funktioniert es perfekt, es geht also darum, es durch Traefik zu adressieren. Hier ist meine Docker-config:

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 

Ich kann nicht scheinen, einen Weg zu finden, das verdammte Ding zugreifen ... Ihre Antwort wird sehr geschätzt, es wird nicht nur erlauben Sie mir Wekan zu laufen, aber auch um meine älteren Dienste zu aktualisieren, bei denen ich Links verwendet habe: Verlinken statt Docker Networks - Das Verlinken ist jetzt veraltet.

Antwort

1

Ich glaube, Sie haben mehr als ein Problem hier.

Erstens, in Ihrem Compose haben Sie keinen Traefik-Service, es ist in Ordnung, Traefik wird in der Lage, Container von den Diensten hier zu sehen, aber Traefik wird nicht in der Lage sein, die Anfrage zu senden, weil Traefik Service und Wekan-Dienst teilt nicht das gleiche Netzwerk.

Also, um das zu beheben, müssen Sie ein bestimmtes Netzwerk zu Traefik erstellen und es auch in Ihre Compose-Datei einfügen.

Beispiel:

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

Zweitens müssen Sie das Netzwerk definieren Traefik mit Ihrem Service, dieses Netzwerk ein verwenden, um eine Verbindung herstellen muss mit Traefik Dienst gemeinsam genutzt werden.

Also Ihr Wekan Service muss so sein:

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" 
Verwandte Themen